Booting the System

This appendix describes what happens during the GNU/Linux boot process.

How you boot your system depends on how you set things up when you installed Debian. Most likely, you just turn the computer on. But you may have to insert a floppy disk first.

Linux is loaded by a program called LILO, or LInux LOader. LILO can also load other operating systems and ask you which system you'd like to load.

The first thing that happens when you turn on an Intel PC is that the BIOS executes. BIOS stands for Basic Input Output System. It's a program permanently stored in the computer on read-only chips. It performs some minimal tests and then looks for a floppy disk in the first disk drive. If it finds one, it looks for a ``boot sector'' on that disk and starts executing code from it, if there is any. If there is a disk but no boot sector, the BIOS will print a message like this: Non-system disk or disk error. Removing the disk and pressing a key will cause the boot process to resume.

If there isn't a floppy disk in the drive, the BIOS looks for a master boot record (MBR) on the hard disk. It will start executing the code found there, which loads the operating system. On GNU/Linux systems, LILO can occupy the MBR and will load GNU/Linux.

Thus, if you opted to install LILO on your hard drive, you should see the word LILO as your computer starts up. At that point, you can press the left Shift key to select which operating system to load or press Tab to see a list of options. Type in one of those options and press Enter. LILO will boot the requested operating system.

If you don't press the Shift key, LILO will automatically load the default operating system after about 5 seconds. If you like, you can change what system LILO loads automatically, which systems it knows how to load, and how long it waits before loading one automatically.

If you didn't install LILO on your hard drive, you probably created a boot disk. The boot disk will have LILO on it. All you have to do is insert the disk before you turn on your computer, and the BIOS will find it before it checks the MBR on the hard drive. To return to a non-Linux OS, take out the boot disk and restart the computer. From Linux, be sure you follow the proper procedure for restarting; see section 4.5 on page [*] for details.

LILO loads the Linux kernel from disk and then lets the kernel take over. (The kernel is the central program of the operating system, which is in control of all other programs.) The kernel discards the BIOS and LILO.

On non-Intel platforms, things work a little differently. But once you boot, everything is more or less the same.

Linux looks at the type of hardware it's running on. It wants to know what type of hard disks you have, whether or not you have a bus mouse, whether or not you're on a network, and other bits of trivia like that. Linux can't remember things between boots, so it has to ask these questions each time it starts up. Luckily, it isn't asking you these questions - it's asking the hardware! While it boots, the Linux kernel will print messages on the screen describing what it's doing.

The query process can cause problems with your system, but if it was going to, it probably would have when you first installed GNU/Linux. If you're having problems, consult the installation instructions or ask questions on a mailing list.

The kernel merely manages other programs, so once it is satisfied everything is okay, it must start another program to do anything useful. The program the kernel starts is called init. After the kernel starts init, it never starts another program. The kernel becomes a manager and a provider of services.

Once init is started, it runs a number of scripts (files containing commands), which prepare the system to be used. They do some routine maintenance and start up a lot of programs that do things like display a login prompt, listen for network connections, and keep a log of the computer's activities.

John Goerzen / Ossama Othman