HOME

TheInfoList




In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithm of an algorithm (Euclid's algorithm) for calculating the greatest common divisor (g.c.d ...

computing
, booting is the process of starting a
computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations known as Computer program, programs. These programs enable compu ...

computer
. It can be initiated by
hardware Hardware may refer to: Technology Computing and electronics * Computer hardware, physical parts of a computer * Digital electronics, electronics that operate on digital signals * Electronic component, device in an electronic system used to affect e ...

hardware
such as a button press, or by a
software Software is a collection of instructions that tell a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operatio ...

software
command. After it is switched on, a computer's
central processing unit A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuit 200px, A circuit built on a printed circuit board (PCB). An electronic circuit is composed of individual electroni ...

central processing unit
(CPU) has no software in its
main memory A spindle of DVD-RWs Computer data storage is a technology consisting of computer components and Data storage device, recording media that are used to retain digital data (computing), data. It is a core function and fundamental component of ...
, so some process must load software into memory before it can be executed. This may be done by hardware or
firmware In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softwa ...
in the CPU, or by a separate processor in the computer system. Restarting a computer also is called rebooting, which can be "hard", e.g. after electrical power to the CPU is switched from off to on, or "soft", where the power is not cut. On some systems,
soft boot
may optionally clear
RAM 8GB heatsink_.html" ;"title="Heat_sink.html" ;"title="RAM.html" ;"title="DDR3 RAM">DDR3 RAM stick with a white Heat sink">heatsink ">Heat_sink.html" ;"title="RAM.html" ;"title="DDR3 RAM">DDR3 RAM stick with a white Heat sink">heatsink Rando ...

RAM
to zero. Both hard and soft booting can be initiated by hardware such as a button press or by software command. Booting is complete when the operative
runtime system In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, gener ...
, typically
operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Examples of system software include operating systems like macOS macOS (; previously Mac OS X and later ...

operating system
and some applications,Including daemons. is attained. The process of returning a computer from a state of
sleep Sleep is a Nature, naturally recurring state of mind and body, characterized by altered consciousness, relatively inhibited sensory activity, reduced muscle activity and inhibition of nearly all voluntary muscles during rapid eye movement sle ...
(suspension) does not involve booting; however, restoring it from a state of
hibernation Hibernation is a state of minimal activity and metabolic Metabolism (, from el, μεταβολή ''metabolē'', "change") is the set of life Life is a characteristic that distinguishes physical entities that have biological ...
does. Minimally, some
embedded systems An embedded system is a computer system A computer is a machine that can be programmed to carry out Sequence, sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations known as Com ...
do not require a noticeable boot sequence to begin functioning and when turned on may simply run operational programs that are stored in ROM. All computing systems are
state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation In computer science Computer science deals with the theoretical fou ...

state machine
s, and a reboot may be the only method to return to a designated zero-state from an unintended, locked state. In addition to loading an operating system or stand-alone utility, the boot process can also load a storage dump program for diagnosing problems in an operating system. ''Boot'' is short for
''bootstrap''
''bootstrap''
or ''bootstrap load'' and derives from the phrase '' to pull oneself up by one's bootstraps''. The usage calls attention to the requirement that, if most software is loaded onto a computer by other software already running on the computer, some mechanism must exist to load the initial software onto the computer. Early computers used a variety of ad-hoc methods to get a small program into memory to solve this problem. The invention of
read-only memory Read-only memory (ROM) is a type of non-volatile memory Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs const ...
(ROM) of various types solved this paradox by allowing computers to be shipped with a start up program that could not be erased. Growth in the capacity of ROM has allowed ever more elaborate start up procedures to be implemented.


History

There are many different methods available to load a short initial program into a computer. These methods reach from simple, physical input to removable media that can hold more complex programs.


Pre integrated-circuit-ROM examples


Early computers

Early computers in the 1940s and 1950s were one-of-a-kind engineering efforts that could take weeks to program and program loading was one of many problems that had to be solved. An early computer,
ENIAC ENIAC (; Electronic Numerical Integrator and Computer) was the first programmable, electronic Electronic may refer to: *Electronics Electronics comprises the physics, engineering, technology and applications that deal with the emission ...

ENIAC
, had no program stored in memory, but was set up for each problem by a configuration of interconnecting cables. Bootstrapping did not apply to ENIAC, whose hardware configuration was ready for solving problems as soon as power was applied. The
EDSAC The Electronic delay storage automatic calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal ''First Draft of a Report on the EDVAC'', the machine was constructed by Maurice Wilkes and his team at the University ...
system, the second stored-program computer to be built, used
stepping switch In electrical control engineering, a stepping switch or stepping relay A relay is an electrically operated switch. It consists of a set of input terminals for a single or multiple control signals, and a set of operating contact terminals. Th ...
es to transfer a fixed program into memory when its start button was pressed. The program stored on this device, which David Wheeler completed in late 1948, loaded further instructions from
punched tape file:PaperTapes-5and8Hole.jpg, Five- and eight-hole punched paper tape file:Harwell-dekatron-witch-10.jpg, Paper tape reader on the Harwell computer with a small piece of five-hole tape connected in a circle – creating a physical program loop P ...

punched tape
and then executed them.


First commercial computers

The first programmable computers for commercial sale, such as the
UNIVAC I The UNIVAC I (UNIVersal Automatic Computer I) was the first general-purpose electronic digital computer design for business application produced in the . It was designed principally by and , the inventors of the . Design work was started by th ...
and the
IBM 701 The IBM 701 Electronic Data Processing Machine, known as the Defense Calculator while in development, was IBM International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New ...
included features to make their operation simpler. They typically included instructions that performed a complete input or output operation. The same hardware logic could be used to load the contents of a
punch card A punched card (also punch cardSteven Pinker, in ''The Stuff of Thought'', Viking, 2007, p.362, notes the loss of ''-ed'' in pronunciation ''as it did in ice cream, mincemeat, and box set, formerly iced cream, minced meat, and boxed set.'' or pu ...
(the most typical ones) or other input media, such as a
magnetic drum Magnetism is a class of physical phenomena that are mediated by magnetic fields. Electric currents and the magnetic moments of elementary particles give rise to a magnetic field, which acts on other currents and magnetic moments. Magnetism is one ...
or
magnetic tape Magnetic tape is a medium for , made of a thin, magnetizable coating on a long, narrow strip of . It was developed in Germany in 1928, based on . Devices that record and playback audio and video using magnetic tape are s and s respectively. A ...

magnetic tape
, that contained a bootstrap program by pressing a single button. This booting concept was called a variety of names for
IBM International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New York, with operations in over 170 countries. The company began in 1911, founded in Endicott, New York, as the C ...

IBM
computers of the 1950s and early 1960s, but IBM used the term "Initial Program Load" with the
IBM 7030 Stretch The IBM 7030, also known as Stretch, was IBM International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New York, with operations in over 170 countries. The company began in 1 ...
and later used it for their mainframe lines, starting with the
System/360 The IBM System/360 (S/360) is a family of mainframe computer A pair of IBM mainframes. On the left is the IBM z Systems z13. On the right is the IBM LinuxONE Rockhopper.">IBM_LinuxONE.html" ;"title="IBM z Systems z13. On the right is the ...
in 1964. The
IBM 701 The IBM 701 Electronic Data Processing Machine, known as the Defense Calculator while in development, was IBM International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New ...
computer (1952–1956) had a "Load" button that initiated reading of the first
36-bit 36-bit computers were popular in the early mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical ...
word In linguistics, a word of a spoken language can be defined as the smallest sequence of phonemes that can be uttered in isolation with semantic, objective or pragmatics, practical meaning (linguistics), meaning. In many languages, words also co ...
into
main memory A spindle of DVD-RWs Computer data storage is a technology consisting of computer components and Data storage device, recording media that are used to retain digital data (computing), data. It is a core function and fundamental component of ...
from a punched card in a
card reader A card reader is a data input device that reads data from a card-shaped . The first were s, which read the paper or cardboard s that were used during the first several decades of the computer industry to store information and programs for computer ...
, a magnetic tape in a
tape drive A tape drive is a that on a . is typically used for offline, archival data storage. Tape media generally has a favorable unit cost and a long archival stability. A tape drive provides storage, unlike a , which provides storage. A disk drive ...
, or a magnetic drum unit, depending on the position of the Load Selector switch. The left 18-bit half-word was then executed as an instruction, which usually read additional words into memory. The loaded boot program was then executed, which, in turn, loaded a larger program from that medium into memory without further help from the human operator. The term "boot" has been used in this sense since at least 1958. Other IBM computers of that era had similar features. For example, the
IBM 1401 The IBM 1401 is a variable-wordlength decimal computer Decimal computers are computers which can represent numbers and addresses in decimal as well as providing instructions to operate on those numbers and addresses directly in decimal, without ...
system (c. 1958) used a card reader to load a program from a punched card. The 80 characters stored in the punched card were read into memory locations 001 to 080, then the computer would branch to memory location 001 to read its first stored instruction. This instruction was always the same: move the information in these first 80 memory locations to an assembly area where the information in punched cards 2, 3, 4, and so on, could be combined to form the stored program. Once this information was moved to the assembly area, the machine would branch to an instruction in location 080 (read a card) and the next card would be read and its information processed. Another example was the
IBM 650 IBM 650 console panel, showing bi-quinary indicators. (At House for the History of IBM Data Processing (closed), Sindelfingen) The IBM 650 Magnetic Drum Data-Processing Machine is an early digital computer A computer is a machine A m ...
(1953), a decimal machine, which had a group of ten 10-position switches on its operator panel which were addressable as a memory word (address 8000) and could be executed as an instruction. Thus setting the switches to 7004000400 and pressing the appropriate button would read the first card in the card reader into memory (op code 70), starting at address 400 and then jump to 400 to begin executing the program on that card. IBM's competitors also offered single button program load. * The
CDC 6600 300px, A CDC 6600 vector_drawing_system,_rather_than_a_Raster_graphics.html" ;"title="Vector_monitor.html" ;"title="Computer_monitor.html" "title="system console. This design was a major innovation, in that the screens and keyboard replaced hund ...
(c. 1964) had a ''dead start'' panel with 144 toggle switches; the dead start switch entered 12 words from the toggle switches to the memory of ''peripheral processor'' (''PP'') 0 and initiated the load sequence. PP 0 loaded the necessary code into its own memory and then initialized the other PPs. * The
GE 645The GE 645 mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern ...
(c. 1965) had a "SYSTEM BOOTLOAD" button that, when pressed, caused one of the I/O controllers to load a 64-word program into memory from a diode
read-only memory Read-only memory (ROM) is a type of non-volatile memory Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs const ...
and deliver an interrupt to cause that program to start running. * The first model of the
PDP-10 Digital Equipment Corporation Digital Equipment Corporation (DEC ), using the Digital, was a major American company in the from the 1960s to the 1990s. The company was co-founded by and in 1957. Olsen was president until forced to resi ...
had a "READ IN" button that, when pressed, reset the processor and started an I/O operation on a device specified by switches on the control panel, reading in a 36-bit word giving a target address and count for subsequent word reads; when the read completed, the processor started executing the code read in by jumping to the last word read in. A noteworthy variation of this is found on the
BurroughsBurroughs may refer to: * Former spelling of boroughs *Burroughs, Georgia, a historically African American community now a neighborhood of Savannah, Georgia * Burroughs Corporation, a maker of adding machines and computers * Burroughs (surname), peo ...
B1700 where there is neither a bootstrap ROM nor a hardwired IPL operation. Instead, after the system is reset it reads and executes opcodes sequentially from a tape drive mounted on the front panel; this sets up a boot loader in RAM which is then executed. However, since this makes few assumptions about the system it can equally well be used to load diagnostic (Maintenance Test Routine) tapes which display an intelligible code on the
front panel Front may refer to: Arts, entertainment, and media Films * ''The Front'' (1943 film), a 1943 Soviet drama film * ''The Front ''The Front'' is a 1976 comedy-drama Comedy-drama, or dramedy, is a genre of dramatic works that combines elements ...

front panel
even in cases of gross CPU failure.


IBM System/360 and successors

In the
IBM System/360 The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover the complete range of applications, fr ...
and its successors, including the current
z/Architecture z/Architecture, initially and briefly called ESA Modal Extensions (ESAME), is IBM's 64-bit computing, 64-bit Complex instruction set computer, CISC instruction set architecture implemented by its mainframe computers. IBM introduced its first ...
machines, the boot process is known as ''Initial Program Load'' (IPL). IBM coined this term for the 7030 (Stretch), revived it for the design of the System/360, and continues to use it in those environments today. In the System/360 processors, an IPL is initiated by the computer operator by selecting the three hexadecimal digit device address (CUU; C=I/O Channel address, UU=Control unit and Device addressUU was often of the form Uu, U=Control unit address, u=Device address, but some control units attached only 8 devices; some attached more than 16. Indeed, the 3830 DASD controller offered 32-drive-addressing as an option.) followed by pressing the ''LOAD'' button. On the high end
System/360 The IBM System/360 (S/360) is a family of mainframe computer A pair of IBM mainframes. On the left is the IBM z Systems z13. On the right is the IBM LinuxONE Rockhopper.">IBM_LinuxONE.html" ;"title="IBM z Systems z13. On the right is the ...
models, mostExcluding the 370/145 and 370/155, which used a 3210 or 3215 console typewriter.
System/370 The IBM System/370 (S/370) is a model range of IBM mainframe computers announced on June 30, 1970 as the successors to the IBM System/360, System/360 family. The series mostly maintains backward compatibility with the S/360, allowing an easy m ...
and some later systems, the functions of the switches and the LOAD button are simulated using selectable areas on the screen of a graphics console, oftenOnly the S/360 used the 2250; the 360/85, 370/165 and 370/168 used a keyboard/display device compatible with nothing else. an
IBM 2250 The IBM 2250 Graphics Display Unit was a vector graphics display system by IBM for the System/360; the Model IV attached to the IBM 1130. Overview The IBM 2250 Graphics Display Unit was announced with System/360 in 1964. A complete 2250 III syste ...
-like device or an
IBM 3270 The IBM 3270 is a family of block oriented display and printer computer terminal A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer ...
-like device. For example, on the System/370 Model 158, the keyboard sequence 0-7-X (zero, seven and X, in that order) results in an IPL from the device address which was keyed into the input area. The Amdahl 470V/6 and related CPUs supported four hexadecimal digits on those CPUs which had the optional second channel unit installed, for a total of 32 channels. Later, IBM would also support more than 16 channels. The IPL function in the System/360 and its successors, and its compatibles such as Amdahl's, reads 24 bytes from an operator-specified device into main storage starting at real address zero. The second and third groups of eight bytes are treated as Channel Command Words (CCWs) to continue loading the startup program (the first CCW is always simulated by the CPU and consists of a Read IPL command, , with command chaining and suppress incorrect length indication being enforced). When the I/O channel commands are complete, the first group of eight bytes is then loaded into the processor's
Program Status Word The program status word (PSW) is a register that performs the function of a status register and program counter, and sometimes more. The term is also applied to a copy of the PSW in storage. This article only discusses the PSW in the IBM System/3 ...
(PSW) and the startup program begins execution at the location designated by that PSW. The IPL device is usually a disk drive, hence the special significance of the read-type command, but exactly the same procedure is also used to IPL from other input-type devices, such as tape drives, or even card readers, in a device-independent manner, allowing, for example, the installation of an operating system on a brand-new computer from an OS initial distribution magnetic tape. For disk controllers, the command also causes the selected device to seek to cylinder , head , simulating a Seek cylinder and head command, , and to search for record , simulating a Search ID Equal command, ; seeks and searches are not simulated by tape and card controllers, as for these device classes an command is simply a sequential read command, not a Read IPL command. The disk, tape or card deck must contain a special program to load the actual operating system or standalone utility into main storage, and for this specific purpose "IPL Text" is placed on the disk by the stand-alone DASDI (Direct Access Storage Device Initialization) program or an equivalent program running under an operating system, e.g., ICKDSF, but IPL-able tapes and card decks are usually distributed with this "IPL Text" already present.


Minicomputers

Minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold for much less than Mainframe computer, mainframe and mid-size computers from IBM and BUNCH, its direct competitors. In ...
s, starting with the
Digital Equipment Corporation Digital Equipment Corporation (DEC ), using the trademark A trademark (also written trade mark or trade-mark) is a type of intellectual property Intellectual property (IP) is a category of property Property is a system of rights ...
(DEC)
PDP-5 The PDP-5 was Digital Equipment Corporation Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan A ...
and
PDP-8 The PDP-8 is a 12-bit Possibly the best-known 12-bit CPU is the PDP-8 The PDP-8 is a 12-bit Possibly the best-known 12-bit CPU is the PDP-8 and its relatives, such as the Intersil 6100 microprocessor produced in various incarnations from Augu ...

PDP-8
(1965) simplified design by using the CPU to assist input and output operations. This saved cost but made booting more complicated than pressing a single button. Minicomputers typically had some way to ''toggle in'' short programs by manipulating an array of switches on the front panel. Since the early minicomputers used
magnetic core memory Magnetic-core memory was the predominant form of random-access Random access (more precisely and more generally called direct access) is the ability to access an arbitrary element of a sequence in equal time or any datum from a population of ...
, which did not lose its information when power was off, these bootstrap loaders would remain in place unless they were erased. Erasure sometimes happened accidentally when a program bug caused a loop that overwrote all of memory. Other minicomputers with such simple form of booting include Hewlett-Packard's
HP 2100 The HP 2100 is a series of 16-bit 16-bit microcomputers are computers in which 16-bit microprocessors were the norm. A 16-bit register can store 216 different values. The range (computer programming), range of integer values that can be stored in ...
series (mid-1960s), the original
Data General Nova The Data General Nova is a series of 16-bit 16-bit microcomputers are computers in which 16-bit microprocessors were the norm. A 16-bit register can store 216 different values. The range (computer programming), range of integer values that ca ...
(1969), and DEC's
PDP-11 The PDP-11 is a series of 16-bit 16-bit microcomputers are computers in which 16-bit microprocessors were the norm. A 16-bit register can store 216 different values. The range (computer programming), range of integer values that can be stored i ...
(1970). DEC later added an optional
diode matrix A diode matrix is a two-dimensional grid of wires: each "intersection" wherein one row crosses over another has either a diode Various semiconductor diodes. Bottom: A bridge rectifier. In most diodes, a white or black painted band identifies the ...
read-only memory for the PDP-11 that stored a bootstrap program of up to 32 words (64 bytes). It consisted of a printed circuit card, the M792, that plugged into the
Unibus The Unibus was the earliest of several computer bus trolleybus in Toronto Toronto is the capital city of the Provinces and territories of Canada, Canadian province of Ontario. With a recorded population of 2,731,571 in 2016, it is the ...

Unibus
and held a 32 by 16 array of semiconductor diodes. With all 512 diodes in place, the memory contained all "one" bits; the card was programmed by cutting off each diode whose bit was to be "zero". DEC also sold versions of the card, the BM792-Yx series, pre-programmed for many standard input devices by simply omitting the unneeded diodes. Following the older approach, the earlier PDP-1 has a hardware loader, such that an operator need only push the "load" switch to instruct the
paper tape Five- and eight-hole punched paper tape file:Harwell-dekatron-witch-10.jpg, Paper tape reader on the Harwell computer with a small piece of five-hole tape connected in a circle – creating a physical program loop Punched tape or perforated pape ...

paper tape
reader to load a program directly into core memory. The Data General Supernova used front panel switches to cause the computer to automatically load instructions into memory from a device specified by the front panel's data switches, and then jump to loaded code; the Nova 800 and 1200 had a switch that loaded a program into main memory from a special read-only memory and jumped to it.


= Early minicomputer boot loader examples

= In a minicomputer with a paper tape reader, the first program to run in the boot process, the boot loader, would read into core memory either the second-stage boot loader (often called a ''Binary Loader'') that could read paper tape with
checksum A checksum is a small-sized Block (data storage), block of data derived from another block of digital data for the purpose of error detection, detecting errors that may have been introduced during its telecommunication, transmission or computer ...

checksum
or the operating system from an outside storage medium.
Pseudocode In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , , ...
for the boot loader might be as simple as the following eight instructions: # Set the P register to 9 # Check paper tape reader ready # If not ready, jump to 2 # Read a byte from paper tape reader to accumulator # Store accumulator to address in P register # If end of tape, jump to 9 # Increment the P register # Jump to 2 A related example is based on a loader for a Nicolet Instrument Corporation minicomputer of the 1970s, using the paper tape reader-punch unit on a
Teletype Model 33 The Teletype Model 33 is an electromechanical teleprinter designed for light-duty office use. It is less rugged and cost less than earlier Teletype machines. The Teletype Corporation introduced the Model 33 as a commercial product in 1963 after ...
ASR
teleprinter A teleprinter (teletypewriter, teletype or TTY) is an electromechanical device that can be used to send and receive typed messages through various communications channels, in both point-to-point (telecommunications), point-to-point and point- ...
. The bytes of its second-stage loader are read from paper tape in reverse order. # Set the P register to 106 # Check paper tape reader ready # If not ready, jump to 2 # Read a byte from paper tape reader to accumulator # Store accumulator to address in P register # Decrement the P register # Jump to 2 The length of the second stage loader is such that the final byte overwrites location 7. After the instruction in location 6 executes, location 7 starts the second stage loader executing. The second stage loader then waits for the much longer tape containing the operating system to be placed in the tape reader. The difference between the boot loader and second stage loader is the addition of checking code to trap paper tape read errors, a frequent occurrence with relatively low-cost, "part-time-duty" hardware, such as the Teletype Model 33 ASR. (Friden Flexowriters were far more reliable, but also comparatively costly.)


Booting the first microcomputers

The earliest microcomputers, such as the
Altair 8800 The Altair 8800 is a microcomputer designed in 1974 by Micro Instrumentation and Telemetry Systems, MITS and based on the Intel 8080 central processing unit, CPU. Interest grew quickly after it was featured on the cover of the January 1975 issue o ...

Altair 8800
(released first in 1975) and an even earlier, similar machine (based on the Intel 8008 CPU) had no bootstrapping hardware as such. When started, the CPU would see memory that would contain executable code containing only binary zeros—memory was cleared by resetting when powering up. The front panels of these machines carried toggle switches for entering addresses and data, one switch per bit of the computer memory word and address bus. Simple additions to the hardware permitted one memory location at a time to be loaded from those switches to store bootstrap code. Meanwhile, the CPU was kept from attempting to execute memory content. Once correctly loaded, the CPU was enabled to execute the bootstrapping code. This process was tedious and had to be error-free.


Integrated circuit read-only memory era

The boot process for minicomputers and microcomputersThe
IBM 1401 The IBM 1401 is a variable-wordlength decimal computer Decimal computers are computers which can represent numbers and addresses in decimal as well as providing instructions to operate on those numbers and addresses directly in decimal, without ...
,
IBM 7090 The IBM 7090 is a second-generation transistorized upright=1.4, gate A gate or gateway is a point of entry to or from a space enclosed by walls. The word derived from old Norse "gat" meaning road A road is a thoroughfare, route, or way ...
,
IBM System/360 The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover the complete range of applications, fr ...
and many others did not require keying in a boot loader. The S/360 had a read only storage in most models,although not using integrated.
was revolutionized by the introduction of integrated circuit
read-only memory Read-only memory (ROM) is a type of non-volatile memory Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs const ...
(ROM), with its many variants, including mask-programmed ROMs,
programmable ROM A programmable read-only memory (PROM) is a form of digital memory where the contents can be changed once after manufacture of the device. The data is then permanent and cannot be changed. It is one type of read-only memory Read-only memory (RO ...
s (PROM), s (EPROM), and
flash memory Flash memory is an electronic Electronic may refer to: *Electronics Electronics comprises the physics, engineering, technology and applications that deal with the emission, flow and control of electrons in vacuum and matter. It uses act ...
. These allowed
firmware In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softwa ...
boot programs to be included as part of the computer. The introduction of an (external) ROM was in an Italian telephone switching elaborator, called "Gruppi Speciali", patented in 1975 by
Alberto Ciaramella Alberto Ciaramella (born 1947) is an Italian computer engineer and scientist. He is notable for extensive pioneering contributions in the field of Speech technology, speech technologies and applied natural language processing, most of them at CSELT ...
, a researcher at
CSELT Centro Studi e Laboratori Telecomunicazioni (CSELT) was an Italian research center for telecommunication Telecommunication is the transmission of information by various types of technologies over wire A wire is a single usually cylind ...
. Gruppi Speciali was, starting from 1975, a fully single-button machine booting into the operating system from a ROM memory composed from semiconductors, not from ferrite cores. Although the ROM device was not natively embedded in the computer of Gruppi Speciali, due to the design of the machine, it also allowed the single-button ROM booting in machines not designed for that (therefore, this "bootstrap device" was architecture-independent), e.g. the PDP-11. Storing the state of the machine after the switch-off was also in place, which was another critical feature in the telephone switching contest. Typically, every microprocessor will, after a reset or power-on condition, perform a start-up process that usually takes the form of "begin execution of the code that is found starting at a specific address" or "look for a multibyte code at a specific address and jump to the indicated location to begin execution". A system built using that microprocessor will have the permanent ROM occupying these special locations so that the system always begins operating without operator assistance. For example,
Intel x86 x86 is a family of instruction set architecture In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for th ...
processors always start by running the instructions beginning at F000:FFF0, while for the
MOS 6502 The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit In computer architecture In computer ...
processor, initialization begins by reading a two-byte vector address at $FFFD (MS byte) and $FFFC (LS byte) and jumping to that location to run the bootstrap code.
Apple Inc. Apple Inc. is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational state, a ...
's first computer, the
Apple 1 The Apple Computer 1, originally released as the Apple Computer and known later as the Apple I, or Apple-1, is a desktop computer released by the Apple Computer Company (now Apple Inc.) in 1976. It was designed and hand-built by Steve Wozniak. T ...

Apple 1
introduced in 1976, featured PROM chips that eliminated the need for a front panel for the boot process (as was the case with the Altair 8800) in a commercial computer. According to Apple's ad announcing it "No More Switches, No More Lights ... the firmware in PROMS enables you to enter, display and debug programs (all in hex) from the keyboard." Due to the expense of read-only memory at the time, the
Apple II series The Apple II series (trademarked with square brackets as "Apple ][" and rendered on later models as "Apple //") is a family of home computers, one of the first highly successful mass-produced microcomputer products, designed primarily b ...
booted its disk operating systems using a series of very small incremental steps, each passing control onward to the next phase of the gradually more complex boot process. (See Apple DOS#Boot loader, Apple DOS: Boot loader). Because so little of the disk operating system relied on ROM, the hardware was also extremely flexible and supported a wide range of customized disk copy protection mechanisms. (See Software cracking#History, Software Cracking: History.) Some operating systems, most notably pre-1995 Apple Macintosh, Macintosh systems from
Apple An apple is an edible fruit In botany Botany, also called , plant biology or phytology, is the science of plant life and a branch of biology. A botanist, plant scientist or phytologist is a scientist who specialises in this fie ...
, are so closely interwoven with their hardware that it is impossible to natively boot an operating system other than the standard one. This is the opposite extreme of the scenario using switches mentioned above; it is highly inflexible but relatively error-proof and foolproof as long as all hardware is working normally. A common solution in such situations is to design a boot loader that works as a program belonging to the standard OS that hijacks the system and loads the alternative OS. This technique was used by Apple for its
A/UX A/UX is Apple Computer Apple Inc. is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries ...
Unix implementation and copied by various freeware operating systems and BeOS Personal Edition 5. Some machines, like the
Atari ST The Atari ST is a line of home computer Home computers were a class of s that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, we ...
microcomputer A microcomputer is a small, relatively inexpensive computer with a microprocessor as its central processing unit (CPU). It includes a microprocessor, Computer memory, memory and minimal input/output (I/O) circuitry mounted on a single printed ci ...
, were "instant-on", with the operating system executing from a
ROM Rom, or ROM may refer to: Biomechanics and medicine * Risk of mortality The risk of mortality (ROM) provides a medical classification to estimate the likelihood of inhospital death for a patient. The ROM classes are minor, moderate, major, and ex ...
. Retrieval of the OS from secondary or tertiary store was thus eliminated as one of the characteristic operations for bootstrapping. To allow system customizations, accessories, and other support software to be loaded automatically, the Atari's floppy drive was read for additional components during the boot process. There was a timeout delay that provided time to manually insert a floppy as the system searched for the extra components. This could be avoided by inserting a blank disk. The Atari ST hardware was also designed so the cartridge slot could provide native program execution for gaming purposes as a holdover from Atari's legacy making electronic games; by inserting the
Spectre GCR The Spectre GCR is a hardware and software package for the Atari ST computers. The hardware consists of a cartridge that plugs into the Atari ST's cartridge port and a cable that connects between the cartridge and one of the floppy ports on the ST. ...
cartridge with the Macintosh system ROM in the game slot and turning the Atari on, it could "natively boot" the Macintosh operating system rather than Atari's own TOS. The
IBM Personal Computer The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first computer released in the IBM PC model line and the basis for the IBM PC compatible IBM PC compatible computers are similar to the original IBM PC The IBM ...
included ROM-based firmware called the
BIOS In computing, BIOS (, ); an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is firmware used to perform Computer hardware, hardware initialization during the booting process (power-on startup), and t ...

BIOS
; one of the functions of that firmware was to perform a
power-on self test A power-on self-test (POST) is a process performed by firmware In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithm of ...
when the machine was powered up, and then to read software from a boot device and execute it. Firmware compatible with the BIOS on the IBM Personal Computer is used in
IBM PC compatible IBM PC compatible computers are similar to the original IBM PC The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first computer released in the IBM PC model line and the basis for the IBM PC compatible IBM PC c ...
computers. The
Extensible Firmware Interface The Unified Extensible Firmware Interface (UEFI) is a publicly available specification A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type ...
was developed by Intel, originally for
Itanium Itanium ( ) is a discontinued family of 64-bit In computer architecture, 64-bit Integer (computer science), integers, Memory address, memory addresses, or other Data#Uses%20of%20data%20in%20computing, data units are those that are 64 bits (8 ...

Itanium
-based machines, and later also used as an alternative to the BIOS in
x86 x86 is a family of instruction set architecture In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, ...

x86
-based machines, including Apple Macs using Intel processors.
Unix workstation A workstation is a special computer designed for technical or scientific Science () is a systematic enterprise that Scientific method, builds and organizes knowledge in the form of Testability, testable explanations and predictions about ...
s originally had vendor-specific ROM-based firmware.
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computer A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations automatically. M ...
later developed OpenBoot, later known as Open Firmware, which incorporated a Forth (programming language), Forth interpreter, with much of the firmware being written in Forth. It was standardized by the IEEE as IEEE standard 1275-1994; firmware that implements that standard was used in PowerPC-based Macintosh, Macs and some other PowerPC-based machines, as well as Sun's own SPARC-based computers. The Advanced RISC Computing specification defined another firmware standard, which was implemented on some MIPS architecture, MIPS-based and DEC Alpha, Alpha-based machines and the SGI Visual Workstation x86-based workstations.


Modern boot loaders

When a computer is turned off, its softwareincluding operating systems, application code, and dataremains stored on non-volatile memory. When the computer is powered on, it typically does not have an operating system or its loader in random-access memory (RAM). The computer first executes a relatively small program stored in
read-only memory Read-only memory (ROM) is a type of non-volatile memory Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs const ...
(ROM) along with a small amount of needed data, to access the nonvolatile device or devices from which the operating system programs and data can be loaded into RAM. The small program that starts this sequence is known as a ''bootstrap loader'', ''bootstrap'' or ''boot loader''. This small program's only job is to load other data and programs which are then executed from RAM. Often, multiple-stage boot loaders are used, during which several programs of increasing complexity load one after the other in a process of chain loading. Some computer systems, upon receiving a boot signal from a human operator or a peripheral device, may load a very small number of fixed instructions into memory at a specific location, initialize at least one CPU, and then point the CPU to the instructions and start their execution. These instructions typically start an input operation from some peripheral device (which may be switch-selectable by the operator). Other systems may send hardware commands directly to peripheral devices or I/O controllers that cause an extremely simple input operation (such as "read sector zero of the system device into memory starting at location 1000") to be carried out, effectively loading a small number of boot loader instructions into memory; a completion signal from the I/O device may then be used to start execution of the instructions by the CPU. Smaller computers often use less flexible but more automatic boot loader mechanisms to ensure that the computer starts quickly and with a predetermined software configuration. In many desktop computers, for example, the bootstrapping process begins with the CPU executing software contained in ROM (for example, the
BIOS In computing, BIOS (, ); an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is firmware used to perform Computer hardware, hardware initialization during the booting process (power-on startup), and t ...

BIOS
of an IBM PC) at a predefined address (some CPUs, including the Intel Intel 8086, x86 series are designed to execute this software after reset without outside help). This software contains rudimentary functionality to search for devices eligible to participate in booting, and load a small program from a special section (most commonly the boot sector) of the most promising device, typically starting at a fixed entry point such as the start of the sector.


First-stage boot loader

Boot loaders may face peculiar constraints, especially in size; for instance, on the IBM PC and compatibles, a boot sector should typically work in only 32 KB (later relaxed to 64 KB) of system memory and only use instructions supported by the original 8088/8086 processors. The first stage of PC boot loaders (FSBL, first-stage boot loader) located on fixed disks and removable drives must fit into the first 446 bytes of the Master Boot Record in order to leave room for the default 64-byte partition table with four partition entries and the two-byte MBR boot signature, boot signature, which the BIOS requires for a proper boot loader — or even less, when additional features like more than four partition entries (up to 16 with 16 bytes each), a MBR disk signature, disk signature (6 bytes), a MBR disk timestamp, disk timestamp (6 bytes), an Advanced Active Partition (18 bytes) or special multi-boot loaders have to be supported as well in some environments. In floppy and superfloppy Volume Boot Records, up to 59 bytes are occupied for the Extended BIOS Parameter Block on FAT12 and FAT16 volumes since DOS 4.0, whereas the FAT32 EBPB introduced with DOS 7.1 requires even 87 bytes, leaving only 423 bytes for the boot loader when assuming a sector size of 512 bytes. Microsoft boot sectors therefore traditionally imposed certain restrictions on the boot process, for example, the boot file had to be located at a fixed position in the root directory of the file system and stored as consecutive sectors, conditions taken care of by the SYS (DOS command), SYS command and slightly relaxed in later versions of DOS. The boot loader was then able to load the first three sectors of the file into memory, which happened to contain another embedded boot loader able to load the remainder of the file into memory. When Microsoft added Logical block addressing, LBA and FAT32 support, they even switched to a boot loader reaching over ''two'' physical sectors and using 386 instructions for size reasons. At the same time other vendors managed to squeeze much more functionality into a single boot sector without relaxing the original constraints on only minimal available memory (32 KB) and processor support (8088/8086). For example, DR-DOS boot sectors are able to locate the boot file in the FAT12, FAT16 and FAT32 file system, and load it into memory as a whole via cylinder-head-sector, CHS or LBA, even if the file is not stored in a fixed location and in consecutive sectors. Examples of first-stage bootloaders include coreboot, Libreboot and Das U-Boot.


Second-stage boot loader

Second-stage boot loaders, such as GNU GRUB, rEFInd, BOOTMGR, SYSLINUX, Syslinux, NTLDR or BootX (Apple), BootX, are not themselves operating systems, but are able to load an operating system properly and transfer execution to it; the operating system subsequently initializes itself and may load extra device drivers. The second-stage boot loader does not need drivers for its own operation, but may instead use generic storage access methods provided by system firmware such as the BIOS or Open Firmware, though typically with restricted hardware functionality and lower performance. Many boot loaders (like GNU GRUB, rEFInd, Windows's BOOTMGR, Syslinux, and Windows NT/2000/XP's NTLDR) can be configured to give the user multiple booting choices. These choices can include different operating systems (for dual boot, dual or multi-booting from different partitions or drives), different versions of the same operating system (in case a new version has unexpected problems), different operating system loading options (e.g., booting into a rescue or safe mode), and some standalone programs that can function without an operating system, such as memory testers (e.g., memtest86+), a basic shell (as in GNU GRUB), or even games (see List of PC Booter games). Some boot loaders can also load other boot loaders; for example, GRUB loads BOOTMGR instead of loading Windows directly. Usually a default choice is preselected with a time delay during which a user can press a key to change the choice; after this delay, the default choice is automatically run so normal booting can occur without interaction. The boot process can be considered complete when the computer is ready to interact with the user, or the operating system is capable of running system programs or application programs. Many embedded systems must boot immediately. For example, waiting a minute for a Television set, digital television or a GPS navigation device to start is generally unacceptable. Therefore, such devices have software systems in ROM or
flash memory Flash memory is an electronic Electronic may refer to: *Electronics Electronics comprises the physics, engineering, technology and applications that deal with the emission, flow and control of electrons in vacuum and matter. It uses act ...
so the device can begin functioning immediately; little or no loading is necessary, because the loading can be precomputed and stored on the ROM when the device is made. Large and complex systems may have boot procedures that proceed in multiple phases until finally the operating system and other programs are loaded and ready to execute. Because operating systems are designed as if they never start or stop, a boot loader might load the operating system, configure itself as a mere process within that system, and then irrevocably transfer control to the operating system. The boot loader then terminates normally as any other process would.


Network booting

Most computers are also capable of booting over a computer network. In this scenario, the operating system is stored on the disk of a server (computing), server, and certain parts of it are transferred to the client using a simple protocol such as the Trivial File Transfer Protocol (TFTP). After these parts have been transferred, the operating system takes over the control of the booting process. As with the second-stage boot loader, network booting begins by using generic network access methods provided by the network interface's boot ROM, which typically contains a Preboot Execution Environment (PXE) image. No drivers are required, but the system functionality is limited until the operating system kernel and drivers are transferred and started. As a result, once the ROM-based booting has completed it is entirely possible to network boot into an operating system that itself does not have the ability to use the network interface.


Personal computers (PC)


Boot devices

The boot device is the device from which the operating system is loaded. A modern PC's UEFI or
BIOS In computing, BIOS (, ); an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is firmware used to perform Computer hardware, hardware initialization during the booting process (power-on startup), and t ...

BIOS
firmware supports booting from various devices, typically a local solid state drive or hard disk drive via the GUID Partition Table, GPT or Master Boot Record (MBR) on such a drive or disk, an optical disc drive (using El Torito (CD-ROM standard), El Torito), a Universal Serial Bus, USB mass storage device (Flash Translation Layer, FTL-based flash drive, SD card or Memory card reader, multi-media card slot, USB hard disk drive, USB optical disc drive, etc.), or a network interface card (using Preboot Execution Environment, PXE). Older, less common BIOS-bootable devices include boot floppy, floppy disk drives, Zip drives, and LS-120 drives. Typically, the firmware (UEFI or BIOS) will allow the user to configure a ''boot order''. If the boot order is set to "first, the DVD drive; second, the hard disk drive", then the firmware will try to boot from the DVD drive, and if this fails (e.g. because there is no DVD in the drive), it will try to boot from the local hard disk drive. For example, on a PC with Microsoft Windows, Windows installed on the hard drive, the user could set the boot order to the one given above, and then insert a Linux Live CD in order to try out Linux without having to install an operating system onto the hard drive. This is an example of dual booting, in which the user chooses which operating system to start after the computer has performed its Power-on self-test (POST). In this example of dual booting, the user chooses by inserting or removing the DVD from the computer, but it is more common to choose which operating system to boot by selecting from a boot manager menu on the selected device, by using the computer keyboard to select from a
BIOS In computing, BIOS (, ); an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is firmware used to perform Computer hardware, hardware initialization during the booting process (power-on startup), and t ...

BIOS
or UEFI Boot Menu, or both; the Boot Menu is typically entered by pressing or keys during the POST; the BIOS Setup is typically entered by pressing or keys during the POST. Several devices are available that enable the user to ''quick-boot'' into what is usually a variant of Linux for various simple tasks such as Internet access; examples are Splashtop OS, Splashtop and Latitude ON.


Boot sequence

Upon starting, an IBM-compatible personal computer's
x86 x86 is a family of instruction set architecture In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, ...

x86
CPU, executes in real mode, the instruction located at reset vector (the physical memory address on 16-bit x86 processors and on 32-bit and 64-bit x86 processors), usually pointing to the firmware (Unified Extensible Firmware Interface, UEFI or
BIOS In computing, BIOS (, ); an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is firmware used to perform Computer hardware, hardware initialization during the booting process (power-on startup), and t ...

BIOS
) entry point inside the ROM. This memory location typically contains a jump instruction that transfers execution to the location of the firmware (Unified Extensible Firmware Interface, UEFI or
BIOS In computing, BIOS (, ); an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is firmware used to perform Computer hardware, hardware initialization during the booting process (power-on startup), and t ...

BIOS
) start-up program. This program runs a power-on self-test (POST) to check and initialize required devices such as
main memory A spindle of DVD-RWs Computer data storage is a technology consisting of computer components and Data storage device, recording media that are used to retain digital data (computing), data. It is a core function and fundamental component of ...
(DRAM), the PCI bus and the PCI devices (including running embedded Option ROMs). One of the most involved steps is setting up DRAM over Serial Presence Detect, SPD, further complicated by the fact that at this point memory is very limited. After initializing required hardware, the firmware (Unified Extensible Firmware Interface, UEFI or
BIOS In computing, BIOS (, ); an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is firmware used to perform Computer hardware, hardware initialization during the booting process (power-on startup), and t ...

BIOS
) goes through a pre-configured list of Non-volatile memory, non-volatile storage devices ("boot device sequence") until it finds one that is bootable. A bootable MBR device is defined as one that can be read from, and where the last two bytes of the first sector contain the little-endian Word (data type), word , found as byte sequence , on disk (also known as the MBR boot signature), or where it is otherwise established that the code inside the sector is executable on x86 PCs. Once the BIOS has found a bootable device it loads the boot sector to linear address (usually X86 memory segmentation, segment:Offset (computer science), offset :, but some BIOSes erroneously use :) and transfers execution to the boot code. In the case of a hard disk, this is referred to as the Master Boot Record (MBR). The conventional MBR code checks the MBR's partition table for a partition set as ''bootable''The active partition may contain a Second-stage boot loader, e.g., OS/2 Boot Manager, rather than an OS. (the one with ''active'' flag set). If an active partition is found, the MBR code loads the boot sector code from that partition, known as Volume Boot Record (VBR), and executes it. The VBR is often operating-system specific; however, its main function is to load and execute the operating system boot loader file (such as io.sys, ntldr, or bootmgr) from an active partition. Then the boot loader loads the OS kernel from the storage device. If there is no active partition, or the active partition's boot sector is invalid, the MBR may load a secondary boot loader which will select a partition (often via user input) and load its boot sector, which usually loads the corresponding operating system kernel. In some cases, the MBR may also attempt to load secondary boot loaders before trying to boot the active partition. If all else fails, it should issue an INT (x86 instruction), INT 18h BIOS interrupt call (followed by an INT 19h just in case INT 18h would return) in order to give back control to the BIOS, which would then attempt to boot off other devices, attempt a network booting, remote boot via network. Most modern systems (newer Apple Macs and newer PCs) use UEFI. Unlike BIOS, UEFI (not Legacy boot via CSM) does not rely on boot sectors, UEFI system loads the boot loader (EFI application file in USB disk or in the EFI System Partition) directly, and the OS kernel is loaded by the boot loader.


Other kinds of boot sequences

Some modern CPUs and microcontrollers (for example, Texas Instruments, TI OMAP) or sometimes even DSPs may have boot ROM with boot code integrated directly into their silicon, so such a processor could perform quite a sophisticated boot sequence on its own and load boot programs from various sources like NAND flash, SD or MMC card and so on. It is difficult to hardwire all the required logic for handling such devices, so an integrated boot ROM is used instead in such scenarios. Boot ROM usage enables more flexible boot sequences than hardwired logic could provide. For example, the boot ROM could try to perform boot from multiple boot sources. Also, a boot ROM is often able to load a boot loader or diagnostic program via serial interfaces like UART, Serial Peripheral Interface Bus, SPI, USB and so on. This feature is often used for system recovery purposes when for some reasons usual boot software in non-volatile memory got erased, and it could also be used for initial non-volatile memory programming when there is clean non-volatile memory installed and hence no software available in the system yet. Some embedded system designs may also include an intermediary boot sequence step in form of additional code that gets loaded into system
RAM 8GB heatsink_.html" ;"title="Heat_sink.html" ;"title="RAM.html" ;"title="DDR3 RAM">DDR3 RAM stick with a white Heat sink">heatsink ">Heat_sink.html" ;"title="RAM.html" ;"title="DDR3 RAM">DDR3 RAM stick with a white Heat sink">heatsink Rando ...

RAM
by the integrated boot ROM. Additional code loaded that way usually serves as a way for overcoming platform limitations, such as small amounts of RAM, so a dedicated primary boot loader, such as Das U-Boot, can be loaded as the next step in system's boot sequence. The additional code and boot sequence step are usually referred to as ''secondary program loader'' (SPL). It is also possible to take control of a system by using a hardware debug interface such as JTAG. Such an interface may be used to write the boot loader program into bootable non-volatile memory (e.g. flash) by instructing the processor core to perform the necessary actions to program non-volatile memory. Alternatively, the debug interface may be used to upload some diagnostic or boot code into RAM, and then to start the processor core and instruct it to execute the uploaded code. This allows, for example, the recovery of embedded systems where no software remains on any supported boot device, and where the processor does not have any integrated boot ROM. JTAG is a standard and popular interface; many CPUs, microcontrollers and other devices are manufactured with JTAG interfaces (as of 2009). Some microcontrollers provide special hardware interfaces which cannot be used to take arbitrary control of a system or directly run code, but instead they allow the insertion of boot code into bootable non-volatile memory (like flash memory) via simple protocols. Then at the manufacturing phase, such interfaces are used to inject boot code (and possibly other code) into non-volatile memory. After system reset, the microcontroller begins to execute code programmed into its non-volatile memory, just like usual processors are using ROMs for booting. Most notably this technique is used by Atmel AVR microcontrollers, and by others as well. In many cases such interfaces are implemented by hardwired logic. In other cases such interfaces could be created by software running in integrated on-chip boot ROM from GPIO pins. Most digital signal processors have a serial mode boot, and a parallel mode boot, such as the host port interface (HPI boot) In case of DSPs there is often a second microprocessor or microcontroller present in the system design, and this is responsible for overall system behavior, interrupt handling, dealing with external events, user interface, etc. while the DSP is dedicated to signal processing tasks only. In such systems the DSP could be booted by another processor which is sometimes referred as the ''host processor'' (giving name to a Host Port). Such a processor is also sometimes referred as the ''master'', since it usually boots first from its own memories and then controls overall system behavior, including booting of the DSP, and then further controlling the DSP's behavior. The DSP often lacks its own boot memories and relies on the host processor to supply the required code instead. The most notable systems with such a design are cell phones, modems, audio and video players and so on, where a DSP and a CPU/microcontroller are co-existing. Many FPGA chips load their configuration from an external serial EEPROM ("configuration ROM") on power-up.


See also

* Boot disk * Bootkit * Comparison of boot loaders * Linux startup process * Macintosh startup * Microreboot * Multi boot * Network booting * RedBoot * Self-booting disk * Windows NT startup process * Windows Vista startup process


Notes


References

{{reflist, refs= {{Cite book , title=The MS-DOS Encyclopedia: versions 1.0 through 3.2 , author-first1=Ray , author-last1=Duncan , author-first2=Steve , author-last2=Bostwick , author-first3=Keith , author-last3=Burgoyne , author-first4=Robert A. , author-last4=Byers , author-first5=Thom , author-last5=Hogan , author-first6=Jim , author-last6=Kyle , author-first7=Gordon , author-last7=Letwin , author-link7=Gordon Letwin , author-first8=Charles , author-last8=Petzold , author-link8=Charles Petzold , author-first9=Chip , author-last9=Rabinowitz , author-first10=Jim , author-last10=Tomlin , author-first11=Richard , author-last11=Wilton , author-first12=Van , author-last12=Wolverton , author-first13=William , author-last13=Wong , author-first14=JoAnne , author-last14=Woodcock , contribution=Technical advisors , contributor-first1=Mark , contributor-last1=Zbikowski , contributor-link1=Mark Zbikowski , contributor-first2=Paul , contributor-last2=Allen , contributor-link2=Paul Allen , contributor-first3=Steve , contributor-last3=Ballmer , contributor-link3=Steve Ballmer , contributor-first4=Reuben , contributor-last4=Borman , contributor-first5=Rob , contributor-last5=Borman , contributor-first6=John , contributor-last6=Butler , contributor-first7=Chuck , contributor-last7=Carroll , contributor-first8=Mark , contributor-last8=Chamberlain , contributor-first9=David , contributor-last9=Chell , contributor-first10=Mike , contributor-last10=Colee , contributor-first11=Mike , contributor-last11=Courtney , contributor-first12=Mike , contributor-last12=Dryfoos , contributor-first13=Rachel , contributor-last13=Duncan , contributor-first14=Kurt , contributor-last14=Eckhardt , contributor-first15=Eric , contributor-last15=Evans , contributor-first16=Rick , contributor-last16=Farmer , contributor-first17=Bill , contributor-last17=Gates , contributor-link17=Bill Gates , contributor-first18=Michael , contributor-last18=Geary , contributor-first19=Bob , contributor-last19=Griffin , contributor-first20=Doug , contributor-last20=Hogarth , contributor-first21=James W. , contributor-last21=Johnson , contributor-first22=Kaamel , contributor-last22=Kermaani , contributor-first23=Adrian , contributor-last23=King , contributor-first24=Reed , contributor-last24=Koch , contributor-first25=James , contributor-last25=Landowski , contributor-first26=Chris , contributor-last26=Larson , contributor-first27=Thomas , contributor-last27=Lennon , contributor-first28=Dan , contributor-last28=Lipkie , contributor-first29=Marc , contributor-last29=McDonald , contributor-link29=Marc McDonald , contributor-first30=Bruce , contributor-last30=McKinney , contributor-first31=Pascal , contributor-last31=Martin , contributor-first32=Estelle , contributor-last32=Mathers , contributor-first33=Bob , contributor-last33=Matthews , contributor-first34=David , contributor-last34=Melin , contributor-first35=Charles , contributor-last35=Mergentime , contributor-first36=Randy , contributor-last36=Nevin , contributor-first37=Dan , contributor-last37=Newell , contributor-first38=Tani , contributor-last38=Newell , contributor-first39=David , contributor-last39=Norris , contributor-first40=Mike , contributor-last40=O'Leary , contributor-first41=Bob , contributor-last41=O'Rear , contributor-link41=Bob O'Rear , contributor-first42=Mike , contributor-last42=Olsson , contributor-first43=Larry , contributor-last43=Osterman , contributor-first44=Ridge , contributor-last44=Ostling , contributor-first45=Sunil , contributor-last45=Pai , contributor-first46=Tim , contributor-last46=Paterson , contributor-link46=Tim Paterson , contributor-first47=Gary , contributor-last47=Perez , contributor-first48=Chris , contributor-last48=Peters , contributor-first49=Charles , contributor-last49=Petzold , contributor-link49=Charles Petzold , contributor-first50=John , contributor-last50=Pollock , contributor-first51=Aaron , contributor-last51=Reynolds , contributor-link51=Aaron R. Reynolds , contributor-first52=Darryl , contributor-last52=Rubin , contributor-first53=Ralph , contributor-last53=Ryan , contributor-first54=Karl , contributor-last54=Schulmeisters , contributor-first55=Rajen , contributor-last55=Shah , contributor-first56=Barry , contributor-last56=Shaw , contributor-first57=Anthony , contributor-last57=Short , contributor-first58=Ben , contributor-last58=Slivka , contributor-first59=Jon , contributor-last59=Smirl , contributor-first60=Betty , contributor-last60=Stillmaker , contributor-first61=John , contributor-last61=Stoddard , contributor-first62=Dennis , contributor-last62=Tillman , contributor-first63=Greg , contributor-last63=Whitten , contributor-first64=Natalie , contributor-last64=Yount , contributor-first65=Steve , contributor-last65=Zeck , date=1988 , edition=Completely reworked , publisher=Microsoft Press , location=Redmond, Washington, USA , isbn=1-55615-049-0 , lccn=87-21452 , oclc=16581341 (xix+1570 pages; 26 cm) (NB. This edition was published in 1988 after extensive rework of the withdrawn 1986 first edition by a different team of authors

{{cite book , title=DOS Internals , author-first=Geoff , author-last=Chappell , chapter=Chapter 2: The System Footprint , editor-first1=Andrew , editor-last1=Schulman , editor-first2=Amorette , editor-last2=Pedersen , date=January 1994 , edition=1st printing, 1st , series=The Andrew Schulman Programming Series , publisher=Addison Wesley Publishing Company , isbn=978-0-201-60835-9 (xxvi+738+iv pages, 3.5"-flopp

https://web.archive.org/web/20200222111608/https://www.pcjs.org/pubs/pc/programming/DOS_Internals/]) Errata

https://web.archive.org/web/20200222111853/https://gopher.tildeverse.org/gopher.viste.fr/1/programming/PC/DOS/DOS%2520Internals/crtdrv

/ref> {{cite magazine , title=DR DOS 5.0 - The better operating system? , author-first=Winn L. , author-last=Rosch , magazine=PC Magazine , date=1991-02-12 , volume=10 , number=3 , page=241-246, 257, 264, 266 , url=https://books.google.com/books?id=YxFTezF9-sMC&pg=PT250 , access-date=2019-07-26 , url-status=live , archive-url=https://archive.today/20190725223320/https://books.google.nl/books?id=YxFTezF9-sMC&pg=PT250&lpg=PT250&redir_esc=y%23v=onepage&q&f=false , archive-date=25 July 2019 , quote=[…] SYS (DOS command), SYS has been improved under DR DOS 5.0 so you don't have to worry about leaving the first cluster free on a disk that you want to make bootable. The DR DOS system files can be located anywhere on the disk, so any disk with enough free space can be set to boot your system. […] (NB. The source attributes this to the SYS utility while in fact this is a feature of the advanced bootstrap loader in the boot sector. SYS just plants this sector onto the disk.) {{anchor, Paul_1997_ODA3{{cite web , author-first=Matthias R. , author-last=Paul , title=Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT and BOOT.TXT - A short description of how OpenDOS is booted , url=http://www.uni-bonn.de/~uzs180/download/ibmbioa3.zip , date=1997-10-02 , orig-year=1997-09-29 , access-date=2009-03-29 , url-status=dead , archive-url=https://web.archive.org/web/20031004074600/http://www-student.informatik.uni-bonn.de/~frinke/ibmbioa3.zip , archive-date=2003-10-04}
Op702src.zip is an unofficial renamed distribution of the ibmbioa3.zip file -->
/ref> {{cite web , title=FAT32 in DR-DOS , author-first=Matthias R. , author-last=Paul , date=2001-01-17 , work=opendos@delorie , url=http://www.delorie.com/opendos/archives/browse.cgi?p=opendos/2001/01/17/02:29:47 , access-date=2017-10-06 , url-status=live , archive-url=https://web.archive.org/web/20171006205537/http://www.delorie.com/opendos/archives/browse.cgi?p=opendos%2F2001%2F01%2F17%2F02%3A29%3A47 , archive-date=2017-10-06 , quote=[…] The DR-DOS boot sector […] searches for the IBMBIO.COM (DRBIOS.SYS) file and then loads the *whole* file into memory before it passes control to it. […] {{cite web , title=Can't copy , author-first=Matthias R. , author-last=Paul , date=2002-02-20 , work=opendos@delorie , url=http://www.delorie.com/opendos//archives/browse.cgi?p=opendos/2002/02/20/16:17:57 , access-date=2017-10-06 , url-status=live , archive-url=https://web.archive.org/web/20171006211007/http://www.delorie.com/opendos//archives/browse.cgi?p=opendos%2F2002%2F02%2F20%2F16%3A17%3A57 , archive-date=2017-10-06 , quote=[…] The DR-DOS boot sector loads the whole IBMBIO.COM file into memory before it executes it. It does not care at all about the IBMDOS.COM file, which is loaded by IBMBIO.COM. […] The DR-DOS boot sector […] will find the […] kernel files as long as they are logically stored in the root directory. Their physical location on the disk, and if they are fragmented or not, is don't care for the DR-DOS boot sector. Hence, you can just copy the kernel files to the disk (even with a simply COPY (DOS command), COPY), and as soon as the boot sector is a DR-DOS sector, it will find and load them. Of course, it is difficult to put all this into just 512 bytes, the size of a single sector, but this is a major convenience improvement if you have to set up a DR-DOS system, and it is also the key for the DR-DOS multi-OS NEWLDR, LOADER utility to work. The MS-DOS kernel files must reside on specific locations, but the DR-DOS files can be anywhere, so you don't have to physically swap them around each time you boot the other OS. Also, it allows to upgrade a DR-DOS system simply by copying the kernel files over the old ones, no need for SYS (DOS command), SYS, no difficult setup procedures as required for MS-DOS/PC DOS. You can even have multiple DR-DOS kernel files under different file names stored on the same drive, and LOADER will switch between them according to the file names listed in the BOOT.LST file. […] {{cite web , title=The continuing saga of Windows 3.1 in enhanced mode on OmniBook 300 , author-first=Matthias R. , author-last=Paul , orig-year=2017-08-07 , date=2017-08-14 , work=MoHPC - the Museum of HP Calculators , url=http://hpmuseum.org/forum/thread-8774-post-76925.html#pid76925 , access-date=2017-10-06 , url-status=live , archive-url=https://web.archive.org/web/20171006204718/http://hpmuseum.org/forum/thread-8774-post-76925.html , archive-date=2017-10-06 , quote=[…] the DR-DOS FDISK (DOS command), FDISK does not only partition a disk, but can also format the freshly created volumes and initialize their boot sectors in one go, so there's no risk to accidentally mess up the wrong volume and no need for FORMAT (DOS command), FORMAT /S or SYS (DOS command), SYS. Afterwards, you could just copy over the remaining DR-DOS files, including the system files. It is important to know that, in contrast to MS-DOS/PC DOS, DR-DOS has "smart" boot sectors which will actually "mount" the file-system to search for and load the system files in the root directory instead of expecting them to be placed at a certain location. Physically, the system files can be located anywhere and also can be fragmented. […] Booting,