Open-Source Internship opportunity by OpenGenus for programmers. Apply now.
During startup, the BIOS performs initial tests after which it transfers control to the MBR where the boot-loader is stored. A bootloader is a program that loads the operating system into memory during startup.
Table of contents.
- Introduction.
- Bootloaders.
- Summary.
- References.
Introduction.
When a computer is powered on, hardware information is displayed on the screen, this is the boot loader firmware working.
A boot loader is the program responsible for loading an operating system into memory when then the machine is booted up.
A boot loader may be stored in the first block of a bootable medium or a specified partition of the bootable medium. A bootable medium can be a flash disk, hard disk, etc.
Responsibilities of a boot-loader involve:
- Loading alternative firmware if one fails or is preferred.
- Launch other programs.
- Identifying other boot loaders and starting them.
- Correction and expansion of missing function entries in the firmware.
Bootloaders.
GRUB(GRand Unified Boot-loader).
This is a commonly used Linux boot-loader, it is based on the GRUB Legacy created in 1995. This new version supports BIOS and UEFI and all Linux file systems. Compared to its predecessor it is more powerful and safer.
Its features include;
- Bash command-line interface.
- Easy setup and installation.
- Encryption of passwords.
- Multi-boot support.
- Network booting.
- Supports a wide range of hardware architectures.
SYSLINUX.
This is a collection of 5 boot-loaders, eponymous SYSLINUX, ISOLINUX, PXELINUX, EXTLINUX and MEMDISK.
It is can be used to boot multiple operating systems from a single USB stick.
It Supports multiple file systems such as ext4, ext3, ext2, FAT, NTFS etc.
These boot-loaders are usually used to boot live distributions of the Linux OS.
LILO(Linux Loader).
This is a Linux boot-loader used to boot Linux operating systems from hard disk, floppy disks. It is simple to use compared to the GRUB boot-loader.
Features include:
- No interactive command-line interface.
- No network booting.
- Does not support all Linux file systems.
- Has several error codes.
- Requires re-installation after touching the kernel of initrd.
- Supports LVM2, only if the kernel and initd are not spread across non-contiguous logical volumes.### Clover Bootloader.
BURG.
This is a derivative of the GRUB boot-loader and inherits multiple of its features from GRUB.
Its object format allows it to be built for a wide range of OSs
Other than these inherited features, it also has additional features such as:
- Supports multiple operating systems such as Linux, Mac OS, etc.
- Flexibility in terms of configuring the menu system to work on both text and graphic mode.
barebox.
Although it is possible to run an embedded system right out of reset it is common convention to separate initial startup and POST which are in a separate boot-loader from the operating system itself.
The barebox boot-loader is designed for embedded systems e.g Linux. It runs on various system architectures such as x86 and ARM.
It is referred to as the swiss army knife for bare-metal Linux.
Clover Bootloader.
This is a boot-loader for EFI-based machines.
Some of its features include;
- Ease of use due to many keyboard shortcuts.
- Customizable themes, icons.
- One can emulate UEFI on legacy BIOS systems.
systemd-boot (Gummiboot).
An open-source boot manager merged into systemd as systemd's boot component.
It is mainly used for systems implementing a "secure boot" feature.
Features include:
- It is lightweight compared to other boot-loaders such as GRUB and SYSLINUX.
- It reduces boot time for EFI-based computers.
- It features a text-based user interface without too many customizations.
YaBoot - Yet Another Boot loader.
It supports loading kernels from several operating systems such as ext2, ext3, ReiserFS, xfs. It also supports dual-booting.
It is built to run Linux in legacy PowerPC systems while offering features such as bootstrapping, partitioning, etc.
Features include;
- Supports network booting.
- Supports multiple file systems.
- Supports multiple operating systems.
rEFInd.
This is a modern-day boot manager for UEFI and EFI-based computers. It supports processors architectures such as x86, AMD64, and ARM.
Features include;
- It is lightweight.
- Allows for customization involving fonts, icons, etc.
- Supports legacy BIOS boot loaders.
Other boot loaders include;
bootmgr - This is a boot manager for Microsoft Operating Systems such as Windows Vista, Windows Server.
ELILO- a boot loader for EFI-based firmware systems.
SILO - SPARC Improved LOader, for booting SPARC of Linux using a hard disk, floppy, or CDROM.
grubutil-win32 - a Debian-installer loader for win32. Compared to traditional BIOS, it is user-friendly.
Summary.
A boot-loader is responsible for loading the operating system to the Linux kernel and the Linux initial RAM disk.
We have looked at bootloaders that can run on Linux operating Systems.