Booting is simply the process of starting up the system when the computer is powered on. The computer's BIOS (the Basic Input/Output System which is programmed into the hardware of the computer) takes charge and decides what is to be done. Usually the BIOS first runs a Power-On-Self-Test (POST) and then looks for boot information which typically resides in the Master Boot Record (MBR) of the hard drive (or in general the boot sector of any available device).
For a GNU/Linux system the MBR contains a boot loader like lilo of grub. These will give you choices of operating systems to boot whenever you reboot your computer. To install a boot loader you will either overwrite the master boot record with one that will start up lilo, or, for MS-Windows/NT, you will add extra information in a configuration file to identify, for MS-Windows/NT, how to boot into GNU/Linux. The grub boot loader is quite a bit more flexible than LILO and is often a good choice.
Lilo is the traditional GNU/Linux boot manager (and silo is the boot manager for Sparc GNU/Linux). A newer alternative that may replace lilo is the GNU grub (GRand Unified Bootloader). Grub can be set up to automatically identify newly installed kernels, making the installation of new kernels quite straightforward. Another emerging alternative is xosl, the extended OS loader.
If you are using a GNU/Linux boot loader such as Grub then the Grub code will be loaded into memory and executed. Grub takes on the task of then loading an operating system, such as the GNU/Linux kernel. More information about the process is available from http://www.tldp.org/LDP/sag/index.html.
In this chapter we also explore issues around dual booting. See Chapter 45 for what happens once the Linux kernel starts booting.