Course Summary - A technical training course
introducing the Linux Operating System and Embedded Linux Distributions.
The course focuses on the development and creation of Linux applications
in an Embedded Linux context. The first part of the course focuses on
acquiring an understanding of the Linux Operating System, highlighting
areas of concern for Linux application development. The latter part covers
the embedded Linux distributions including the use of the Board Support
Package (BSP) and the Software Development Kit (SDK).
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 when used in Embedded
Systems.
Course Objectives
-
To provide a basic understanding of the Linux OS
-
To gain an understanding of the complexities of the
Embedded Linux Distribution and its processor dependencies
-
To give you the confidence to apply these new
concepts to your next Embedded Linux project
Course Schedule Session 1
Introduction to Embedded Linux
Linux Terminology
A Brief History of Linux
Linux History and Versioning
GNU and the GPL
Basic Linux Directory Structure
The Linux Shell
Command Shells
Shell Commands
Shell Scripts
Debugging Embedded Linux
The Linux Trace Tool (LTT)
Graphical IDEs
Course Schedule Session 2
Processes and Threads
Introduction to Processes
Fork, Vfork, Exec and Clone
The Linux Process Model
POSIX
The Linux Threads Model
Linux Signals
Thread Synchronization and the NPTL
Linux Scheduling
Scheduling in Linux 2.4 and Linux 2.6
Real-Time Considerations
Inter-Process Communications
Semaphores
Message Queues
Shared Memory
FIFOs and Pipes
Course Schedule Session 3
Inter-Process Communications (cont)
Futexes
Networked IPC
Configuring Embedded Linux
oldconfig, menuconfig, xconfig and gconfig
Saving Configurations
Building the Kernel
Booting Embedded Linux
The Init Process
Interrupt Handling
Bottom Halves and softirqs
Tasklets and Work Queues
Linux Timers and Time Management
Jiffies and Linux Timers
Busy Looping and Spinlocks
The Big Kernel Lock (BKL)
Course Schedule Session 4
The Linux Memory Model
The Linux Paging Model
Allocating Memory
The Linux I/O System
Modules and Modularization
The fops Struct
Open, Close, Read, Write and Ioctl
Linux File Systems
The Root File System
Native Linux File Systems
Other File Systems
The Linux Device Model
The kobject
ktypes and ksets
Lecturer – Mike McCullough is Director of
Professional Services for Embedded Planet. 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 Wind River
Systems, Lockheed Sanders, Stratus Computer and Apollo Computer. Embedded
Planet is a provider of embedded systems hardware, Eclipse-based software
development tools, training and consulting services for the embedded
systems market.