Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Bootstrapping
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Computing=== In [[computer technology]], the term '''bootstrapping''' refers to language [[compilers]] that are able to be coded in the same language. (For example, a C compiler is now written in the C language. Once the basic compiler is written, improvements can be iteratively made, thus "pulling the language up by its bootstraps"). Also, [[booting]] usually refers to the process of loading the basic software into the memory of a computer after power-on or general reset, the [[Kernel (operating system)|kernel]] will load the [[operating system]] which will then take care of loading other device drivers and software as needed. ====Software loading and execution==== {{Main | Booting | Reboot (computing)}} 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 relatively small and simple 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 [[power-on self-test|self-tests]], loading [[computer configuration|configuration]] settings, loading a [[BIOS]], [[resident monitor]]s, 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 control|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.<ref>{{Cite journal |year = 1953 |title = The System Design of the IBM Type 701 Computer |author = Buchholz, Werner |journal = Proceedings of the I.R.E. |volume = 41 |issue = 10 |page = 1273 |doi=10.1109/jrproc.1953.274300 |s2cid = 51673999 }}</ref> ====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 (UNIX)|ed]]) and an [[Assembly language#Assembler|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 user interface|graphical]] [[integrated development environment|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 (computing)|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 [[Symbolic Optimal Assembly Program]] (SOAP) 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 International|SRI]] team that developed the [[NLS (computer system)|NLS]] hypertext system applied this strategy by using the tool they had developed to improve the tool. ====Compilers==== {{Main | Bootstrapping (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. ====Installers==== {{Main | Installation (computer programs)}} 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==== {{Main|Bootstrapping node}} A bootstrapping node, also known as a rendezvous host,<ref name="Francis01">{{cite journal |title=Yoid: Extending the Internet Multicast Architecture |publisher=www.aciri.org |author=Francis, Paul |date=2000-04-02 |url=http://www.cs.cornell.edu/people/francis/yoidArch.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.cs.cornell.edu/people/francis/yoidArch.pdf |archive-date=2022-10-09 |url-status=live |access-date=2008-12-24}}</ref> is a [[Node (networking)|node]] in an [[overlay network]] that provides initial configuration information to newly joining nodes so that they may successfully join the overlay network.<ref name="sun01">{{cite web |url=https://patents.google.com/patent/US7065579 |title=US Patent 7,065,579 |access-date=2008-12-23 |author=Traversat |date=2006-06-20 |display-authors=etal}}</ref><ref name="Saxena01">{{cite journal |title=Admission Control in Peer-to-Peer: Design and Performance Evaluation |publisher=In ACM Workshop on Security of Ad Hoc and Sensor Networks (SASN) 2003 |author=Saxena |year=2003 |url=http://www.ics.uci.edu/~gts/paps/sty03.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.ics.uci.edu/~gts/paps/sty03.pdf |archive-date=2022-10-09 |url-status=live |access-date=2008-12-24 |display-authors=etal}}</ref> ====Discrete-event simulation==== {{Main | 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==== {{Main | Bootstrap aggregating | Intelligence explosion}} Bootstrapping is a technique used to iteratively improve a [[classifier (machine learning)|classifier]]'s performance. Typically, multiple classifiers will be trained on different sets of the input data, and on prediction tasks the output of the different classifiers will be combined. [[Seed AI]] is a hypothesized type of [[artificial intelligence]] capable of [[Intelligence explosion|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.<ref>{{Cite journal |last=Cortese |first=Francesco Albert Bosco |date=Spring 2014 |title=The Maximally Distributed Intelligence Explosion |url=https://www.aaai.org/ocs/index.php/SSS/SSS14/paper/viewFile/7763/7739 |journal=AAAI Spring Symposium |access-date=2018-07-01 |archive-date=2021-04-13 |archive-url=https://web.archive.org/web/20210413130150/https://www.aaai.org/ocs/index.php/SSS/SSS14/paper/viewFile/7763/7739 |url-status=dead }}</ref><ref>{{Cite journal |last=Waser |first=Mark R. |date=2014 |title=Bootstrapping a Structured Self-Improving & Safe Autopoietic Self |journal=Procedia Computer Science |volume=41 |pages=134β139 |doi=10.1016/j.procs.2014.11.095 |doi-access=free}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Bootstrapping
(section)
Add topic