xix
22.4 Development Tools and Resources ...............................................389
22.4.1 Virtual Machines ..............................................................389
22.4.2 Version Control ................................................................391
22.4.3 Git .......................................................................................392
22.4.4 Debugging Linux ..............................................................393
22.5 Chapter Review ................................................................................395
22.6 References .........................................................................................396
CHAPTER 23 The Linux Kernel 397
23.1 Linux Kernel Hierarchy ..................................................................397
23.2 System Call Interface .......................................................................398
23.3 Memory Management ....................................................................400
23.3.1 Virtual Memory ................................................................400
23.3.2 High and Low Memory ....................................................401
23.4 Process Management ......................................................................401
23.4.1 Process Representation ....................................................402
23.4.2 Process Creation, Scheduling and Destruction ............402
23.5 File System ........................................................................................404
23.5.1 Linux File Systems ............................................................404
23.5.2 Virtual File System ...........................................................405
23.6 Architecture-Dependent Code ......................................................406
23.7 Linux Device Drivers ......................................................................406
23.7.1 A Note on Mechanisms Vs. Policies ..............................407
23.7.2 Module/Device Classification .........................................407
23.8 Chapter Review ................................................................................408
23.9 References .........................................................................................408
CHAPTER 24 Linux Booting 409
24.1 Overview ...........................................................................................409
24.2 Stages of the Desktop Linux Boot Process ...................................411
24.2.1 BIOS ....................................................................................411
24.2.2 First-Stage Bootloader (FSBL) ........................................411
24.2.3 Second-Stage Bootloader (SSBL) ....................................412
24.2.4 Kernel .................................................................................413
24.2.5 Init .......................................................................................413
24.3 Booting Zynq ....................................................................................414