When the computer is switched on, it automatically invokes BIOS [a ROM chip embedded in the motherboard].
The BIOS will start the processor and perform a POST [power on self test] to check whether the connected device are ready to use and are working properly.
Once the POST is completes BIOS will jump to a specified location in the RAM and check for the booting device. The boot sector is always the first sector of the hard disk and BIOS will load the MBR into the memory.
Here the boot loader takes the control of the booting process.
LILO or GRUB is the boot loaders commonly available. It will help the user to select various boot options.
Depending on the boot option selected the kernel is loaded.
After kernel is loaded the kernel will take the control of the booting process
initrd will be loaded which contains drivers to detect hardware (Initialization of RAM Disk)
Then it will initialize all the hardware including I/O processors etc.
Kernel then mounts the root partition as read-only
INIT is loaded.
INIT will mount the root partition and other partitions as read/write and checks for file system errors.
Sets the System Clock, hostname etc..
Based on the Runlevel, it will load the services and runs the startup scripts (Network, cups, nfs, etc.)