Boot Sequence

1. BIOS(Basic Input/Output System)>Bootloader(KEY)->kernel initialization(KEY)->init starts and enters desired run level(KEY) by executing

2. /etc/rc.d/rc.sysinit

3. /etc/rc.d/rc and /etc/rc.d/rc[0-6].d/ #(0-6 depends on run level what you set)

4. Virtual Consoles(not related here yet)

5. X display Manager(If you set run level as 5)

1. BIOS:

BIOs loads the lowest interface for device s and controls(hard disks and keyboards,etc)

BIOS run a POST(Power on self test) first, then read CMOS and find the boot information.

Hardware configuration information stored in CMOS(Complementary Metal Oxide Semiconductor, 64 bytes), CMOs is stored in battery on motherboard.(Remember use keys to flush the battery on motherboard(Hah)

Finally BIOS read the first physical sector of the chosen boot media on the system.(The first 512 bytes of the hard disk normally)

2. Bootloader(GRUB)

GRUB is the boot loader LINUX used to boot. When GRUB starts up, we can see the counting down seconds and then it goes to LINUX. Like the windows XP start menu, we can set this and choose different operations system installed on our computer (actually it is meaningless as we have multiple Giga RAMand VMware now)

I will use a followed section to describe how to configure GRUB after finish boot sequence

Bootloader runs as 2 stages.

1st stage – small, resides in MBR or boot sector( it will get the control from BIOS and direct to 2nd stage(446 bytes)

2nd stage- loaded from boot partition( this partition is the one we can define during installation, normally is /boot(100M by default)->load the kernel

Kernal is stored under /boot partition and do the following works

– Device Detection

– Device Driver initialization

– Mounts root filesystem read only

– Loads initial process(init)

3. init

init will read /etc/inittab (discuss later)

inittab defines run levels, it will load the defined run level and goes to rc[1-6].d, will research later.

When rc[1-6] is done, it will load rc.local

4 and xinetd service can run later here, it stores the programs that not used frequently, but when clients try to use this services, client will access xinetd first and xinetd will open these services for client.

There are some key configuration files are useful during initialization: