|
For more detail on the Linux boot process, here are some pointers:
The Linux
System Administrators' Guide has a section on booting. The LILO ``Technical overview'' has the definitive technical, low-level
description of the boot process, up to where the kernel is started. The source code is the ultimate guide. Below are some kernel
files related to the boot process. If you have the Linux kernel source code,
you can find these under /usr/src/linux on your machine;
alternatively, Shigio Yamaguchi (shigio at tamacom.com) has a very nice hypertext kernel
browser for reading kernel source files. Here are some relevant files
to look at:
- arch/i386/boot/bootsect.S and
setup.S
Contain assembly code for the bootsector itself. - arch/i386/boot/compressed/misc.c
Contains code for uncompressing the kernel. - arch/i386/kernel/
Directory containing kernel initialization code.
setup.c defines the ramdisk word. - drivers/block/rd.c
Contains the ramdisk driver. The procedures
rd_load and rd_load_image load blocks from a device into a
ramdisk. The procedure
identify_ramdisk_image determines what
kind of filesystem is found and whether it is compressed.
|