Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

This article describes the general boot process of most Linux distributions.[1] While most Linux distributions integrates varying components, the basic steps remain the same.

BIOS

The BIOS (Basic Input/Output System) is the firmware that initializes hardware components and provides a basic set of services to the kernel.[2] It is obtained from the ROM and is responsible for loading the bootloader.

Once the correct boot device is selected, the BIOS loads the boot sector, which is the first sector (512 bytes) of the boot device.[3] The boot sector contains the bootloader, which is responsible for loading the kernel.

Bootloader

The bootloader is responsible for loading the kernel into memory and starting the kernel. Common bootloaders include GRUB, Syslinux, Limine, systemd-boot, rEFInd, etc. Usually, the bootloader is stored separately from the kernel, in different partitions or even on a different device. It displays an interface, such as a text-based menu to select the kernel to boot.

Initramfs

The initramfs is a compressed filesystem that is loaded into memory during boot. It contains essential files and utilities required to mount the actual root filesystem and start the init process. The initramfs is typically created using mkinitcpio or dracut.

Kernel

The kernel is the core of the operating system and is responsible for managing hardware resources and providing a platform for user-space applications. It is responsible for initializing hardware, managing memory, and providing a virtual filesystem. It is loaded by the bootloader and starts the init process.

Init

The init process, which must be stored under /sbin/init, is responsible for initializing the system and starting the user-space applications. It is responsible for mounting the root filesystem, starting the necessary system services, and starting the graphical user interface. On most modern systems, this is systemd. Some older systems use sysvinit or upstart.

TTY

The TTY (Teletype) is a text-based interface that allows users to interact with the operating system. It is responsible for displaying text and accepting user input. It is typically used for logging in and running commands. It is also used for debugging and troubleshooting.

The TTY is available even on modern systems and can be accessed through the Ctrl+Alt+F1 to Ctrl+Alt+F6 keys.

Display Manager

The display manager is responsible for managing the graphical user interface.[4] On most modern systems, this is lightdm, gdm, or sddm.

Once the user logs in, the display manager executes the window manager or desktop environment chosen by the user.

References