Course Description
RHD236 Red Hat Linux Kernel Internals 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. RHD236 is taught in a classroom with computers equipped with the current Linux distribution. This 5-day course provides hands-on training, concepts, and demonstrations, with emphasis on realistic labs and programming exercises.
Prerequisites:
Completion of RHD221 (Linux Device Drivers) or equivalent experience, including:
Familiarity with basic tools such as vi, emacs, and file utilities.
Knowledge of systems programming in a Unix or Linux environment is a requirement; register-level hardware programming knowledge is recommended.
Understanding of basic Operating System concepts.
Some previous experience running Linux, compiling and installing kernels, etc.
Experience writing device drivers and kernel modules is not essential, but very helpful.
Goal:
Upon completing the class, students should feel comfortable modifying the Linux kernel to fit the needs of their hardware or applications, and developing device drivers. They will also have the tools necessary to port existing applications and device drivers to Linux, primarily from Unix-like systems.
Audience:
This class is intended for experienced developers who want to gain a thorough understanding of the Linux architecture, including the newest kernels.
:: Course RHD236 ::
Course Outline
Kernel Architecture
Kernel Initialization
Kernel Configuration and Compilation
Kernel Style and General Considerations
Kernel Browsing Tools
Modules
System Calls
Transferring Data Between User and Kernel Space
Race Conditions and Synchronization Methods
Processes and Kernel Threads
SMP and Threads
Process Scheduling
Kernel Profiling and Debugging Techniques
The /proc Filesystem
Timing Measurements
Dynamic Kernel Timers
Memory Addressing
Memory Allocation and Management
NUMA
Process Address Space
Disk Caches
Swapping
Signals
Notifiers
CPU Frequency Scaling
Virtualization and the Kernel
Networking internals
Multiplexed and Asynchronous Socket I/O
Netfilter
The Virtual File System
Filesystems in User Space
The following topics are not covered in class, but are included in the course materials for background reference and/or student interest in related topics:
Process Limits and Capabilities
Introduction to Device Drivers
Embedded Linux Overview
In Kernel Web Server Acceleration
Journaling Filesystems
This is a version-specific reference outline. Confirm the current syllabus and delivery arrangements with EIEIO.