Process and Thread Management
Linux Process Types
Daemons and Kernel Threads
A Review of the task_struct
Structure
How a Process Goes Through Its
Life Cycle
Process Name Spaces
Maintaining Process Statistics
Details of the Context Switch
Examples of Real Time
Applications
Details of the O(1) Scheduler
Load Balancing
Scheduler Tunables
Managing binfmts (Binary Formats)
Process Management Tunables
Kernel Debugging Without a Debugger
Creating Modules as Debugging
Aids
Using Kprobes
Helpful Kernel Functions
Reading oops Messages
The Kernel Ring Buffer
The Linux Virtual Memory Manager Part 2
Review of Linux VMM Basics
Managing Physical Memory
UMA, NUMA and NORMA
Linux Stacks
Heap Management
The SLAB Allocator
The Buddy System
Page Replacement Algorithms
Zone Management
Per CPU Statistics
HugeTLBs
Paging Space Management
The Swap Cache
kswapd
Direct Memory Access (DMA)
VMM Tunables
The File and Device I/O Subsystems Part 2
Review of Linux File I/O
Caches, Caches Everywhere
VFS Reads and Writes
Block I/O Operations
The Page Cache
Ties to the VMM
Block device Driver Request
Queues
New I/O Scheduling Options
The iSCSI Transport Layer
Flash-Based File Systems
The UnionFS
The udevfs
EMC Device Drivers
File System Tunables
Linux
Interrupt Handling
ld and New Methods
Interrupt Sharing
Funneling
Tasklets and Work Queues
Synchronization and Timing
Critical Sections and
Deadlocks
Process and Interrupt
Environment
Kernel Synchronization
Atomic Operations
The Ups and Downs of
Semaphores
Why Interrupt Environment
Can't Block
Spin Locks
The Big Kernel Lock (BKL)
Kernel Preemption
Disabling Interrupts
Timers, Time Slices, Clock
Ticks and Jiffies
Measuring Time
Delaying Execution
Interprocess Communications
Named and Unnamed Pipes
The Details of Signal Delivery
POSIX Real Time Signals
System V IPCs
Shared Memory
Semaphores
Message Queues
Networking
TCP/IP Protocols
A Review of Network Data
Structures
Network Kernel Routines
The NETIF
IP Tables
|