Jump to content

Bootstrapping

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Tcdaly (talk | contribs) at 14:43, 22 November 2016. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In general parlance, bootstrapping usually refers to a self-starting process that is supposed to proceed without external input. In computer technology the term (usually shortened to booting) usually refers to the process of loading the basic software into the memory of a computer after power-on or general reset, especially the operating system which will then take care of loading other software as needed.

The term appears to have originated in the early 19th century United States (particularly in the phrase "pull oneself over a fence by one's bootstraps"), to mean an absurdly impossible action, an adynaton.[1][2][3]

Etymology

A pair of boots with one bootstrap visible

Tall boots may have a tab, loop or handle at the top known as a bootstrap, allowing one to use fingers or a boot hook tool to help 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. The idiom dates at least to 1834, when it appeared in the Workingman's Advocate: "It is conjectured that Mr. Murphee will now be enabled to hand himself over the Cumberland river or a barn yard fence by the straps of his boots."[4] In 1860 it appeared in a comment on metaphysical philosophy: "The attempt of the mind to analyze itself [is] an effort analogous to one who would lift himself by his own bootstraps."[5] Bootstrap as a metaphor, meaning to better oneself by one's own unaided efforts, was in use in 1922.[6] This metaphor spawned additional metaphors for a series of self-sustaining processes that proceed without external help.[7]

Baron Munchausen pulls himself and his horse out of a swamp by his pigtail

The term is sometimes attributed to a story in Rudolf Erich Raspe's The Surprising Adventures of Baron Munchausen, but in that story Baron Munchausen pulls himself (and his horse) out of a swamp by his hair (specifically, his pigtail), not by his bootstraps – and no explicit reference to bootstraps has been found elsewhere in the various versions of the Munchausen tales.[4]

Applications

Computing

Software loading and execution

Booting is the process of starting a computer, specifically with regard to starting its software. The process involves a chain of stages, in which at each stage a smaller, simpler program loads and then executes the larger, more complicated program of the next stage. It is in this sense that the computer "pulls itself up by its bootstraps", i.e. it improves itself by its own efforts. Booting is a chain of events that starts with execution of hardware-based procedures and may then hand-off to firmware and software which is loaded into main memory. Booting often involves processes such as performing self-tests, loading configuration settings, loading a BIOS, resident monitors, a hypervisor, an operating system, or utility software.

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.[8]

Software development

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 an early technique for computer program development on new hardware. The technique described in this paragraph has been replaced by the use of a cross compiler executed by a pre-existing computer. 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,[9] 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.[10][11]

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 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.[citation needed]

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.[12] Generally at the start of a venture, a small amount of money will be set aside for the bootstrap process.[13] Bootstrapping can also be a supplement for econometric models.[14] Bootstrapping was also expanded upon in the book Bootstrap Business by Richard Christiansen, the Harvard Business Review article The Art of Bootstrapping and the followup book The Origin and Evolution of New Businesses by Amar Bhide.

  • Startups can grow by reinvesting profits in its own growth if bootstrapping costs are low and return on investment is high. This financing approach allows owners to maintain control of their business, enables them to focus on customers instead of investors, and forces them to spend with discipline.[15] In addition, bootstrapping allows startups to focus on customers rather than investors, thereby increasing the likelihood of creating a profitable business.
  • Leveraged buyouts, or highly leveraged or "bootstrap" transactions, occur when an investor acquires a controlling interest in a company's equity and where a significant percentage of the purchase price is financed through leverage, i.e., borrowing.
  • Bootstrapping in finance refers to the method to create the spot rate curve.
  • Operation Bootstrap (Operación Manos a la Obra) refers to the ambitious projects that industrialized Puerto Rico in the mid-20th century.

Biology

Richard Dawkins in his book River Out of Eden[16] 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 clades on phylogenetic trees. A number is written by a node, which reflects the percentage of bootstrap trees which also resolve the clade at the endpoints of that branch.[17]

Law

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

Linguistics

Bootstrapping is a theory of language acquisition.

Physics

Quantum theory

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

Magnetically Confined Fusion Plasmas

In tokamak fusion devices, bootstrapping refers to the process in which a bootstrap current is self-generated by the plasma, which reduces or eliminates the need for an external current driver. Maximising the bootstrap current is a major goal of advanced tokamak designs.

Inertially Confined Fusion Plasmas

Bootstrapping in Inertial Confinement Fusion refers to the alpha particles produced in the fusion reaction providing further heating to the plasma. This heating leads to ignition and an overall energy gain.

Electronics

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

Electric power grid

An electric power grid is almost never brought down intentionally. Generators and power stations are started and shut down as necessary. A typical power station requires power for start up prior to being able to generate power. This power is obtained from the grid, so if the entire grid is down these stations cannot be started.

Therefore, to get a grid started, there must be at least a small number of power stations that can start entirely on their own. A black start is the process of restoring a power station to operation without relying on external power. In the absence of grid power, one or more black starts are used to bootstrap the grid.

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.

Media

A media bootstrap is the process whereby a story or meme is deliberately (but artificially) produced by self and peer-referential journalism, originally within a tight circle of media content originators, often commencing with stories written within the same media organization. This story is then expanded into a general media "accepted wisdom" with the aim of having it accepted as self-evident "common knowledge" by the reading, listening and viewing publics. The key feature of a media bootstrap is that as little hard, verifiable, external evidence as possible is used to support the story, preference being given to the citation (often unattributed) of other media stories, i.e. "journalists interviewing journalists".

Because the campaign is usually originated and at least initially concocted internally by a media organization with a particular agenda in mind, within a closed loop of reportage and opinionation, the campaign is said to have "pulled itself up by its own bootstraps".

A bootstrap campaign should be distinguished from a genuine news story of genuine interest, such as a natural disaster that kills thousands, or the death of a respected public figure. It is legitimate for these stories to be given coverage across all media platforms. What distinguishes a bootstrap from a real story is the contrived and organized manner in which the bootstrap appears to come out of nowhere. A bootstrap commonly claims to be tapping a hitherto unrecognized phenomenon within society.

As self-levitating by pulling on one's bootstraps is physically impossible, this is often used by the bootstrappers themselves to deny the possibility that the bootstrap campaign is indeed concocted and artificial. They assert that it has arisen via a groundswell of public opinion. Media campaigns that are openly admitted as concocted (e.g. a public service campaign titled "Let's Clean Up Our City") are usually ignored by other media organizations for reasons related to competition. On the other hand, the true bootstrap welcomes the participation of other media organizations, indeed encourages it, as this participation gains the bootstrap notoriety and, most importantly, legitimacy.

See also

References

  1. ^ World Wide Words: Boot, Michael Quinion
  2. ^ "bootstraps--speculation/questions" (Mailing list). 2005-08-28.
  3. ^ a b "figurative 'bootstraps'" (Mailing list). 2005-08-11.
  4. ^ a b Jan Freeman, Bootstraps and Baron Munchausen, Boston.com, January 27, 2009
  5. ^ Jan Freeman, The unkindliest cut, Boston.com, January 25, 2009
  6. ^ Ulysses cited in the Oxford English Dictionary
  7. ^ Phrase Finder
  8. ^ Buchholz, Werner (1953). "The System Design of the IBM Type 701 Computer". Proceedings of the I.R.E. 41 (10): 1273. doi:10.1109/jrproc.1953.274300.
  9. ^ Francis, Paul (2000-04-02). "Yoid: Extending the Internet Multicast Architecture" (PDF). www.aciri.org. Retrieved 2008-12-24. {{cite journal}}: Cite journal requires |journal= (help)
  10. ^ Traversat; et al. (2006-06-20). "US Patent 7,065,579". Retrieved 2008-12-23.
  11. ^ Saxena; et al. (2003). "Admission Control in Peer-to-Peer: Design and Performance Evaluation" (PDF). In ACM Workshop on Security of Ad Hoc and Sensor Networks (SASN) 2003. Retrieved 2008-12-24. {{cite journal}}: Cite journal requires |journal= (help)
  12. ^ The Art of the Bootstrap, Venture Beat
  13. ^ Bootstrap
  14. ^ J. Scott Armstrong (2001). "Judgmental Bootstrapping: Inferring Experts= Rules for Forecasting" (PDF). Principles of Forecasting: A Handbook for Researchers and Practitioners. Kluwer Academic Publishers.
  15. ^ Bootstrapping in Entrepreneurship
  16. ^ Richard Dawkins, River Out of Eden, pages 23-25, 1995 (paper) ISBN 0-465-06990-8
  17. ^ Bradley Efron; Elizabeth Halloran; Susan Holmes (1996). "Bootstrap confidence levels for phylogenetic  trees" (PDF). PNAS. 93 (23). doi:10.1073/pnas.93.23.13429. Retrieved 11 June 2013. {{cite journal}}: Unknown parameter |last-author-amp= ignored (|name-list-style= suggested) (help)