Linux Boot Process | Linux boot process explained | Linux boot flow chart

Published: 11 March 2025
on channel: Fr ITHub
4,334
58

The Linux boot process is a series of steps that occurs when you power on or restart a Linux system. It’s the process that takes the system from being turned off to being ready to use. The Linux boot process involves multiple stages, from the BIOS to the operating system's user environment. Below is a breakdown of each stage:

1. BIOS (Basic Input/Output System) / UEFI (Unified Extensible Firmware Interface)
BIOS or UEFI is the first program that runs when the computer is powered on.
It performs basic hardware initialization and tests (POST – Power On Self Test), checking if all critical hardware components (CPU, RAM, etc.) are working.
UEFI is a modern replacement for BIOS, offering faster boot times and support for larger hard drives, among other features.
After initializing hardware, it locates and loads the bootloader (GRUB for Linux) from the bootable device (HDD, SSD, USB, etc.).
2. Bootloader (GRUB)
GRUB (Grand Unified Bootloader) is a bootloader that loads the operating system's kernel into memory.
After BIOS/UEFI completes its task, GRUB is executed, and it presents a menu (if multiple operating systems are installed) allowing the user to choose which OS to boot.
The bootloader then loads the Linux kernel into memory and passes control to it.
3. Linux Kernel
The Linux kernel is the core part of the operating system. It manages system resources, hardware, and communication between software and hardware.
Once GRUB loads the kernel, the kernel initializes and configures the system’s hardware (CPU, memory, peripherals) and mounts the root filesystem.
The kernel loads device drivers, making sure the system can communicate with the necessary hardware, such as the graphics card, hard drives, network interfaces, and more.
The kernel then starts the init process (/sbin/init), which is the first user-space process and has process ID 1 (PID 1).
4. Init Process (Systemd or Upstart)
The init process is responsible for managing system services and user-space processes.
In modern Linux systems, systemd is the most common init system used to initialize and manage the system.
The init process reads configuration files (typically from /etc/init.d or /etc/systemd/system) to start essential system services such as networking, display managers, system logging, and more.
The systemd service manager begins loading required system services, such as networking, system logging (rsyslog), and mounts filesystems (e.g., /home or external drives).
After systemd or init completes, the system enters a multi-user state, and user processes are now able to be started.
5. Runlevels (or Targets in systemd)
Runlevels (in older Linux systems with SysVinit) or Targets (in newer systems using systemd) define the different modes in which the system can operate.
For example:
Runlevel 0: Halt the system.
Runlevel 1: Single-user mode (used for system repair).
Runlevel 3: Multi-user mode with networking.
Runlevel 5: Multi-user mode with a graphical user interface (GUI).
Runlevel 6: Reboot.
With systemd, runlevels are replaced by targets such as multi-user.target (similar to runlevel 3) and graphical.target (similar to runlevel 5).
6. User Login Prompt (Login Manager or Console)
After all necessary system services have been started, the system is ready for the user to interact with.
In a system with a Graphical User Interface (GUI), a Display Manager (e.g., GDM, LightDM, SDDM) presents a login screen for the user to authenticate and start a graphical session.
If the system is running in text mode, a terminal-based login prompt is shown on the console (TTY). The user types their username and password to gain access.
7. User Shell and Environment
After successful login, the user is granted access to a shell (like bash or zsh), which is a command-line interface where the user can execute commands.
The user’s environment (set by shell configuration files like .bashrc or .bash_profile) is loaded, defining the user’s path, aliases, and environment variables.
The user can now execute programs and interact with the system.
Summary of the Linux Boot Process:
BIOS/UEFI: Initializes hardware and loads the bootloader.
GRUB: Bootloader that loads the Linux kernel.
Kernel: Initializes the system and mounts the root filesystem.
init/systemd: Starts system services and manages processes.
Runlevels/Targets: Defines system states for multi-user or graphical environments.
Login Prompt: User logs in either through a graphical interface or text console.
User Shell: The user interacts with the system through the shell.
Optional: The Boot Process with Secure Boot or Fast Boot
Some systems may use Secure Boot, which ensures that only trusted software (like the bootloader and kernel) is loaded to avoid malware attacks during boot.
Fast Boot (enabled in UEFI settings) can skip certain parts of the boot process, such as hardware checks, to speed up startup.


On this page of the site you can watch the video online Linux Boot Process | Linux boot process explained | Linux boot flow chart with a duration of hours minute second in good quality, which was uploaded by the user Fr ITHub 11 March 2025, share the link with friends and acquaintances, this video has already been watched 4,334 times on youtube and it was liked by 58 viewers. Enjoy your viewing!