IEEE Boston Section Tech Site IEEE Logo

Serving Eastern Massachusetts

Course Description

Course Name: C2 - Introduction to Embedded Linux
Time & Date: 6:00 - 9:00 PM, Thursdays, March 8, 15, 22, 29
Location: Holiday Inn Select Hotel, 15 Middlesex Canal Park Road, Woburn, MA
Speaker: Mike McCullough, CEO, RTETC

Course Summary

This technical training course introduces the Linux Operating System and the use of Embedded Linux Distributions. The course focuses on the development and creation of applications in an Embedded Linux context using the Eclipse IDE. The first part of the course focuses on acquiring an understanding of the basic Linux Operating System, highlighting areas of concern for Embedded Linux applications development using Eclipse. The latter part covers the configuration and booting of Embedded Linux distributions including embedded cross-development and deployment considerations.

Who Should Attend

The course is designed for real-time engineers who are building Embedded Linux solutions. It is also targeted at experienced developers requiring a refresher course on Embedded Linux. This course will clearly demonstrate both the strengths and weaknesses of the Linux Operating System in Embedded Systems.

Course Objectives

OUTLINE

Course Schedule Day 1

The Basics

Linux Terminology, History and Versioning

The Linux Community: Desktop & Embedded

The GPL

Linux References (Books and Online)

Getting Started

Kernel Source Code

Building the Kernel

Embedded Linux Kernels

Linux 2.6

Basic Kernel Capabilities

Process and Threads Management

Signals and System Calls

Synchronization, IPC and Error Handling

Timing and Timers

Memory Management and Paging

The I/O Subsystem: A Tale of Two Models

Modularization

Debugging

Process-Level and System-Level Debug

GDB and KGDB

GDB Server and Remote Debugging

An Eclipse Debug Example
Other Debug and Test Tools
Other System-Level Debug Approaches

Course Schedule Day 2

Process & Threads Management

What are Processes and Threads?

Virtual Memory Mapping

Creating and Managing Processes and Threads

Thread-Specific Data (TSD)

POSIX

The Native POSIX Threading Library (NPTL)

Kernel Threads

Scheduling

Linux 2.4 and 2.6 Scheduling Models

The O(1) Scheduler

The Completely Fair Scheduler (CFS)

Signals
System Calls
Synchronization

Via Global Data

Via Semaphores, Files and Signals

SMP Synchronization

Inter-Process Communications (IPC)

Message Queues

Semaphores Revisited

Shared Memory

Pipes, FIFOs and Futexes

Remote Procedure Calls

Networking

The Source Code
Course Schedule Day 3
Error Handling

errno and perror

strerror and strerror_r

oops, panics and Segmentation Faults

Timing

How Linux Tells Time

Kernel, POSIX and Interval Timers

High-Resolution Timers (HRTs)

Memory Management and Paging

Demand Paging and Virtual Memory

Allocating User and Kernel Memory

Mapping Device Memory

The Slab Allocator

The OOM Killer

Memory in Embedded Systems

Modularization

Creating a Module and Module Loading

Dependency Issues

In Embedded Systems

Shared Libraries

A Shared Library Example

Static and Dynamic Libraries

The I/O Subsystem: A Tale of Two Models

The Original Device Driver Model

The Standard I/O Interface

The New Device Driver Model and Kernel Object Classes

Initialization

Platform Devices, Busses, Adapters and Drivers

Comparing the Two Models

Interrupt and Exception Handling
Bottom Halves and Deferring Work

Course Schedule Day 4

The Linux Boot Process

The Root Filesystem

Desktop Linux Boot

Bootloaders

Embedded Linux Boot

Managing Embedded Linux Builds

Configuring and Building Linux

System Architecture Design Approaches

Desktop and Embedded Approaches

In Multicore Environments

Deploying Embedded Linux

Choosing and Building the Root Filesystem

Useful Embedded Filesystems

Module Decisions and Final IT Work

Embedded Linux Trends

Development, Monitoring and Testing

Some Final Recommendations

Speaker

Mike McCullough is President and CEO of RTETC, LLC. Mike has a BS in Computer Engineering and an MS in Systems Engineering from Boston University. A 20-year electronics veteran, he has held various positions at Tilera, Embedded Planet, Wind River Systems, Lockheed Sanders, Stratus Computer and Apollo Computer. RTETC, LLC is a provider of Eclipse-based development tools, training and consulting for the embedded systems market.

Decision (Run/Cancel) Date for this Courses is Tuesday, February 28, 2012

FEES

Payment received by February 23: IEEE Members $390

Payment received by February 23: Non-members $410

Payment received after February 23: IEEE Members $410

Payment received after February 23: Non-members $435

Register online here.