Blueprints for World Domination
Copyright © 2001 by
Gary Murphy
The Linux Kernel is released under the pure
Open Publication Licence (OPL) with no optional clauses.
NOTE: This is just the Table of Contents; if there are
any links in this they go nowhere so don't even try it. A review edition of the book will be posted on this site when it is available. If you really want to see what's in it so far, visit the CVS archive on the Kernelbook
Project Page
- Table of Contents
-
Preface
-
The Pioneers had it Easy
-
Who is it?
-
Styles and Conventions
-
About the Authors
-
Acknowledgements
- I.
The Linux Kernel
- 1.
Linux is not Unix (20)
-
A Brief History of Linux
-
The Holy Grail of Portability
-
Open Sources, Open Minds
-
Unix Foundations
-
New Features in Linux
-
Tour of the Kernelbook
- 2.
The Reasonable CPU (15)
-
Portability and Reasonable Assumptions
-
From Altair to Pentium
-
The CPU
-
Memory Address Spaces
-
Interrupts and Interrupt Controllers
-
Timers
-
Busses, Controllers and Peripherals
- 3.
Tour of the Linux Kernel (15)
-
Torvalds' Design Goals
-
Overview of the Kernel Subsystems
-
Initialization
-
Interprocess Communications
-
Memory Management
-
File Systems
-
Resource Management
-
Networking Layer
-
Kernel Library
- 4.
The Kernel Sources (25) glm
-
Kernel Sources Structure
-
Obtaining the Kernel Sources
-
Configuring Linux Kernel
-
Building and Installing the Kernel
-
Recovering from Faulty Kernels
- 5.
Tools for Kernel Programmers
-
GCC, EGCS and GNU Assembler
-
Navigational Aids
-
Development Tools
-
Useful Utilities
-
Kernel Profiling
- 6.
Contributing to the Kernel Project (10)
-
Participating in Linux Development
-
Joining the Inner Circle
-
Programming Style
-
Preparing a Patch
-
Bug Reporting
- II.
Kernel Subsystems
- 7.
Speaking Kernel: Global Structures and Methods (25)
-
Kernel DEFINEs
-
Common Data Structures
-
Library Services
-
/proc Filesystem
- 8.
Kernel Initialization
-
Boot Loader Sequence
-
Subsystem Initializations
- 9.
Process Scheduler (30)
-
Bottom-Half Handler
-
Task Queues
-
Timers
-
Wait Queues
-
Spin Locks
- 10.
Interprocess Communications (IPC) (20)
-
Signals
-
Pipes
-
Sockets
-
SysV IPC
-
Message Queues
-
Semaphores
-
Shared Memory
- 11.
Memory Management (20) Thomas Strohm
-
Hardware Support
-
Page Table Abstraction
-
System Initialization
-
The Page Allocator
-
Kernel Memory Allocation
-
Memory Allocation in Userland
-
The C Library Interface
- 12.
Resource Management
-
Resource Allocation
-
Reporting
-
PCI Card support
-
APM and ACPI support (here?)
-
ISA PnP
-
I2O
- 13.
Linux File Systems (30) Manuel J. Petit de Gabriel
-
Ext2fs
-
Virtual File Systems
-
Device Special Files
-
The Venus Interface
-
Executable Files
-
Raw Disk Access (here or own chapter?)
- 14.
Networking Layer(35) Alolita Sharma, Bob Adkins, Nilayan Sharma
-
TCP/IP Networking Layers
-
BSD Sockets
-
Packet Socket MMAP
-
INET Socket Layers
-
Creating a Connection
-
Listening on an INET BSD Socket
-
Data Fragmentation
-
Address Resolution (ARP)
-
IP Layer
-
IP Routing
-
Forwarding via FIB
-
IPv6
-
DECNet
-
Kernel HTTP Support
-
Driver Status Codes
- III.
Kernel Services
- 15.
Designing Linux Modules (15) Juan-Mariano de Goyeneche
-
The Generic Module
-
Loadable Modules
-
Using Boot Parameters and conf.modules
-
Module Debugging
- 16.
Device Drivers (35) Armin Kuster
-
Common Characteristics
-
Dynamic Configuration
-
Sybsystems
-
Driver flow
-
Extending Makefiles and
Config.in
- 17.
Character Devices (20)
-
Registering Character Devices
-
ioctl Message Handling
-
Blocking I/O
-
Asynchronous I/O
-
IRQ Sharing in PCI I/O
-
USB Devices (here or own chapter?)
-
New Character Devices (here or own chapter?)
- 18.
Block Devices (20)
-
Registering Block Devices
-
ioctl Message Handling
-
Request Handling
-
Interrupt Handling
-
Block Device Partitions
-
Logical Volumn Manager (here or in FS?)
-
Removable Media
- 19.
Network Devices (20) Alolita Sharma, Bob Adkins, Nilayan Sharma
-
Telecommunications Links
-
Wired networking
-
Wireless Networking
- 20.
PCI (20)
-
PCI Addressing
-
PCI/ISA Bridging
-
I/O and Memory Windows
-
Configuration Cycles
-
Initializing PCI
-
PCI Data Structures
-
Pseudo-Device Sequence
-
PCI Bios
-
PCI Fixup
- 21.
SCSI Devices (20) Kurt Garloff
-
Overview of the SCSI subsystem
- 22.
Video Systems (30)
-
Linux and X11R6
-
Memory-Mapped Video IO
-
SVGA video modes
-
Unicode Font Mapping
- 23.
Sound Systems (20)
-
Sound Cards
-
Audio Devices
-
OSS-Free
-
ALSA
- 24.
SMP (20) Alolita Sharma, Bob Adkins, Nilayan Sharma
-
SMP and Linux
-
SMP in 2.4
-
Inter Processor Communications
-
Managing the SpinLocks
- 25.
Plug'n'Play (15)
Tom Lees
-
PnP Hardware Implementations
-
Kernel ISA support
-
List of standard PnP device IDs
- IV.
Advanced Topics
- 26.
Porting Linux to Other Platforms (35)
-
Overview of Porting Issues
-
Subsystems Issues
- 27.
Embedded Linux (30)
Donald Jeff Dionne and Michael Durrant
- 28.
Real-Time Linux (30) Richard West and Christian Poellabauer
-
Real Time Requirements
-
Linux in Real Time
-
Implementing a Custom Scheduler
-
Alternative Scheduling Algorithms
-
RT-Linux on Intel
-
Related Projects
- A.
Overview of Linux Processors (20)
-
Intel Processessors
-
Intel x86
-
Itanium (ia64)
-
Strong-ARM
-
MIPS
-
HP Alpha AXP
-
Linux/VAX
-
Motorola 68k
-
HP9000/300
-
NeXT Workstations
-
Motorola Q40 Single-board Computer
-
PowerPC
-
Sparc/Sparc64
-
IBM S/390
-
SuperH
-
Crusoe
- B.
Kernel Programming Resources (10)
-
Linux Documentation
-
Online Kernel Resources
-
LDP Kernel Guides
-
linux-kernel Mailing List
-
Further Reading
-
Bibliography
-
Index