|POST (Power-On Self Test)||Low-level check of PC hardware.|
|BIOS(Basic I/O System)||Detection of disks and hardware.|
(GRand Unified Bootloader)
|GRUB stage 1 is loaded from the MBR and executes GRUB stage 2 from filesystem.GRUB chooses which OS to boot on.The chain loader hands over to the boot sector of the partition on which resides the OS.
The chain loader also mounts initrd, an initial ramdisk (typically a compressed ext2 filesystem) to be used as the initial root device during kernel boot; this make possible to load kernel modules that recognize hard drives hardware and that are hence needed to mount the real root filesystem. Afterwards, the system runs /linuxrc with PID 1. (From Linux 2.6.13 onwards, the system instead loads into memory initramfs, a cpiocompressed image, and unpacks it into an instance of tmpfs in RAM. The kernel then executes /init from within the image.)
|inux kernel||Kernel decompression into memory.Kernel execution.Detection of devices.
The real root filesystem is mounted on / in place of the initial ramdisk.
|init||Execution of init, the first process (PID 1).The system tries to execute in the following order:/sbin/init
If none of these succeeds, the kernel will panic.
|Startup||The system loads startup scripts and runlevel scripts.|
|X Server||(Optional) The X Display Manager starts the X Server.|
Some newer systems use UEFI (Unified Extensible Firmware Interface). UEFI does not use the MBR boot code; it has knowledge of partition table and filesystems, and stores its application files required for launch in a EFI System Partition, mostly formatted as FAT32.
After the POST, the system loads the UEFI firmware which initializes the hardware required for booting, then reads its Boot Manager data to determine which UEFI application to launch. The launched UEFI application may then launch another application, e.g. the kernel and initramfs in case of a boot loader like the GRUB.