Day 1
Linux in Embedded Systems
- Linux introduction
- Leveraging open source
- The GPL and your IP
Developing Embedded Linux Applications
- Top considerations before starting Linux projects (Linux distributions; Linux development environment and tools)
- Root file system (introduction of Linux file systems)
The Role of the Root File System, File System Hierarchy, Busybox, Building/Acquiring a RootFS
- Linux kernel (Linux architecture; understanding the kernel version; kernel configuration tools; configuring the kernel)
- Booting your target (host preparation; Linux boot sequence; the role of the boot loader)
Day 2
Understanding Linux Memory Model
- Memory management in Linux (virtual memory model; how Linux uses the memory management unit (MMU))
- Kernel space review (kernel and scheduling policies; kernel modules; overview of device drivers; exception handling; interrupt handling; deferred functions—softirq, tasklet, bottom half)
- User space (Linux processes and threads)
Day 3
Understanding Linux Memory Model (cont’d)
- User space (daemons and servers; static libraries; shared libraries; dynamic linking library)
- Kernel to user space interface (I/O system; network interfaces; /proc and /sys file systems)
Using Linux in Your Application
- Inter-process communication (IPC) and synchronization (shared memory; semaphores; message queues; pipes; UNIX-domain sockets; signals)
- Linux timers (absolute time; user space timers and alarms; kernel space timers)
Day 4
Using Linux in Your Application (cont’d)
- File systems (file system buffers; journaling file systems; diskoriented
file systems; flash file systems; network-based file
systems)
- 2.4 vs. 2.6 kernel features
Networking in Linux
- Linux network stack and data flow
- Linux protocol support
- Getting connected options (web servers; web browsers; etc.)
Fielding and Managing an Embedded Linux System
- System initialization and maintenance
- Configuration and network setup
- Configuration and network setup
- Securing your target