Linux & Open-Source Training Linux Laptops Linux Services

Embedded & Real Time Linux Development Training

This 3-day seminar focuses on how Linux has been adapted for use in embedded environments, with specific emphasis on the ARM architecture. Through extensive hands-on lab work, you learn how to install a cross-development environment, build a compact version of Linux for an embedded device, install the build on the target system, and test its operation. You’ll create and test programs that exercise I/O as well as networking applications and also explore real-time extensions.

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, populating a root file system, including just the libraries that are needed, and constructing a custom boot sequence.

Each participant receives a CD with a complete Linux kernel distribution, including source code, and ARM cross-development toolkit, which provides an ideal platform for embedding Linux into a wide range of consumer and industrial devices.

Participants will have available for use during the class an ARM-based target single-board computer (SBC) kit.

The course covers the key issues in embedding Linux. Such questions as: why Linux and how to embed Linux are examined. The attendees will gain experience in developing applications and system programs.

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.

Course Objectives

• To provide an understanding of the essentials of embedded Linux.
• To give you practical experience in developing an embedded Linux system.

The following modules will be covered during the class:


  • What is Open Source and why do you care?
  • Linux features and characteristics
    • Protected memory
    • Processes
      • Foreground vs. background
    • Users and Groups
    • Root user
    • Graphical desktop environment—KDE
  • Filesystems
    • Root filesystem
    • Privileges
    • Links
    • “Mounting” filesystems
    • Filesystem Hierarchy Standard (FHS)
      • Special places
  • Development Environment
    • Install software
    • Configure the host
    • Configure the target
      • Flash filesystems
    • Network Filesystem (NFS)
    • Our first program
  • Eclipse
    • Creating and building C projects
    • Debugging with Eclipse

Embedded Application Programming

  • Accessing hardware from User Space
    • Data acquisition example
  • A simple simulation environment
    • Thermostat example
  • Multi-processing vs. multi-threading—Pthreads
    • Threads
    • Mutexes
    • Adding settable parameters to thermostat
  • Network programming
    • Sockets
    • Client/server paradigm
    • Networked thermostat
    • Multiple monitor threads
    • Embedded web server
  • Configuring and building the kernel
    • Booting via TFTP
    • Root filesystem over NFS
  • Busybox
  • Bootloader

Linux and Real-time

  • Why isn’t Linux real-time?
    • How bad is it?
  • Possible solutions
    • Pre-emption improvement
    • Interrupt abstraction
  • Introducing RTLinux
  • Kernel modules
  • Inter-task communication
    • FIFOs
    • Shared memory
  • RTLinux in Kernel Space

Class Duration: Three days

Enrollment Form

Prerequisites: The course is designed for embedded engineers who are new to embedded Linux. Attendees should have experience with the C programming language, processor architectures, memory management and basic Unix knowledge.

Attendees should optionally consider coming to our one-day Eclipse Jumpstart class offered the day after this three-day class.

If you have any questions about the difficulty level of the class, please contact us at:  classes (at)

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  class, please contact us at: classes (at)

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

Receive Announcements & Linux Tips
Linux is a registered trademark of Linus Torvalds.