| |
| Training - LINUX: User Programming (reference
003346A) |
|
| |
| |
|
 |
|
Related Trainings
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Prerequisites
- C programming experience
- Basic understanding of
operating systems and debugging techniques
|
|
|
| |
|
|
|
|
|
|
 |
|
 |
|
Course Objectives
- Understand how to implement
a multi-process and multi-thread application in
the user space of an embedded Linux kernel
- The course is divided into
lectures and labs. The labs allow to practice and
better understand the contents of the lectures.
- Configure and build Linux
kernel image
- Understand the different
types of root filesystems
- Start an application after
kernel boot
- Use debugging tools to
debug user mode application
- Understand differences
between process and threads and schedule
functions through both mechanisms
- Understand Linux user mode
memory management
- Use dynamic memory
allocation and shared memory
- Use timer mechanisms to
schedule periodic tasks, timestamp events
- Understand the different
mechanisms of synchronization and mutual
exclusion of the user space
- Use message queue
mechanisms for inter-tasks communication
- Understand Input / Output
mechanisms
- Use sockets for TCP, UDP
and IP communications
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Duration
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Topics (The full description of this course can be
provided on request)
[Day one]
Introduction
- Linux and Real-Time
- User Space, Kernel Space
- System calls
- Licenses
Installing, Compiling and Booting the Linux kernel
- Kernel Configuration
- Kernel Build
- Kernel Images
- The Bootline
- The Root Filesystem
- Starting an Application after the Kernel Boot
Debugging
- gdb, remote gdb
- /proc directory
- Tracing Tools
Basic shell commands
- Files commands
- Process commands
Labs
- Configuring and compiling the kernel
- Booting the kernel on the target platform
- Launching an application at boot
- Using a root filesystem in RAM and a NFS mounted
root filesystem
- Debugging an application
[Day two]
Process and Thread
- Process and thread definition
- Process creation
- Process scheduling
- Thread creation
- Thread scheduling
- Posix APIs (1003.1b, 1003.1c, 1003.1d)
- System V API (IPC System V)
- System calls error management
- Exception Management
Memory Management
- Memory map of a process
- Shared memory, local memory (for process and for
threads)
- System V API for shared memory management
- Memory lock
- Mapping of a file descriptor in memory (mmap,
...)
- Dynamic allocation of memory
Labs
- Creating a multi-process application
- Sharing variables between process through shared
memory
- Creating a multi-thread application
- Writing a reentrant procedure
- Allocating memory
[Day three]
Signals and Timing Management
- Posix and BSD signals
- Asynchronous and synchronous signal
- Masking signals
- The BSD Timer
- Waiting for a Delay
- Performance measurements
- Date and Time management
Synchronization and mutual exclusion
- The synchronization problem
- The mutual exclusion problem
- The Posix 1003.1b counting semaphore
- The Posix 1003.1c mutex
- The Posix 1003.1c condition variable
- Priority inversion
- Deadlock
- Priority ceiling protocol
Message passing
- Shared memory
- The System V message queue
- The pipes
Labs
- Writing a periodic process
- Starting an asynchronous routine in a process
with a signal
- Synchronizing tasks with semaphores
- Protecting a shared data structure with a Mutex
- Writing a client server mechanism with a message
queue
[Day four]
Input / Output
- The Posix standard layer
- The open, read, write, close, ioctl calls
- Locking files
- Asynchronous I/O
- The select call
- The ANSI stream (stdio) layer
TCP/IP Networking
- Generalities on TCP/IP
- UDP sockets
- TCP sockets
- IP (RAW) sockets
- Sockets options
Labs
- Reading/writing files on the root filesystem
- Writing point to point communication with TCP
- Writing broadcast communication with UDP
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Documentation
Training manuals will be given to participants during
training. Precise and easy of use, those notes can be
used as a reference afterwards. |
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Other trainings :
If you want to know our other training courses and their
contents, you can consult or download our complete
training courses list on this page : Training courses - General
presentation |
|
|
 |
|
|
|
|
|
|
|