A Brief History of Bootstrapping

The word ‘Bootloader’ is a contraction of ‘bootstrap loader’.  This is derived from the idea of ‘pulling yourself up by your bootstraps’.  A computer without a program to run is a useless piece of machinery.  So how do you get the program into the computer?

Switches and Patch-Cables

In the early days of computing, computers were programmed literally bit-by-bit using patch cables or an array of toggle switches on the front panel.  As you might imagine, this is quite tedious to do for anything more than a trivial program.

microcontrollers_Eniac.jpg
Eniac Computer - US Army Photo - Public Domain

Punch-Cards and Paper Tape

One day, someone had a bright idea:  Write a small program that knows how to load larger programs stored on punched cards or paper-tape.  And the computer bootstrap loader was born.

microcontrollers_Honolulu_IFSS_Teletype1964.jpg
NASA Photo - Public Domain

Programmable Read Only Memory

Although the bootstrap program saved lots of time, it was still rather tedious to have to toggle in the instructions every time you restarted the machine.  Eventually, another engineer had another bright idea:  Build the bootloader into the computer.  

You could solder an array of diodes to program the 1’s and 0’s of the bootloader code at the required memory addresses to create a Read-Only Memory (ROM) for the bootloader.  And the ROM boot was born.

microcontrollers_diode-matrix-1.jpg
PDP-11 Diode Matrix ROM - Photo by Dave Fischer

EPROM, EEPROM and Flash

Moving on from the hard-wired diode boot, advanced in technology led to various forms of electrically programmable non-volatile memories.

These days, bootloaders are programmed into EEPROM or Flash memory.  So you don’t need a soldering iron to modify or repair your bootloader.  For more complex systems, bootloading may be performed in multiple stages with each stage loading a more complex piece of software. 

microcontrollers_EPROM_Intel_C1702A_(2).jpg
Intel EPROM - Photo by Jakub Šerých - public domain
microcontrollers_800px-Sony_VPL-HS1_-_SD_Card_board_-_SST_SST39VF800A-92498.jpg
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)

Bootstraps for the Bootstraps

Your notebook or desktop computer most likely has at least two stages of bootstraps.  The BIOS or UEFI is burned into flash memory on the motherboard.  At startup it will look for a bootable drive and load an operating system bootloader from the drive.  At that point it turns control over to the operating system’s bootloader which takes care of loading your operating system.  Once the operating system is up and running, you can just point and click to load and run any program you want.

This guide was first published on Jun 19, 2019. It was last updated on Jun 19, 2019. This page (A Brief History of Bootstrapping) was last updated on Aug 25, 2019.