Bootstrapping (computing)

From Wikipedia, the free encyclopedia

Jump to: navigation, search

In computing, bootstrapping refers to a process where a simple system activates another more complicated system that serves the same purpose. It is a solution to the Chicken-and-egg problem of starting a certain system without the system already functioning. The term is most often applied to the process of starting up a computer, in which a mechanism is needed to execute the software program that is responsible for executing software programs (the operating system).

The term "bootstrapping" alludes to a German legend about Baron Münchhausen, who claimed to have been able to lift himself out of a swamp by pulling himself up by his own hair. In later versions of the legend, he used his own boot straps to pull himself out of the sea which gave rise to the term bootstrapping.[1] The term is believed to have entered computer jargon during the early 1950s by way of Heinlein's short story By His Bootstraps first published in 1941.[citation needed]

Contents

Main article: booting

Bootstrapping was shortened to booting, or the process of starting up any computer, which is the most common meaning for non-technical computer users. The verb "boot" is similarly derived.

A "bootstrap" most commonly refers to the simple program itself that actually begins the initialization of the computer's operating system, like GRUB, LILO or NTLDR. Modern personal computers have the ability of using their network interface card (NIC) for bootstrapping; on IA-32 (x86) and IA-64 (Itanium) this method is implemented by PXE and Etherboot.

Mainframe computers back in the 1970s were bootstrapped by loading software into the machine on a paper tape with holes punched into it (punch tape). The leading edge of the paper tape would become worn and unreadable. To stop this problem a length of leather bootstrap would be connected to the leading edge of the punch tape to stop it wearing out when it is fed into the punch tape reading machine. This process was known as "bootstrapping" the mainframe.[citation needed]

Bootstrapping can also refer to the development of successively more complex, faster programming environments. The simplest environment will be, perhaps, a very basic text editor (e.g. ed) and an assembler program. Using these tools, one can write a more complex text editor, and a simple compiler for a higher-level language and so on, until one can have a graphical IDE and an extremely high-level programming language.

Historically, bootstrapping also refers to early computer program development which has been obviated by emulation software now executed in pre-existing computers. Bootstrapping in program development began during the 1950s when each program was constructed on paper in decimal code or in binary code, bit by bit (1s and 0s), because there was no high-level computer language, no compiler, no assembler, and no linker. A tiny assembler program was written for a new computer (for example the IBM 650) which converted a few instructions into binary or decimal code. This assembler program was then rewritten in its own assembly language that included additional alphabetic mnemonic operation codes. The enlarged assembly program then reassembled itself into binary or decimal code & and so on, until the entire instruction set was coded and branch addresses were automatically calculated. This was how the early assembly program SOAP (Symbolic Optimal Assembly Program) was developed. Compilers, linkers, loaders, and utilities were then coded in assembly language, further continuing the bootstrapping process of developing complex software systems by using simpler software.

In compiler design, a bootstrap or bootstrapping compiler is a compiler that is written in the target language, or a subset of the language, that it compiles. Examples include gcc, GHC, OCaml, BASIC, PL/I and more recently the Mono C# compiler.

For more detail, see Bootstrapping (compilers)


  • A quine, when executed, produces a copy of its source code. A (self-hosting) compiler, when executed (and fed a copy of its source code), produces a copy of its executable code.
  • Self-replication

  1. ^ Steven Abney (2002). "Bootstrapping", Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics.
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.