|
Embedded Linux and
Real-Time Linux Training
Embedded and
Real-Time
Linux Development
This four and a half day course (sometimes offered in four
days format) provides the knowledge and skills to develop an embedded
Linux product. The course shows attendees how to configure a small
Linux kernel, develop code within the kernel for support of their
target platform and application, and how to measure and obtain
real-time performance with Linux.
The course begins with a complete, simple, project that walks the
attendees through the entire process of creating a special version of
the Linux kernel, creating a root file system, including just the
libraries that are needed, and constructing a custom boot sequence.
The course covers the key issues in embedding Linux. Such questions as:
why Linux, how to embed Linux, and how to measure and obtain real-time
performance in Linux are examined. The attendees will gain experience
in developing applications and system programs. These examples include
hard and soft real-time applications. The issues with real-time in
Linux will be examined in detail.
Attendees will spend approximately 50 percent of the class time
actually gaining hands-on experience with these topics, with personal
attention and insider knowledge from an experienced embedded Linux
developer.
The following
modules
will be covered during the class:
Embedded Linux
Development
|
Objectives and
format
Foundations of embedded Linux
|
Class Project
Overview
|
Building an mp3 playing, web browser controlled appliance
Configuring a
Linux
kernel
|
| Root file system
construction for embedded systems |
What Directories are required
Making busybox
Configuring the boot sequence
configuring networking
|
Building A
System Image
|
Device drivers
for
embedded Linux
Static vs. Dynamic drivers
Required Libraries
|
| Applications |
running an Embedded web server
mp3 software
|
| File Systems |
Compact Flash
devices
Read-only file systems
CRAMFS
Journaling File Systems
Benchmarking File Systems |
| Programming with
Gnu tools |
Gcc
Optimization
Linker
Debugging with gdb |
| Cross Development |
Cross Compilation
Libraries and tool chains
How to configure the kernel for cross compiling
Building the kernel and modules
|
| Tools |
Tracing
Finding Memory Errors
Profiling
|
| Kernel And
System Programming |
Writing a
system call
System call basics
Shared memory
Threads
Synchronization,
Scheduling
Memory locking
|
| Linux and Real
Time |
Defining "real
time"
processes and systems
A Real_Time time line
User space vs kernel space
Issues in real-time programming
Latencies
Low latency patches
Linear scheduling
Non-preemptive kernels
Latency test tool
|
Preemption
|
Preemptibility and latency
Preemptible Kernels
Comparing Preemptible Solutions
RT-Preempt
Priority inheritance
Schedulable interrupt threads |
|
| |
Class
Duration: Four
and a half days
Prerequisites:
The
course is designed for real-time or embedded engineers who are new to
real-time or embedded Linux. Attendees should have experience with the
C programming language, processor architectures, memory management and
basic Unix knowledge.
If you have any
questions
about the difficulty level of the class, please contact us at classes@linuxcertified.com.
Course Materials: The workshop materials
include a comprehensive student workbook and CD. The workbook contains
all of the slides used in the course as well as hands-on lab exercises.
The CD contains the lab
exercise code as well as a large amount of embedded and real-time Linux
software.
Optional:
All
attendees will get a Linux laptop to be used during the class. You have
the option of purchasing this laptop with an additional course fee.
On-site: If you
would like to arrange an on-site Embedded Linux and Real-Time Linux
class, please contact us at classes@linuxcertified.com
Public class schedule:
If you don't see this
class scheduled in the timeframe/place of your preference, please let
us know your preference for timeframe (which month etc.) and any
particular geography preference. Send email with your interest to classes@linuxcertified.com
|