Serving Eastern Massachusetts
| Course Name: | Introduction to Embedded Linux |
| Time & Date: | 6 - 9 PM, Thursdays, March 4, 11, 18, 25 |
| Location: | Holiday Inn Select Hotel, 15 Middlesex Canal Park Rd, Woburn, MA |
| Speaker: | Mike McCullough, President and CEO of RTETC, LLC. |
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 basic BSP development and embedded deployment considerations.
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.
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 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.
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 and Multicore
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
Additional Debug Approaches
Other Debug and Test Tools
Other System-Level Debug Approaches
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
SMP Threading Considerations
Scheduling
Linux 2.4 and 2.6 Scheduling Models
The O(1) Scheduler
The Completely Fair Scheduler (CFS)
Signals
System Calls
The Source Code
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
SMP IPC Considerations
Error Handling
errno and perror
strerror and strerror_r
oops, panics and Segmentation Faults
The Source Code
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
Per-CPU Allocations
Memory in Embedded Systems
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
Modularization
Creating a Module and Module Loading
Dependency Issues
In Embedded Systems
System Architecture Design Approaches
Desktop and Embedded Approaches
In Multicore Environments
The Linux Boot Process
The Root Filesystem
Desktop Linux Boot
Bootloaders
Embedded Linux Boot
Managing Embedded Linux Builds
Configuring and Building Linux
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
Payment received by February 18: IEEE Members $390
Payment received by February 18: Non-members $410
Payment received after February 18: IEEE Members $410
Payment received after February 18: Non-members $435
On-line registratiions to this course is closed. You may register from 5:30PM - 6:00PM, Thursday, March 4, 2010 at the Holiday Inn Select, 15 Middlesex Canal Park Road, Woburn, MA or by call the IEEE Boston Section office at 781-245-5405.