The BIOS (Basic Input/Output System) is the legacy firmware that runs when a PC-compatible computer is powered on, before any operating system begins loading. Originating with the IBM PC in 1981, it performs the power-on self-test (POST), initialises basic hardware, and loads the first 512 bytes (the MBR) from the configured boot device into memory at address 0x7C00, then jumps to it. From there, a bootloader like GRUB takes over.
BIOS was designed for 16-bit real-mode 8086 processors and retained that character for decades, layering hacks like PCI and USB support onto an essentially pre-1980s architecture. It had no standard for secure boot, its BIOS setup screens were vendor-specific, and its 32-bit disk addressing topped out at 2 TiB. These limitations eventually drove its replacement by UEFI.
Most x86 systems sold after about 2012 ship with UEFI, though many include a "legacy BIOS" or "CSM" compatibility mode that can still boot older operating systems. The term "BIOS" is sometimes used loosely to mean any firmware setup screen, even on UEFI machines. For Linux users, the practical difference is which bootloader configuration to use: MBR partitioning and traditional GRUB for legacy BIOS, GPT partitioning and UEFI-aware GRUB or systemd-boot for UEFI.
Discussed in:
- Chapter 3: The Linux Kernel — The Boot Process
Also defined in: Textbook of Linux