Difference between revisions of "Bootstrap"
(An OK start) |
(Link for "toggling".) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
To '''bootstrap''' (the term can also be used as a noun) means to start a computer-related system from nothing. It has two main meanings: | To '''bootstrap''' (the term can also be used as a noun) means to start a computer-related system from nothing. It has two main meanings: | ||
− | The most common is the process of starting a computer as it is powered on. The bootstap is the initial [[object code]] run by the computer, now always held in [[read-only memory|Read-Only Memory]]. This code usually loads a '''secondary bootstrap''' from [[secondary storage]] into [[main memory]], which then loads and starts the [[operating system]]. | + | The most common is the process of starting a computer as it is powered on. The bootstap is the initial [[object code]] run by the computer, now always held in [[read-only memory|Read-Only Memory]]. This code usually loads a '''secondary bootstrap''' from [[secondary storage]] into [[main memory]], which then loads and starts the [[operating system]]. Earlier methods for entering the bootstrap code into a blank memory, was special hardware for reading data off an external device such as [[paper tape]], or by manually [[Toggle switch|toggling]] instructions on the [[console]]. |
The other, less-common meaning, refers to bringing up a [[compiler]] or similar software on a new machine. Given a compiler for language X for machine P, running on P, how do we get a compiler for X for machine Q, running on machine Q? The first step is to modify a copy of the compiler's [[source code]] to emit object code for Q. This is then run through the running compiler for P on P, producing a [[cross-compiler]] for X which runs on P, but produces object code for Q. The modified compiler source is then run through that, thereby producing object code for a compiler which runs on Q, producing object code for Q. This can then be moved to Q, and run there. The first language to pull this trick is reported to have been [[BCPL]]. | The other, less-common meaning, refers to bringing up a [[compiler]] or similar software on a new machine. Given a compiler for language X for machine P, running on P, how do we get a compiler for X for machine Q, running on machine Q? The first step is to modify a copy of the compiler's [[source code]] to emit object code for Q. This is then run through the running compiler for P on P, producing a [[cross-compiler]] for X which runs on P, but produces object code for Q. The modified compiler source is then run through that, thereby producing object code for a compiler which runs on Q, producing object code for Q. This can then be moved to Q, and run there. The first language to pull this trick is reported to have been [[BCPL]]. | ||
+ | |||
+ | [[Category: Computer Basics]] |
Latest revision as of 08:08, 11 August 2023
To bootstrap (the term can also be used as a noun) means to start a computer-related system from nothing. It has two main meanings:
The most common is the process of starting a computer as it is powered on. The bootstap is the initial object code run by the computer, now always held in Read-Only Memory. This code usually loads a secondary bootstrap from secondary storage into main memory, which then loads and starts the operating system. Earlier methods for entering the bootstrap code into a blank memory, was special hardware for reading data off an external device such as paper tape, or by manually toggling instructions on the console.
The other, less-common meaning, refers to bringing up a compiler or similar software on a new machine. Given a compiler for language X for machine P, running on P, how do we get a compiler for X for machine Q, running on machine Q? The first step is to modify a copy of the compiler's source code to emit object code for Q. This is then run through the running compiler for P on P, producing a cross-compiler for X which runs on P, but produces object code for Q. The modified compiler source is then run through that, thereby producing object code for a compiler which runs on Q, producing object code for Q. This can then be moved to Q, and run there. The first language to pull this trick is reported to have been BCPL.