Bootloader

from Wikipedia, the free encyclopedia

A boot loader (English pronunciation [ buːtˌloʊdɚ ], from the shortened form of the original word bootstrap loader ), also launcher or boot loader called, is a special software , which is usually by the firmware z (. As UEFI , or legacy in compatible IBM PCs , the BIOS ) of a computer is loaded from a bootable medium and then executed. The boot loader then loads other parts of the operating system, usually a kernel . This is why we often talk about the boot code , the first program ( machine code ) that is loaded from a changeable changeable data memory after the unchangeable firmware . The process itself is called booting (in German also start ) of a computer .

The English term bootstrap originally refers to the loop that is located on the back of a boot to make it easier to put on the boot. The process of booting (running a program on a computer that is not yet running an operating system) is partly reminiscent of trying to pull yourself out of the mud by the loop of your own boot.

Where the bootloader is located on the variable data memory and how it is loaded varies depending on the computer architecture and platform . On more modern architectures, it is usually located as a file on a file system supported by the firmware on a specific partition and is loaded and executed directly. This is the case, for example, with Open Firmware and UEFI , whereby the partition tables and file systems used can be different. The boot loader itself must also be in a specific executable file format . On the one hand, this can be due to the processor architecture and in particular its instruction set , such as B. PE / COFF with UEFI, or the firmware implements a cross-architecture intermediate code format such as. B. Open Firmware with Forth FCODE. Some older architectures load the boot loader from a predefined block of the bootable medium, which is therefore also known as the boot block or, more commonly, the boot sector . On IBM PC-compatible computers with BIOS, this is always in the first block, block 0, which usually contains a master boot record (MBR) as a start program and as a partition table on partitioned data carriers .

Bootloaders are also used in the area of embedded systems . The bootloader cannot be reloaded there, but is located in the non-volatile memory of the control unit . It contains basic initialization routines and often communication protocols to enable the exchange of application programs.

A boot manager is a utility program that can be installed on an operating system , contains its own boot loader and offers extended configuration options.

Multi-stage bootloader

Is a boot loader divided into a plurality on each other constructive stages, it will be (as a multistage boot loader English multistage boot loader ), respectively. This division into stages is z. B. made when the program code of the boot loader does not find space in the boot sector; at this point only the first stage is therefore loaded and executed, which then the second stage, of which the first stage only knows the length, the block number and the number of the medium, is loaded and executed. The second level can now deal with the specific file system of the medium and loads the third level based on a file name. The third stage is now the actual boot loader and loads a configuration file, e.g. B. contains a selection menu. A menu item could contain the instruction to load a boot loader from another partition.

This multi-level structure has several advantages: In the case described above, the file of the actual boot loader (level 3) can be changed or physically moved as required, since the second level can deal with the file system and the third level can be found using the file name. In addition, such a boot loader is not subject to the restrictions on the length of a boot block.

Chain loader

It is also possible for several boot loaders to call one another one after the other , as in a chain [of command] . Such calls - usually over several partitions of time - is also chain loading or chainloaded (English chain loading called). A boot loader can be loaded first. B. represents a boot menu for operating system selection, and then, depending on the selection in this menu, the corresponding (operating system-specific) boot loader. In this way, several different operating systems can be operated side by side in a so-called multi-boot system on one computer.

Bootloader with additional function

Some boot loaders are not boot loaders at all with the sole purpose of starting an operating system. Examples:

  • Bootloader, which should only indicate that an inserted medium cannot be started, e.g. B. For floppy disks the text output “ Non-System disk or disk error. Replace and press any key when ready ... "( MS-DOS 5.0, FAT12 / 16 )
  • Boot loaders that recognize additional boot loaders on recognized data stores and start them. At the time of MS-DOS there were some formatting programs for floppy disks that allowed a selection of another device that could be started via BIOS. So you could z. E.g. with FDFORMAT or VGA-COPY / 386 you can write a boot sector on floppy disks, which can be started either automatically or from the hard disk. This is also z. This is the case , for example, with Windows installation CDs: If an operating system that is already installed is recognized on a recognized hard disk (or SSD), it only boots from the CD when any key is pressed, otherwise the local hard disk is booted. In this way, the installation program can restart the computer immediately after successful installation . Booting takes place from CD again, but now that no key is pressed, the installation program does not call itself again, but transfers control to the new installation.
  • Boot loaders that start an application program straight away. Some programs, such as Memtest86 , can be started directly from a floppy disk without a file system. In the 1980s, IBM-compatible PCs had so-called PC booters , mostly computer games that started directly from the floppy disk without an operating system.
  • Bootloaders that change missing or incorrect functions of the BIOS on PC-compatible computers in software (instead of firmware). This was previously used to expand BIOS functions so that the memory of hard drives larger than 512  MiB , 8  GiB , 32 GiB or 128 GiB is fully accessible, such as: B. EZ-Drive or OnTrack Disk Manager.
  • Also boot viruses are boot loader, and in this particular form of computer viruses that are already activated when the computer is started.
  • Boot managers are boot loaders that e.g. B. can be installed as a utility on a specific operating system . Compared to the boot loader provided by the operating system, they usually offer extended configuration options, such as a boot menu for multi-boot configurations. Examples: GRUB on IBM-compatible PCs with BIOS or UEFI (GRUB2 also on other architectures and platforms, such as Open Firmware on PowerPC), rEFIT and rEFInd on x86 UEFI PCs.
  • Bootloaders that load a different firmware. For example, Tianocore EDK2 (UEFI) can be started from a removable data storage device on a PC with BIOS, which can then start a modern operating system that requires UEFI. Likewise, z. B. Open Firmware or Coreboot can be started via bootloader.

List of boot loaders

Surname comment
ADAM2 Texas Instruments AR7 bootloader
AiRBoot does not require a primary partition, can be installed from different operating systems
Arcboot Advanced Risc Console (bootloader of earlier DEC Alpha systems)
Akernelloader x86 bootloader
Amiboot Linux loader executable from AmigaOS on Amiga computers; is configured from AmigaOS
barebox Modular, universal bootloader for embedded systems (formerly u-boot-v2)
BootEasy FreeBSD boot manager
bootman Bootloader, used on BeOS, ZETA and Haiku
Bootmgr Bootloader for all Windows systems from Windows Vista
BootStar Universal boot manager
Boat us Universal boot manager
BootX Bootloader for Mac OS X on PowerPC - platform with Open Firmware ; /System/Library/CoreServices/BootX
Since 2006, with the switch from PowerPC to IA-32 ("Intel Macs"), an Apple-specific EFI has been used and BootX has been replaced by an EFI bootloader ( /System/Library/CoreServices/boot.efi).
BootX From classic Mac OS from Mac OS 8 out's Acting Linux boot loader on Macintosh computers with "Old World" -PowerPC architecture, a boot selection has between Mac OS and Linux. In the technical sense only a bootloader for Linux, since BootX runs as a program on Mac OS - comparable to Loadlin under PC-compatible DOS and Windows 9x .
Castle Based on Grub. (comparable to grub24dos)
Clover The "Clover EFI bootloader", sometimes also CloverEFI, is a bootloader with a focus on multi-boot systems and macOS with numerous configuration options. On BIOS systems, Clover can load a TianoCore-based UEFI so that operating systems that require an EFI can be started. On (U) EFI systems, Clover uses the native EFI and can also start BIOS-based operating systems via CSM. The bootloader directly supports the Linux , macOS (originally Mac OS X) and Windows NT operating systems, but can basically start any PC operating system (e.g. PC- BSD - Unix ).
Colilo A LILO derivative for the Coldfire processor family from Motorola
EasyBCD Used to configure and customize the Bootmgr boot loader developed by Microsoft.
elilo Bootloader for Linux, for EFI- based IA-64 hardware.
EMILE (Early Macintosh Image LoadEr) Boot loader for Linux on an m68k Macintosh
eXtended FDisk DOS utility for setting up the boot manager and partitioning hard disks, developed as a replacement for fdisk, does not occupy any partition itself and supports hidden partitions, GPL
EXTlinux Included in the SYSLINUX software package
FILO
GAG (Gestor de Arranque Grafico) File system agnostic bootloader. Free software ( GPL ), multilingual (including German)
GRUB ( Grand Unified Bootloader ) Free Software (GPL), the bootloader of the GNU project (English) - official developer website
Grand Unified Bootloader for DOS (GRUB4DOS) Free software (GPL), based on Grub.
Grub24Dos Grub2 derivative comparable to burg
Rubber boat A boot loader that does not work on BIOS -based hardware, but only on UEFI -based hardware
iBoot IDevices bootloader (e.g. iPad, iPhone, iPod)
ISOlinux Included in the SYSLINUX software package
Linux Loader (LILO) File system agnostic bootloader for Linux and other systems, requires initialization call after kernel change, BSD license
Loadlin Bootloader for Linux that can be executed from Windows 3.x / 9x or PC-compatible DOS , which can also be configured from Windows.
NeoGRUB Integrated in the boot tool software EasyBCD
NT Loader (NTLDR) Bootloader for all Windows systems from NT 3.1 to XP / 2003
OpenBIOS free implementation of the open firmware standard
PALO Bootloader for the PA-RISC architecture processor hardware from Hewlett Packard
Penguin Linux loader executable from Mac OS 6–8 on m68k Macintosh; is configured from Mac OS
PLoP A bootloader that can boot from CDROM or USB even with older PCs without BIOS support. Download and documentation: German and English .
PXElinux Included in the SYSLINUX software package
Redboot Bootloader for embedded systems such as Atheros-based WLAN routers
Quik Bootloader for Linux on an Old World PowerPC Macintosh with Open Firmware
rEFInd Legacy of rEFIT. Originally for Macs with EFI in focus, rEFInd also works on other UEFI systems.
rEFIT Unofficial boot loader for Macs, which facilitates a selection menu for the easier multi-boot configuration for Windows, which uses a hybrid MBR . Also works with other operating systems such as u. a. Linux, BSD, Solaris. Development stopped.
ROM monitor The firmware for Cisco's network devices
Sparc Improved Loader (SILO)
Smart BootManager Bootloader from SPBLinux
SmartFirmware Bootloader of the Pegasos
SyMon boot manager Universal boot manager
SYSLINUX A package with a whole bunch of bootloaders: EXTlinux for booting from the ext2, ext3, ext4 and btrfs file system, for example on Linux, and ISOlinux for booting from the iso file system, mostly residing on optical disks such as CDs or DVDs, as well as PXElinux for almost network-synchronized booting in networks that consist of several computers. SYSlinux also allows booting from fat or vfat file systems, which means that this boot loader can also be used on UEFI computers from version 6 or higher.
systemd-boot see systemd
The submarine (formerly PPCBoot, formerly 8xxROM) Universal bootloader, especially for embedded systems
VAMOS Commercial boot loader, runs on MS-DOS systems, development discontinued.
Yaboot Bootloader for Linux on a New World PowerPC Macintosh and other PowerPC systems
XOSL Universal boot loader with graphical user interface, GPL
ZBOOT

Individual evidence

  1. Debian Gnu / Linux: Basics, page 466 - search results page in Google Books ; As of April 25, 2011
  2. Computerlexikon 2010, page 623 - search results page at Google books ; As of April 25, 2011
  3. Daniel B. Sedory: The MS-DOS 5.0 floppy disk boot record. (on a 1200 KiB floppy diskette). In: The Starman's Realm. September 24, 2011, accessed January 19, 2019 .
  4. AiRBoot (English) - official developer website
  5. AiRBoot (English) - Download from Sourceforge
  6. Website of the Barebox project
  7. Amit Singh: What is Mac OS X? Booting Mac OS X December 2003, accessed February 15, 2019 .
  8. ^ Brian Jepson, Rich Rosen, Ernest E. Rothman: Mac OS X For Unix Geeks, 4th Edition. Chapter 4. Startup. O'Reilly Media, Inc., accessed February 15, 2019 .
  9. Bootloaders> BootX Bootloader. penguinppc.org, September 25, 2004, archived from the original on April 30, 2008 ; accessed on February 15, 2019 .
  10. https://sourceforge.net/projects/cloverefiboot/
  11. GAG, the Graphical Boot Manager (English) - official developer website
  12. Older version (English) ( memento from April 9, 2013 in the Internet Archive ), current development as grub4dos-chenall (Chinese, English). See also: English language forum
  13. - ( Memento of the original from September 27, 2004 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / penguinppc.org
  14. Cisco; ROM monitor
  15. Smart BootManager (English) - official developer website
  16. Smart BootManager (English) - Download from Sourceforge
  17. Website of the PPCBoot project: Last release, continued as a submarine (English)
  18. Website of the PPCBoot project: Renaming of 8xxROM to PPCBoot (English)