Generated by GPT-5-mini| LILO | |
|---|---|
| Name | LILO |
| Developer | H. Peter Anvin |
| Latest release | 24 June 1998 |
| Programming language | Assembly language, C |
| Operating system | Linux |
| Genre | Boot loader |
| License | GNU General Public License |
LILO LILO is a legacy boot loader for Linux systems that provides a simple mechanism to load kernels and initial RAM disks at system startup. It historically served on diverse hardware platforms and was widely used in distributions such as Debian, Red Hat Linux, and Slackware before graphical and feature-rich loaders became dominant. LILO's design emphasizes minimal runtime code in the boot sector and a separate map file on disk, enabling straightforward boot-time selection among multiple kernels.
LILO originated as a compact solution for booting Linux on personal computers and workstations, supporting boot parameters, kernel selection, and simple prompt-based interaction. It influenced early deployment strategies at projects like SUSE, Gentoo Linux, and enterprise installations at IBM research centers. System administrators on servers such as those running Apache HTTP Server or database systems like PostgreSQL often relied on LILO for reliable multi-boot configurations during the 1990s and early 2000s. Distributions including Mandrake Linux, Caldera, and TurboLinux provided LILO as the default boot loader in early releases.
LILO uses a small boot block written into the Master Boot Record or a partition boot sector and a disk-resident map file to translate kernel addresses into physical disk sectors. Its architecture contrasts with chain loaders used by systems like MS-DOS and Windows NT, and with more feature-rich loaders such as GRUB from the GNU Project. Features include support for booting kernels with initial RAM disks, passing kernel command lines, and simple interactive prompts; these capabilities made it suitable for systems running services like Sendmail or ProFTPD. LILO supports various filesystems such as ext2, ext3, and ReiserFS used in distributions like Red Hat Enterprise Linux and Fedora. The combination of Assembly language and C helped keep the codebase compact for use on constrained platforms including legacy IBM PC compatibles and early Compaq machines.
Installing LILO requires writing its boot code to the Master Boot Record or a partition boot sector and creating a configuration file typically located at /etc/lilo.conf. Administrators on systems like SUSE Linux Enterprise Server or Debian GNU/Linux would run a userland utility to install or update the map file after kernel or configuration changes. Typical configuration directives reference kernel images provided by packages from projects such as Linux kernel maintainers and initramfs builders used by Dracut or initramfs-tools. Management workflows often integrated with installation systems such as Anaconda and recovery procedures influenced by tools like SystemRescueCd.
On boot, the system firmware such as BIOS hands control to LILO's boot sector, which reads a more capable second-stage loader and the on-disk map file to locate kernel images. LILO then parses user input from a prompt to select among kernels, similar in role to the boot menus provided by Microsoft Windows Boot Manager or alternatives like rEFInd on EFI systems. Because LILO stores absolute disk addresses in its map file, updating kernels or moving files requires re-running the installation step to refresh mappings—an operational detail relevant to administrators managing installations for services like Samba or OpenSSH in data center environments.
LILO is compatible with traditional BIOS-based x86 systems and many filesystems common to Linux distributions, but it lacks native EFI/UEFI support which became important for modern platforms from vendors such as Dell, HP, and Apple. Its reliance on a disk map means it cannot relocate kernel files without reinstallation, unlike stage-based loaders such as GRUB that use filesystem drivers at runtime. LILO also provides limited user interface features compared with graphical managers used in environments running X.Org Server sessions or desktop distributions like Ubuntu. These limitations contributed to reduced adoption in virtualized deployments on platforms like Xen and KVM where flexible boot chaining and scripting were advantageous.
LILO was developed by H. Peter Anvin in the early 1990s and evolved alongside the Linux kernel as one of the first widely used boot loaders for the platform. Its development intersected with projects like GNU Project tools and early Linux distributions including Slackware and S.u.S.E.. Over time, community and distribution maintainers shifted focus toward loaders offering richer features and UEFI support such as GRUB and systemd-boot, leading to reduced upstream changes for LILO. Nevertheless, it remained maintained in several distribution archives and historical documentation curated by projects like The Linux Documentation Project.
Prominent successors to LILO include GRUB (both legacy and GRUB 2), systemd-boot (formerly gummiboot), and rEFInd, which provide EFI/UEFI support, modularity, and scripting facilities used by modern distributions like Arch Linux, Fedora, and openSUSE. Other alternatives include platform-specific tools such as the Windows Boot Manager and third-party boot managers used in multi-boot setups alongside FreeBSD or NetBSD installations. For embedded and minimal systems, projects like U-Boot offer bootstrapping capabilities in device ecosystems produced by manufacturers like Broadcom and Qualcomm.
Category:Boot loaders