Part 1:Understanding the Linux Kernel 1-1. Introduction to Linux ‧What Is Linux? ‧Linux Kernel Basics 1-2. Process Management/Scheduling ‧Processes vs. Threads‧Process States‧Priority-based Scheduling ‧System Calls and Kernel Threads 1-3. Interrupt Handling ‧Interrupt Service Routine‧Interrupt Management ‧Bottom Halves: Softirq, Tasklet, and Workqueue 1-4. Kernel Synchronization ‧Concurrency and Code Safety‧Synchronization and Scalability ‧Kernel Synchronization Mechanisms 1-5. Time Management ‧Timer interrupt‧Usage of Timers‧Scheduling: Delay and Timeout 1-6. Memory Management ‧Memory Allocation‧Kernel Stack‧PerCPU Data
Part 2:Linux Device Drivers 2-1. Overview ‧Linux Kernel Architecture‧Devices and Input/Output ‧Building Kernel Modules 2-2. Virtual Filesystem and Device Drivers ‧What Is VFS? ‧Filesystems‧VFS Operations 2-3. Character Devices and Drivers ‧Major and Minor Numbers‧Registration of Char Devices and Drivers ‧read() and write()‧ioctl()‧Blocking and Nonblocking I/O 2-4. Block Devices and Drivers ‧Registration of Block Devices and Drivers‧The Block I/O Layer ‧The I/O Schedulers ‧Linux Network Architecture ‧Network Devices ‧Packet Transmission and Reception‧Sockets 2-5. Network Device and Drivers ‧Linux Network Architecture ‧Network Devices ‧Packet Transmission and Reception‧Sockets 2-6. The Linux Device Model and sysfs 2-7. I/O Bus 2-8. USB Drivers ‧USB Device Basics‧USB Urbs‧USB Drivers‧USB and sysfs