Loading Course Schedule...
PT5242
Summary
This is an intensive hands-on course designed to provide a detailed examination of the Linux kernel architecture, including process scheduling, memory management, filesystems, and driving peripheral devices. This course provides hands-on training, concepts, and demonstrations, with emphasis on realistic labs and programming exercises.
Prerequisites
Students should be familiar with basic tools such as vi, emacs, and file utilities. Knowledge of systems programming in a UNIX or Linux environment is a requirement; and register-level hardware programming knowledge is recommended. Some previous experience running Linux, compiling and installing kernels, and experience writing device drivers and kernel modules is not essential, but very helpful.
Duration
5 Days/Lecture & Lab
Audience
This class is intended for experienced developers who want to gain a thorough understanding of the Linux architecture, including the newest kernels.
Topics
- Kernel Architecture
- Kernel Layout and Configuration
- Kernel Style and General Considerations
- Modules
- Synchronization Methods
- Kernel Initialization
- Timing Measurements
- Dynamic Kernel Timers
- Wait Queues
- Work Queues
- Tasklets
- Debugging Techniques
- The /proc Filesystem
- The seq_file Interface
- Processes
- Process Limits and Capabilities
- Process Scheduling
- Interrupts and Exceptions
- System Calls
- Signals
- Device Drivers
- User Kernel Space
- Character Drivers
- Memory Addressing
- Memory Management
- Process Address Space
- Disk Caches
- Swapping
- Memory Mapping
- Multiplexed and Asynchronous I/O
- Networking internals
- In Kernel Web Server Acceleration