Linux boot steps


written by:Sadi Evren SEKER

When you power up the computer, every components of your computer starts to consume electricity, but order of interrupts are previously declared. Below list is prepared to give some information about boot sequence in a Linux loaded personal computer. There may be exceptions for this list. If you have any suggestions or objections or questions, please feel free to send an email to me. ses@sadievrenseker.com

1. step (initialization of hardware)
Initial component of a boot sequence is BIOS (basic input output system). When you power on a computer, BIOS starts a POST (power on self test), during this test, when a graphic adapter is found, the BIOS of graphic adapter continues job by its own POST.
You most probably see an information about your graphic card manufacturer, video ram capacity and so on. After the post operation of vga (video graphic adapter) again bios handles the job and displays the rest of post operation.
The next thing you will see is the information about your CPU (central processing unit). This test is critical, some BIOSes, supports the test on environment conditions (such as the operation degree (e.g. in celsius)). Next step is your RAM (random access memory).
You can see the counting operation in your monitor. it will be counted from 0 up to you ram capacity (please notice that the ram capacity is in bytes (so most probably you will see a larger first three digits than the capacity of your RAM in mega bytes)).
Then the test on other components goes on (such as the HDD (Hard disk driver) or CD-ROM. In most cases, you have an IDE bus or SCSI bus. (which may be controlled by default BIOS or an external BIOS), and the status of these devices are listed on your screen.
This screen is cleared for the result report which is a black and white screen that displays all information about your critical computer.

2. step (initialization of O/S (operating System)
After your H/W (hardware) is prepared, the first sector on your boot device (the device on the top of the list of boot sequence in BIOS(BIOS tries ather alternatives by the order, if it fails on first)) initializes. This first sector is usually called as MBR (Master boot Record). The processor starts executing instructions there.

3. step (initialization of Boot Loader
Now a days there are many possibilities for Boot Loaders (most commons were the LILO and the GRUB, while I was typing this tutorial). I will continue witl the LILO:
Lilo prints
LILO
with its progress revealed by individually printing the letters. The first "L" is printed after Lilo moves itself to a better location at the primary memory (RAM). The "I" is printed just before it starts its secondary boot loader code.
Lilo's secondary boot loader prints the next "L"(second L), loads descriptors pointing to parts of the kernel, and then prints the final "O". The descriptors are placed at related memory location.
The boot message and a prompt line, if specified, are printed. The pressing "Tab" at the prompt, allows the user to specify a system and to provide command-line specifications to the Linux Kernel, its drivers, and the "init" program. Also, environment variables may be defined at this point.
The following line is from /boot/message:
>>> Press to list available boot image labels.
The following line is the prompt from /sbin/lilo:
boot:
Note: If Lilo is not used, then the boot code built into the head of the Linux kernel, linux/arch/i386/boot/bootsect.S prints "Loading" and continues.
Click to see sample bootsect.S
Lilo displays the following as it loads the kernel code. It gets the text "Linux" from the "label=..." specification in /etc/lilo.conf.
Loading linux-2.2.12..........

4. step Loading Kernel