Bootstrapping

Bootstrapping or booting refers to a group of metaphors that share a common meaning: a self-sustaining process that proceeds without external help.

The term is often attributed to Rudolf Erich Raspe's story The Surprising Adventures of Baron Munchausen, where the main character pulls himself out of a swamp by his hair (specifically, his pigtail), but the Baron does not, in fact, pull himself out by his bootstraps. Instead, the phrase appears to have originated in the early 19th century United States (particularly in the sense "pull oneself over a fence by one's bootstraps"), to mean an absurdly impossible action, an adynaton.[1][2][3]

Contents

Etymology

Tall boots may have a tab, loop or handle at the top known as a bootstrap, allowing one to use fingers or a tool to provide greater force in pulling the boots on. The saying "to pull oneself up by one's bootstraps"[3] was already in use during the 19th century as an example of an impossible task. Bootstrap as a metaphor, meaning to better oneself by one's own unaided efforts, was in use in 1922.[4] This metaphor spawned additional metaphors for a series of self-sustaining processes that proceed without external help.[5]

Applications

Computing

The computer term bootstrap began as a metaphor in the 1950s. In computers, pressing a bootstrap button caused a hardwired program to read a bootstrap program from an input unit. The computer would then execute the bootstrap program, which caused it to read more program instructions. It became a self-sustaining process that proceeded without external help from manually entered instructions. As a computing term, bootstrap has been used since at least 1953.[6]

The bootstrap concept was used in the IBM 701 computer (1952–1956) which had a "load button" which initiated reading of either the first 36-bit word from a punched card in a card reader, from a magnetic tape data storage unit or a drum memory unit (predecessor of the hard disk drive). The left 18-bit half-word was then executed as an instruction which read additional words into memory.[7] Thus, computer bootstrapping is a technique by which a simple computer instruction or program activates a more complicated system of instructions or programs.

Operating Systems

Beginning with the IBM 701 and to the present day, booting has been used to load operating systems into the main memory of computers.

Software bootstrapping

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 hand-coded for a new computer (for example the IBM 650) which converted a few instructions into binary or decimal code: A1. This simple assembler program was then rewritten in its just-defined assembly language but with extensions that would enable the use of some additional mnemonics for more complex operation codes. The enhanced assembler's source program was then assembled by its predecessor's executable (A1) into binary or decimal code to give A2, and the cycle repeated (now with those enhancements available), until the entire instruction set was coded, branch addresses were automatically calculated, and other conveniences (such as conditional assembly, macros, optimisations, etc.) established. 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.

The term was also championed by Doug Engelbart to refer to his belief that organizations could better evolve by improving the process they use for improvement (thus obtaining a compounding effect over time). His SRI team that developed the NLS hypertext system applied this strategy by using the tool they had developed to improve the tool.

Compilers

The development of compilers for new programming languages first developed in an existing language but then rewritten in the new language and compiled by itself, is another example of the bootstrapping notion. Using an existing language to bootstrap a new language is one way to solve the "chicken or the egg" causality dilemma.

Installers

During the installation of computer programs it is sometimes necessary to update the installer or package manager itself. The common pattern for this is to use a small executable bootstrapper file (e.g. setup.exe) which updates the installer and starts the real installation after the update. Sometimes the bootstrapper also installs other prerequisites for the software during the bootstrapping process.

Overlay networks

A bootstrapping node, also known as a rendezvous host,[8] is a node in an overlay network that provides initial configuration information to newly joining nodes so that they may successfully join the overlay network.[9][10]

Discrete event simulation

A type of computer simulation called discrete event simulation represents the operation of a system as a chronological sequence of events. A technique called bootstrapping the simulation model is used, which bootstraps initial data points using a pseudorandom number generator to schedule an initial set of pending events, which schedule additional events, and with time, the distribution of event times approaches its steady state—the bootstrapping behavior is overwhelmed by steady-state behavior.

Artificial intelligence and machine learning

Bootstrapping is a technique used to iteratively improve a classifier's performance. Seed AI is a hypothesized type of strong artificial intelligence capable of recursive self-improvement. Having improved itself it would become better at improving itself, potentially leading to an exponential increase in intelligence. No such AI is known to exist, but it remains an active field of research. Seed AI is a significant part of some theories about the technological singularity: proponents believe that the development of seed AI will rapidly yield ever-smarter intelligence (via bootstrapping) and thus a new era.

Statistics

Bootstrapping is a resampling technique used to obtain estimates of summary statistics.

Business

Bootstrapping in business means starting a business without external help or capital. Such startups fund the development of their company through internal cash flow and are cautious with their expenses.[11][12] Generally at the start of a venture, a small amount of money will be set aside for the bootstrap[13] process.

Biology

Richard Dawkins in his book River Out of Eden[14] used the computer bootstrapping concept to explain how biological cells differentiate: "Different cells receive different combinations of chemicals, which switch on different combinations of genes, and some genes work to switch other genes on or off. And so the bootstrapping continues, until we have the full repertoire of different kinds of cells."

Phylogenetics

Bootstrapping analysis gives a way to judge the strength of support for nodes on phylogenetic trees. A number is presented by each node, which reflects the percentage of bootstrap trees which also resolve that clade.[15]

Law

Bootstrapping is a rule preventing the admission of hearsay evidence in conspiracy cases.

Linguistics

Bootstrapping is a theory of language acquisition.

Physics

Bootstrapping is using very general consistency criteria to determine the form of a quantum theory from some assumptions on the spectrum of particles.

Electronics

Bootstrapping is a form of positive feedback in analog circuit design.

Power stations

A black start is the process of restoring a power station to operation without relying on the external electric power transmission network. In the absence of grid power, a so-called black start needs to be performed to bootstrap the power grid into operation.

Cellular networks

A Bootstrapping Server Function (BSF) is an intermediary element in cellular networks which provides application independent functions for mutual authentication of user equipment and servers unknown to each other and for 'bootstrapping' the exchange of secret session keys afterwards. The term 'bootstrapping' is related to building a security relation with a previously unknown device first and to allow installing security elements (keys) in the device and the BSF afterwards.

See also

References

  1. ^ World Wide Words: Boot, Michael Quinion
  2. ^ "bootstraps--speculation/questions". 2005-08-28. http://listserv.linguistlist.org/cgi-bin/wa?A2=ind0508D&L=ADS-L&P=14748. 
  3. ^ a b "figurative 'bootstraps'". 2005-08-11. http://listserv.linguistlist.org/cgi-bin/wa?A2=ind0508B&L=ADS-L&D=0&P=14972. 
  4. ^ Ulysses cited in the Oxford English Dictionary
  5. ^ Phrase Finder
  6. ^ Buchholz, Werner (1953). "The System Design of the IBM Type 701 Computer". Proceedings of the I.R.E. 41 (10): 1273. 
  7. ^ From Gutenberg to the Internet, Jeremy M. Norman, 2005, page 436, ISBN 0-930405-87-0
  8. ^ Francis, Paul (2000-04-02). Yoid: Extending the Internet Multicast Architecture. www.aciri.org. http://www.cs.cornell.edu/people/francis/yoidArch.pdf. Retrieved 2008-12-24. 
  9. ^ Traversat et al. (2006-06-20). "US Patent 7,065,579". http://www.google.com/patents?id=6cF3AAAAEBAJ. Retrieved 2008-12-23. 
  10. ^ Saxena et al. (2003). Admission Control in Peer-to-Peer: Design and Performance Evaluation. In ACM Workshop on Security of Ad Hoc and Sensor Networks (SASN) 2003. http://www.ics.uci.edu/~gts/paps/sty03.pdf. Retrieved 2008-12-24. 
  11. ^ The Art of the Bootstrap, Venture Beat
  12. ^ Startup Survival Guide, Sparxoo
  13. ^ Bootstrap
  14. ^ Richard Dawkins, River Out of Eden, pages 23-25, 1995 (paper) ISBN 0-465-06990-8
  15. ^ Bradley Efron, Elizabeth Halloran, and Susan Holmes (1996). "Bootstrap confidence levels for phylogenetic  trees". PNAS 93 (23). 

External links