Bootstrapping
|
A pair of leather boots with bootstraps. |
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 one's feet. 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. It solves the problem of starting a computer system without the system already functioning. Bootstrapping may begin with execution of a few instructions from
ROM which load into
RAM additional instructions from
secondary storage such as a disk drive, from which additional programs are loaded, and so on.
Bootstrapping describes different things in several domains.''
The term bootstrap is believed to have entered computer jargon during the early 1950's by way of
Heinlein's short story
By His Bootstraps first published in 1941.
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.
Historically, bootstrapping also refers to early computer program development which has been obsoleted by
emulation software now 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. 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.
For more detail, see bootingCompilers
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)Language acquisition in children
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.
*
Semantic bootstrappingBootstrapping of compositional language
Iterated learning and grounding: from holistic to compositional languages written by Paul Vogt. See also an abstract of
Project: Transmitting knowledge through the bootstrapping of compositional language.
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.
*
Bootstrap modelThe 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.
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.
Bootstrapping has been used to refer to the construction of machine or hand tools from raw materials using only simpler tools, or using naturally occuring objects as tools. See
David J Gingery.
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.
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, which maintains a comprehensive resource guide on bootstrapping. [
6]
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.
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.
*
Cellular automaton: discusses simple step-by-step self-referential rules used to create larger patterns.