A bootstrapper is essentially a program that runs at startup and facilitates a basic function at boot, such as starting up the computer's operating system. The terms "bootstrap" and "bootstrapping" are thought to be derived from the expression "pulling yourself up by your bootstraps," which refers to starting small and leading into the next program sequentially. Bootstrappers can be used in a number of ways to change the way the computer operates at boot.
A computer's basic input-output system, or BIOS, is a form of bootstrapper. Located on the computer's ROM memory, the BIOS instructs the computer on basic functions and is typically configured to automatically launch the computer's primary operating system upon startup. Advanced users can even change the BIOS configuration to achieve different effects such as changing what memory source (hard disk, DVD, USB drive) is read first for boot information.
Multiple Operating Systems
A bootstrapper can be used to manage multiple operating systems on a single computer. GNU grand unified bootloader, or GRUB, is a typical multiboot system that enables you to choose from multiple operating systems at boot instead of a single OS automatically booting. Multiboot loaders like GRUB can be loaded with boot options for numerous operating systems, like Microsoft Windows, Unix, Linux and others. As long as the bootloader can read the file system, it can load the operating system.
Other programs that act as bootstrappers are those that launch at boot, before the operating system can begin running. The purpose of loading at boot varies depending on the function of the program itself. For example, some anti-virus programs offer the ability to perform "boot scans," a virus or malware scan that preempts the standard boot process and prevents any illicit programs that rely on the OS's resources to operate or conceal themselves. Some system recovery tools also act as bootstrappers, as they preempt regular boot operations and load a previous configuration instead of the current configuration stored in the BIOS and OS bootloader.
The term "bootstrapping" occasionally has other meanings, although these meanings are used less frequently. Programs that check for and install prerequisites for a program before the program itself is installed are sometimes called bootstrappers. The term "bootstrap" is sometimes used to refer to incrementally preparing programming environments for the creation of more sophisticated programming environments with more features.