Jump to content

Bootstrapping

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 4.235.201.22 (talk) at 05:48, 27 June 2006 (Computing). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Bootstrapping alludes to a German legend about Baron Münchhausen, who was able to lift himself out of a swamp by pulling himself up by his own hair. In later versions he was using his own boot straps to pull himself out of the sea which gave rise to the term bootstrapping. A bootstrap was a loop of leather sewn onto the back of each boot to hold onto when pulling boots onto ones feet. A picture of a bootstrap is shown under boot. Bootstraps were still being used on leather boots during the early 20th century. In popular fiction when a poor boy became wealthy through his own efforts, he was said to have pulled himself up by his own bootstraps. This metaphor continued into business financing where a highly profitable business might grow rapidly without external financing.

In computers, bootstrapping refers to a process where a simple program is used to activate a more complicated program which then activates a system of programs. (See booting}. It solves the problem of starting a computer system without the system already functioning. It seems just as impossible as "pulling oneself up by the bootstraps" as in the Baron Münchhausen stories. However, bootstrapping (also known as Initial Program Load) may begin with as few as 3 instructions which load into RAM additional instructions from secondary storage, which then load additional programs, and so on.

Historically, bootstrapping also refers to early computer program development which has been obsoleted by emulation software executed in pre-existing computers. Bootstrapping in program development began during the 1950's when each program was constructed on paper in decimal code or in binary code, bit by bit (1's and 0's), 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. The assembler program itself 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. 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 on top of simpler ones.

Bootstrapping describes different things in several domains.

Computing

The term is believed to have entered computer jargon by way of Heinlein's short story By His Bootstraps first published in 1941 and reprinted about 1956.

Bootstrapping was shortened to booting, or the process of starting up any computer. "Bootstrap" most commonly refers to the program 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.

Bootstrapping can also refer to the development of successively more complex 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.

For more detail, see booting

Compilers

In compiler design, a bootstrap or bootstrapping compiler is a compiler that is written in the target language that it compiles. Examples include gcc, GHC, OCaml and PL/I.

For more detail, see Bootstrapping (compilers)

Linguistics

Syntactic bootstrapping is the idea that children use syntactic knowledge they have developed to help learn what words mean -- semantics builds on top of syntax.

Physics

In physics, the term "bootstrap" is used for the class of theories that assume that very general consistency criteria are sufficient to determine the whole theory completely. In such theories — typically examples of quantum field theory — it is impossible to divide the objects and concepts to elementary and composite ones.

Biology

The idea of bootstrapping is significant in a number of fields in the biological sciences. The process by which a fertilised ovum develops into an embryo, particularly the way in which the nuclear genome is expressed differently in its various cells as these differentiate, is one example of bootstrapping. The evolution of progressively better adapted organs through natural selection in a lineage of organisms is another. Some biologists, including Graham Cairns-Smith, believe that the origin of life itself may have been a bootstrap process as one or more systems of biological information storage formed the foundation for successor systems that ultimately supplanted them culminating in the emergence of our current DNA-based system. For more details see the articles on embryology, ontogeny and phylogeny and RNA World.

Electronics

The term bootstrap has a number of meanings in electronics.

In classical analog designs, a bootstrap circuit is an arrangement of components used to boost the input impedance of a circuit by using a small amount of positive feedback, usually over two stages. This was often necessary in the early days of bipolar transistors, which inherently have quite a low input impedance. The need for such arrangements has largely been alleviated by the use of modern field effect transistor designs, except when ultra-high input impedances are required. Note that because the feedback is positive, such circuits usually suffer from poor stability and noise performance compared to a circuit that doesn't bootstrap.

AC amplifiers can use bootstrapping to increase output swing. A capacitor is connected from the output of the amplifier to the bias circuit, providing bias voltages that exceed the power supply voltage. Emitter followers can provide rail-to-rail output in this way, which is a common technique in class AB audio amplifiers.

Another meaning is in connection with the booting process of a computer or other complex system, where the underlying electronics must arrange for the orderly startup of the CPU and related electronics components. This is done long before the CPU is in a state where it can begin to execute software. Nowadays the bootstrap is coordinated by special integrated circuits that monitor the raw power supply and provide the relevant signals to enable the CPU and other chips accordingly.

In a typical car alternator, a DC field current is required before the device can produce any output. Once running, a small portion of the output is fed back to keep the field alive — this can be seen as a form of bootstrapping. The initial priming current is usually obtained from the vehicle's battery — if the battery is totally flat the alternator won't produce any output voltage to spark the plugs or recharge the battery (by push starting for example) since it will be unable to bootstrap itself. However, in practice, a battery will usually have enough residual charge to avoid this.

In reference to a regional or national power grid, bootstrapping refers to the process of restarting generating stations and restoring power to the grid after a large-scale power outage or disaster. This is also referred to as cold starting or black starting. The process is required for reasons not dissimilar to the automobile case above: many power stations have AC generators which do not contain permanent magnets, and are incapable of starting to produce electricity unless they are fed some from an outside source to energize the coils and produce a magnetic field. Once running, they use their own output power for this purpose and are self-sustaining. Some power plants are designated within the grid as being capable of a cold start (either because they have main generators which contain magnets, or have smaller auxiliary generators which do and which are capable of bringing the main ones up), and these plants are brought on-line first, and their power output directed across the grid to other plants and used to start them. In this way, generating stations across the network can be progressively brought back up.

Statistics

In statistics bootstrapping is a method for estimating the sampling distribution of an estimator by resampling with replacement from the original sample. It is distinguished from the jackknife procedure, used to detect outliers, and cross-validation, whose purpose is to make sure that results are repeatable. There are more complicated bootstraps for sampling without replacement, two-sample problems, regression, time series, hierarchical sampling, and other statistical problems.

For more details see bootstrap resampling.

Finance

In finance, bootstrapping refers to the procedure used to calculate the zero coupon yield curve, solving for the maturities where no instruments are available. The method uses interpolation to complete the yield curve, using available zero coupon securities with varying maturities.

Statistical bootstrapping (described above) is also used extensively in quantitative finance research as a method of testing and validating forecasting models and trading strategies.

It may also mean a company acquiring a competitor with a sole reason of temporarily increasing earnings per share.

Bootstrapping also means starting and operating a business with little or no money or assistance from outside investors.

Venture capital and start-up companies

As defined by Greg Gianforte, CEO, RightNow Technologies in an essay at [1], "bootstrapping" is the act of starting a business with little or no external funding. "Bootstrappers don’t write lengthy business plans, chase deep-pocketed investors, or indulge in overly academic market research exercises. Instead, they focus all of their considerable energy, brainpower, determination and skills on creating a business that can actually succeed in the real world."

Other books by entrepreneurs on Bootstrapping include: "Bootstrap" by Ken Hess. [2] and "Go it Alone" by Bruce Judson [3]. Bootstrapping is not well-studied or understood in Academia. Amar Bhide at Columbia [4] and Darius Mahdjoubi [5] are two academics who focus in this area. Examples of Bootstrap Entrepreneurs include Larry Ellison, Anita Roddick and Michael Dell.

With the decline since 1999 of Venture Capital for early stage companies, bootstrapping is on the rise. It is supported by groups such as the Bootstrap Network[6] which maintains a comprehensive resource guide on bootstrapping. [7]

Law

The "bootstrapping rule" in the rules of evidence dealt with admissibility as non-hearsay of statements of conspiracy. The rule was that, in a criminal prosecution for conspiracy, the court, in deciding whether to allow the jury to consider a statement of conspiracy, cannot hear the statement itself, and that the allegation should be supported by independent evidence. If the independent evidence convinced the court that a conspiracy probably existed, only then could such a statement be introduced into trial and heard by the jury. Allowing such statements of conspiracy to prove the existence of conspiracy was considered similar to bootstrapping. The bootstrapping rule has been eliminated from the Federal Rules of Evidence, as decided by the Supreme Court in the Bourjaily case.

Phylogeny

Bootstrapping is a way of testing the reliability of the dataset. It is the creation of pseudoreplicate datasets by resampling. Bootstrapping allows you to assess whether the distribution of characters has been influenced by stochastic effects. In phylogenetic analysis nonparametric bootstrapping is the most commonly used method. The pseudoreplicate datasets are generated by randomly sampling the original character matrix to create new matrices of the same size as the original. The frequency with which a given branch is found is recorded as the bootstrap proportion. These proportions can be used as a measure of the reliability (within limitations) of individual branches in the optimal tree.

Thus bootstrap analysis:

  • is a statistical method for obtaining an estimate of error
  • is used to evaluate the reliability of a tree
  • is used to examine how often a particular cluster in a tree appears when nucleotides or amino acids are resampled.

See also

  • Cellular automaton: discusses simple step-by-step self-referential rules used to create larger patterns.