Dennis ten Hoove


How Linux systems boot

So basically your system looks for a disk to boot. On UEFI systems there will be a partition at the beginning of the disk containing the bootloader and everything it needs to boot the system like system drivers, init system and a kernel. The bootloader will be executed by the UEFI, it will start running and loads the initramfs in to memory. The initramfs is a basic root filesystem containing everything the system needs to boot. Initramfs will have drivers for the filesystem and other things it needs to interact with during boot. You could for example make it load your GPU drivers at this point already, but usually they will be loaded later since they are not required at this point. Once everything is loaded in to memory the minimal operating system in memory will start running. On every OS except for Windows this process will be handed by an initsystem, a program which manages processes. It will start various processes such as the network manager, display server and graphical interface. It is the first process which launches on a system so the init will have the PID of 1. It works slightly different on BIOS systems, they do not have have a boot partition and instead rely on the disk's MBR. The MBR is too small to store everything, it's only 512 bytes in size. 446 of these bytes are just a simple program and pointer to the bootloader which lives somwhere else on the disk, usually on your root partition.