Modern Linux Boot Process ?

Modern Linux Boot Process ?

The modern Linux boot process typically involves multiple stages that transition from system power-on to a fully running operating system. Here's an overview of the key steps in the Linux boot process:

BIOS/UEFI Initialization:

  • BIOS (Basic Input/Output System) or UEFI (Unified Extensible Firmware Interface) is the first code that runs when the computer is powered on.
  • POST - Power On Self Test. It initializes and tests hardware components
  • It looks for a bootable device (such as hard drives, SSDs, or USBs), and transfers control to the bootloader located in the Master Boot Record (MBR) or GUID Partition Table (GPT).

Bootloader

  • The bootloader (GRUB) is responsible for loading the Linux kernel into memory and passing control to it.
  • It may provide a boot menu to select different operating systems or kernel versions.

Linux-BootLoader.png

Initial RAM Disk (initramfs)

  • The kernel initializes system hardware, including CPU, memory, and device drivers.
  • It mounts the initial RAM disk (initramfs), a temporary root file system that allows access to necessary drivers and modules required to mount the real root file system.
  • The kernel detects and configures all necessary hardware for the system to operate.

RAMDISK.png

Systemd

  • Once the kernel has loaded and set up basic hardware, it hands over control to the systemd (first process of the kernel).
  • systemd reads configuration files from /etc/systemd/, and it manages services, mounts file systems, sets up network interfaces, and starts daemons.

systemd-enabled-services.png

Target

  • systemd switches to the target specified in its configuration. (typically multi-user.target for a full multi-user, non-GUI system, or graphical.target for GUI-based systems).
  • At this point, all necessary services and daemons like networking, login, display managers (e.g., GDM, LightDM) are started.

systemd-analyze-services.png

Login and Shell

  • Once systemd completes its work, the system prompts the user with either a command-line login or a graphical login screen (depending on whether the system is in text or graphical mode).
  • After login, the user's shell environment or desktop environment is launched, and the system is fully operational.

Linux-boot-Login.png

Read more