D0Linux user mode programming
Programming Embedded Linux Applications for Linux
Objectives
|
||||||||||||
- Engineers that must create embedded Linux applications
- Basic Linux user knowledge
- Good C programming skills
- Printed course material (in English).
- One Linux PC for two trainees.
- One target platform for two trainees.
- Any embedded systems engineer or technician with the above prerequisites.
- Prerequisites are checked before the training.
- Progress is assessed by the trainer through the practical exercises, and by quizzes for sections without exercises.
- Each trainee receives a completion certificate.
- If a prerequisite gap appears, alternative or additional training is offered.
Course Outline
- Linux
- The various licenses used by Linux (GPL, LGPL, etc.)
- Linux distributions
- The Linux filesystem
- The Linux shell and scripts
- The vi editor
- Basic administration of a Linux system
- Structure of Linux applications
- The ELF file format
- Linux development tools
- Compiling
- Documentation
- Makefiles
- Integrated Development Environments
- Creating Linux libraries
- Static libraries
- Dynamic libraries
| Exercise: | Writing a simple, static and dynamic, library | |
- Software Debug tools
- Gdb
- Memory management debug using dmalloc and efence
- Runtime checks using valgrind
| Exercise: | Debug an application and its libraries using gdbserver | |
| Exercise: | Checking memory management using dmalloc and valgrind | |
- Standard input-output
- disk files
- devices
- Network programming
- sockets
- UDP and TCP protocols
- Asynchronous input-output
- Non-blocking I/O
- Multiplexed (the select and poll APIs)
- Notified I/O
- Chained I/O (the aio POSIX API)
| Exercise: | Programming a client-server application | |
| Exercise: | Handle several parallel connections using asynchronous I/O | |
- Trace system calls tools
- Strace
- Ltrace
| Exercise: | Understanding Strace | |
- Signal handling
- Signal types
- Handling a signal
- Functions usable in a signal handler
- Signal masking and synchronous handling
- User Timers
| Exercise: | Manage timeouts using signals and timers | |
- Processes
- The process concept
- Processes and security
- Process states
- Process life-cycle : the "fork" and '"exec" calls
- POSIX Threads
- User and kernel threads
- Thread programming
- Mutexes and condition variables
- Barriers
- Thread-specific data
| Exercise: | Managing several clients in parallel using fork | |
| Exercise: | Create a remote server using fork and exec | |
| Exercise: | Managing several clients in parallel using threads | |
| Exercise: | Manage thread-static data in a library | |
- Linux Memory Management
- Virtual and physical memory
- Pagination and protection
- Swapping
- Memory allocation
- Caches
- Scheduling in the Linux kernel
- Context switches
- The Completely Fair Scheduler
- Scheduling groups
- The real-time scheduler
- Scheduling and SMP (Symmetrical Multi Processors)
- Inter Process Communication
- File mapping of files and devices
- Shared memory
- Message queues
- Pipes
- Task synchronisation
- Semaphore
- Mutex
- Signals
- The System V IPC (optional, described in appendix)
| Exercise: | Handle communications between processes in a multi-process client-server system | |
| Exercise: | Setup timeouts to close dead connections on a server | |
More
To book a training session or for more information, please contact us on info@ac6-training.com.
Registrations are accepted till one week before the start date for scheduled classes. For late registrations, please consult us.
You can also fill and send us the registration form
This course can be provided either remotely, in our Paris training center or worldwide on your premises.
Scheduled classes are confirmed as soon as there is two confirmed bookings. Bookings are accepted until 1 week before the course start.
Last update of course schedule: 27 June 2026
Booking one of our trainings is subject to our General Terms of Sales
Related Courses
D1
Embedded Linux with Buildroot and Yocto
D1S
Embedded Linux with Ac6 System Workbench
D1Y
Embedded Linux with Yocto
D2
Le shell Linux
D3
Linux Drivers
D4
Real-time Linux
D5
Embedded GUI
D7
Power Management in Linux Drivers
D8
USB Linux Drivers
Q1
Embedded GUIs with Qt
Y1
Yocto Project Development
Y12
Comprehensive Yocto Project Usage
Y2
Yocto Project Expert