Bootstrap is a combination of two words boot and strap. Verbal meaning of boot strap is the strap of a boot or shoes which supports in pulling the boots up. Bootstrap means to help oneself using improvised means. Bootstrap also means a strap that is looped or sewn to the top of a boot for pulling it on. Now let us try to understand the meaning of bootstrapping in terms of computer science. And how the term bootstrapping is related to computers? We know that when a computer is switched it takes some time to start and during this period of time it runs various codes. When this is going on we say that the computer is booting.
What is Booting?
What we understand by booting? Booting is a procedure of starting a computer and starting its software. This booting process runs through various stages. At each stage a simple and small program loads and initiates larger and complicated programs or procedures of next stage. That implies that the computer acts and improves itself. That is why we say the computer pulls itself by its bootstraps. Booting is a sequence of actions that get initiated with execution of hardware-based process and then being handed over to firmware and software. This software is stored into main memory. Booting mainly involves actions and processes like performing self tests, loading of configuration settings, BIOS loading, and Operating system loading.
What is Bootstrap?
The term bootstrap was first used as an analogy in context of computers in 1950s. In computers, when a bootstrap button is pressed, it initiates a hardware program which in turn reads a bootstrap program. The computer then executes this bootstrap program, which in turn reads more program instructions. This is a self sustaining process which completes without external help or support or manually typed instructions. It then is a self-assisting process that continues without external help from manually entered instructions. So, bootstrap is a computer related term and is in use since 1953.
As a startup activity of computer, diagnostic tests are carried out. Power On Self Test or simply POST is a kind of such test. During this test device configurations are checked and set, then route testing is done to verify peripheral connectivity, hardware and external memory device connections etc. After all these verification, bootstrap or boot loader program is loaded which then initializes Operating system (OS). Boot strapping also refers to preparing initial programming environments step-wise to create more complicated and user-friendly programming environments.
Types of Boot loaders
Various programs which are used to load operating systems are:
- GNU Grand Unified Boot loader (GRUB): A GNU GRUB is a boot loader produced by GNU. GNU operating systems use GRUB boot loader. This boot loader is capable of initiating many operating systems and then user can choose one of them.
- NT Loader (NTLDR): This boot loader normally runs through the hard drive but it can also run from mass storage devices such as a CD-ROM, floppy disks or USB flash drives. This NTLDR boot loader is for Microsoft’s Windows NT OS.
- Linux Loader (LILO): This boot loader for Linux and is also known as boot manager. It generally runs from a hard drive or a floppy disc and facilitates dual boot of a computer.
- Ladlin: A Linuux boot loader which executes in DOS or Microsoft windows (windows 95, 98 ad Me Operating systems only). It can permit the Linux system to load and replace the current DOS/Windows while existing DOS/Windows system files remain unaltered.
- Network Interface Controller (NIC): Uses a boot loader that enables booting from a network interface such as Etherboot or pre-boot execution environment (PXE)
Boot strapping is the initial step towards switching on a computer. It is a small program that gets initiated when power is switched on and it perform some tests like POST to verify that all the peripherals and storage devices are connected or not if connected are properly functional or not. It keeps on initiating more complex processes to boot the computer and finally hands over the control of computer to the operating system after initializing it. Without boot loaders it is not possible to start a computer.