In computing Computing, also known as computer science, is usually defined as the activity of using and improving computer technology, computer hardware and software. It is the computer-specific part of information technology. Computer science is the study and the science of the theoretical foundations of information and computation and their implementation, booting (also known as "booting up") is a bootstrapping In computing, bootstrapping is a technique by which a simple computer program activates a more complicated system of programs. In the start up process of a computer system, a small program such as BIOS, initializes and tests the hardware, peripherals and external memory devices are connected, then loads a program from one of them and passes process that starts operating systems An operating system is the software on a computer that manages the way different programs use its hardware, and regulates the ways that a user controls the computer. Operating systems are found on almost any device that contains a computer with multiple programs—from cellular phones and video game consoles to supercomputers and web servers. Some when the user turns on a computer system A computer is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format. A boot sequence is the initial set of operations that the computer performs when power is switched on. The bootloader typically loads the main operating system An operating system is the software on a computer that manages the way different programs use its hardware, and regulates the ways that a user controls the computer. Operating systems are found on almost any device that contains a computer with multiple programs—from cellular phones and video game consoles to supercomputers and web servers. Some for the computer.
Contents |
History
The computer word boot is short for 'bootstrap' Bootstrapping or booting refers to a group of metaphors that share a common meaning: a self-sustaining process that proceeds without external help. The term is often attributed to Rudolf Erich Raspe's story The Surprising Adventures of Baron Munchausen, where the main character pulls himself out of a swamp, though it's disputed whether it was done (itself short for 'bootstrap load'). The term bootstrap began as a metaphor derived from pull straps sewn onto the backs of leather boots with which a person could pull on their boots without outside help. The term refers to the fact that a computer cannot run without first loading software but must be running before any software can be loaded, which seems as impossible as to "pull yourself up by your own bootstraps".[1]
In computers in the 1950s, pressing a bootstrap button caused a hardwired program to read a bootstrap program from a punched card and then execute the loaded boot program which loaded a larger system of programs from punched cards into memory, without further help from the human operator.[2][3] The term "boot" has been used in this sense since at least 1958[4].
The CDC 6600 The CDC 6600 was a mainframe computer from Control Data Corporation, first delivered in 1964. It is generally considered to be the first successful supercomputer, outperforming its fastest predecessor, IBM 7030 Stretch, by about three times. With performance of about 1 MFLOP, it remained the world's fastest computer from 1964 to 1969, when it (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 PP's.
The GE 645 (c. 1965) had a 'BOOT' button[5]. It is possible that the contraction from "bootstrap" to "boot" was motivated by an inclination to label the button with fewer, larger, characters, or the contraction may follow the familiar habit of contracting words to make them easier to say, and to create insider jargon.
Some machines, like the Atari ST The Atari ST is a home/personal computer that was released by Atari Corporation in 1985 and commercially available from that summer into the early 1990s. The "ST" officially stands for "Sixteen/Thirty-two", which referred to the Motorola 68000's 16-bit external bus and 32-bit internals microcomputer, were "instant on" with the operating system executing from a ROM. Retrieval of the OS from secondary or tertiary store was thus eliminated as one of the characteristic operations for bootstrapping. To accommodate system customization for loading accessories and other support software automatically, as part of the boot process, the Atari's floppy drive was read for the additional components. There was a timeout delay, allowing time to manually insert a floppy, as the system searched for the extra components, which could be avoided by inserting a blank disk.
The Multics Multics was an extremely influential early time-sharing operating system. The project was started in 1964. The last known running Multics installation was shut down on October 30, 2000 at the Canadian Department of National Defense in Halifax, Nova Scotia, Canada operating system (c. 1967) had a boot command.[6][7] Multics documents also refer to 'boot tapes', but it is hard to determine exactly when that term was first used.
In the Unix Unix is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna. Today's Unix systems are split into various branches, developed over time by AT&T as well as various commercial vendors and non-profit operating system, the earliest reference for 'boot' is probably in The Unix Programmer's Manual, first edition 1971.11.03[8].
The bootstrap concept was used in the IBM 701 computer (1952–1956) which had a "load button" ["load" button?] which initiated reading of the first 36-bit word from a punched card in a card reader, or from a magnetic tape unit, or magnetic drum unit (predecessor of the magnetic hard disk drive). The left 18-bit half-word was then executed as an instruction which read additional words into memory.[9]
Boot loader
A computer's central processor can only execute program code found in Read-Only Memory (ROM) and Random Access Memory (RAM). Modern operating systems and application program code and data are stored on nonvolatile data storage devices, such as hard disk drives Host adapter of system, in PCs typically integrated into motherboard. via one of:, CD A Compact Disc is an optical disc used to store digital data. It was originally developed to store sound recordings exclusively, but later it also allowed the preservation of other types of data. Audio CDs have been commercially available since October 1982. In 2010, they remain the standard physical storage medium for audio, DVD DVD, also known as Digital Video Disc or Digital Versatile Disc, is an optical disc storage media format, and was invented and developed by Philips, Sony, Toshiba, and Time Warner in 1995. Its main uses are video and data storage. DVDs are of the same dimensions as compact discs , but are capable of storing more than six times as much data, flash memory cards A memory card or flash card is an electronic flash memory data storage device used for storing digital contents. They are commonly used in many electronic devices, including digital cameras, mobile phones, laptop computers, MP3 players, and video game consoles. They are small, re-recordable, and they can retain data without power (like an SD card Secure Digital is a non-volatile memory card format developed by Matsushita, SanDisk, and Toshiba for use in portable devices. Today it is widely used in digital cameras, handheld computers, PDAs, Media Players, mobile phones, GPS receivers, and video game consoles. Standard SD card capacities range from 4 MB to 4 GB, and for high capacity SDHC), USB flash drive A USB flash drive consists of a flash memory data storage device integrated with a USB 1.1 or 2.0 interface. USB flash drives are typically removable and rewritable, and much smaller than a floppy disk. Most weigh less than 30 g (1 oz). Storage capacities in 2010 can be as large as 256 GB with steady improvements in size and price per capacity, and floppy disk A floppy disk is a data storage medium that is composed of a disk of thin, flexible magnetic storage medium encased in a square or rectangular plastic shell. When a computer is first powered on, it does not have an operating system in ROM or RAM. The computer must initially execute a small program stored in ROM along with the bare minimum of data needed to access the nonvolatile devices from which the operating system programs and data are loaded into RAM Random-access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order (i.e., at random). "Random" refers to the idea that any piece of data can be returned in a constant time, regardless of its physical location and whether or not it is related to the.
The small program that starts this sequence of loading into RAM, is known as a bootstrap loader In computing, bootstrapping is a technique by which a simple computer program activates a more complicated system of programs. In the start up process of a computer system, a small program such as BIOS, initializes and tests the hardware, peripherals and external memory devices are connected, then loads a program from one of them and passes, bootstrap or boot loader. This small boot loader 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 sequentially load one after the other in a process of chain loading Chain loading is a method used by computer programs to replace the currently executing program with a new program, using a common data area to pass information from the current program to the new program. It occurs in several areas of computing.
Early computers (such as the PDP-1 The PDP-1 was the first computer in Digital Equipment Corporation's PDP series and was first produced in 1960. It is famous for being the computer most important in the creation of hacker culture at MIT, BBN and elsewhere. The PDP-1 was also the original hardware for playing history's first computerized video game, Steve Russell's Spacewar! through PDP-8 The PDP-8 was the first successful commercial minicomputer, produced by Digital Equipment Corporation in the 1960s. DEC introduced it on 22 March 1965, and sold more than 50,000 systems, the most of any computer up to that date. It was the first widely sold computer in the DEC PDP series of computers (the PDP-5 was not originally intended to be a and early models of the PDP-11 The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corp. from 1970 into the 1990s. Though not explicitly conceived as a successor to DEC's PDP-8 computer in the PDP series of computers (both product lines lived in parallel for more than 10 years), the PDP-11 replaced the PDP-8 in many real-time applications. It had several) had a row of toggle switches on the front panel to allow the operator to manually enter the binary The binary numeral system, or base-2 number system, represents numeric values using two symbols, 0 and 1. More specifically, the usual base-2 system is a positional notation with a radix of 2. Owing to its straightforward implementation in digital electronic circuitry using logic gates, the binary system is used internally by all modern computers boot instructions into memory before transferring control to the CPU The Central Processing Unit or the processor is the portion of a computer system that carries out the instructions of a computer program, and is the primary element carrying out the computer's functions. This term has been in use in the computer industry at least since the early 1960s . The form, design and implementation of CPUs have changed. The boot loader would then read in either the second-stage boot loader (called Binary Loader of paper tape Punched tape or paper tape is a largely obsolete form of data storage, consisting of a long strip of paper in which holes are punched to store data. It was widely used during much of the twentieth century for teleprinter communication, and later as a storage medium for minicomputers and CNC machine tools with checksum A checksum or hash sum is a fixed-size datum computed from an arbitrary block of digital data for the purpose of detecting accidental errors that may have been introduced during its transmission or storage. The integrity of the data can be checked at any later time by recomputing the checksum and comparing it with the stored one. If the checksums), or the operating system from an outside storage medium such as paper tape Punched tape or paper tape is a largely obsolete form of data storage, consisting of a long strip of paper in which holes are punched to store data. It was widely used during much of the twentieth century for teleprinter communication, and later as a storage medium for minicomputers and CNC machine tools, punched card A punched card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions. Now almost an obsolete recording medium, punched cards were widely used throughout the 19th century for controlling textile looms and in the late 19th and early 20th century for operating fairground, or a disk drive Disk storage or disc storage is a general category of storage mechanisms, in which data are digitally recorded by various electronic, magnetic, optical, or mechanical methods on a surface layer deposited of one or more planar, round and rotating platters. A disk drive is a device implementing such a storage mechanism with fixed or removable media;.
Pseudo Pseudocode is a compact and informal high-level description of a computer programming algorithm that uses the structural conventions of a programming language, but is intended for human reading rather than machine reading. Pseudocode typically omits details that are not essential for human understanding of the algorithm, such as variable-assembly code Assembly languages are a type of low-level languages for programming computers, microprocessors, microcontrollers, and other integrated circuits. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware for the bootloader might be as simple as the following eight instructions:
0: set the P register to 8 1: check paper tape reader ready 2: if not ready, jump to 1 3: read a byte from paper tape reader to accumulator 4: if end of tape, jump to 8 5: store accumulator to address in P register 6: increment the P register 7: jump to 1
A related example is based on a loader for a 1970's Nicolet Instrument Corporation minicomputer A minicomputer is a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems (mainframe computers) and the smallest single-user systems (microcomputers or personal computers). The class at one time formed a distinct group with its own hardware and operating systems, but the. Note that the bytes of the second-stage loader are read from paper tape in reverse order.
0: set the P register to 106 1: check paper tape reader ready 2: if not ready, jump to 1 3: read a byte from paper tape reader to accumulator 4: store accumulator to address in P register 5: decrement the P register 6: jump to 1
The length of the second stage loader is such that the final byte overwrites location 6. After the instruction in location 5 executes, location 6 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 the hardware of the time, which in this case was an ASR-33 teletype A teleprinter is a now largely obsolete electromechanical typewriter that can be used to communicate typed messages from point to point and point to multipoint over a variety of communications channels that range from a simple electrical connection, such as a pair of wires, to the use of radio and microwave as the transmission medium. They could.
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 bootload 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 bootload 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 The Central Processing Unit or the processor is the portion of a computer system that carries out the instructions of a computer program, and is the primary element carrying out the computer's functions. This term has been in use in the computer industry at least since the early 1960s . The form, design and implementation of CPUs have changed executing software contained in ROM (for example, the BIOS In IBM PC Compatible computers, the basic input/output system , also known as the System BIOS, is a de facto standard defining a firmware interface of an IBM PC The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981. It was created by a team of engineers and designers under the direction of Don Estridge of the IBM Entry Systems Division in Boca Raton,) at a predefined address (some CPUs, including the Intel x86 series The 8086 is a 16-bit microprocessor chip designed by Intel, which gave rise to the x86 architecture; development work on the 8086 design started in the spring of 1976 and the chip was introduced to the market in the summer of 1978. The Intel 8088, released in 1979, was a slightly modified chip with an external 8-bit data bus (allowing the use of 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 A boot sector is a sector of a hard disk, floppy disk, or similar data storage device that contains code for booting programs stored in other parts of the disk) of the most promising device.
Boot loaders may face peculiar constraints, especially in size; for instance, on the IBM PC and compatibles, the first stage of boot loaders located on hard drives must fit into the first 446 bytes The byte is a unit of digital information in computing and telecommunications. It is an ordered collection of bits, in which each bit denotes the binary value of 1 or 0. Historically, a byte was the number of bits (typically 5, 6, 7, 8, 9, or 16) used to encode a single character of text in a computer and it is for this reason the basic (or 440 bytes if Windows NT or above has to be supported because NT put 6 byte disk-signature starting from offset 440) of the Master Boot Record A master boot record , or partition sector, is the 512-byte boot sector that is the first sector ("LBA Sector 0") of a partitioned data storage device such as a hard disk. (The boot sector of a non-partitioned device is a Volume Boot Record. These are usually different, although it is possible to create a record that acts as both; it is, in order to leave room for the 64-byte partition table and the 2-byte 0xAA55 'signature', which the BIOS requires for a proper boot loader.
Some operating systems, most notably pre-1995 Macintosh The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a graphical user interface rather than a command-line interface systems from Apple Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh computers, the iPod, the iPhone and the iPad. Apple software includes the Mac OS X operating system; the iTunes media browser; the iLife suite, 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 bootload 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 bootloader 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 was Apple Computer’s implementation of the Unix operating system for some of their Macintosh computers. The later versions of A/UX ran on the Macintosh II, Quadra and Centris series of machines as well as the SE/30. A/UX was first released in 1988, with the final version (3.1.1) released in 1995. A/UX required a 68k-based Macintosh with an Unix Unix is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna. Today's Unix systems are split into various branches, developed over time by AT&T as well as various commercial vendors and non-profit implementation and copied by various freeware operating systems and BeOS Personal Edition 5 BeOS is an operating system for personal computers which began development by Be Inc. in 1991. It was first written to run on BeBox hardware. BeOS was optimized for digital media work and was written to take advantage of modern hardware facilities such as symmetric multiprocessing by utilizing modular I/O bandwidth, pervasive multithreading,.
The Atari ST The Atari ST is a home/personal computer that was released by Atari Corporation in 1985 and commercially available from that summer into the early 1990s. The "ST" officially stands for "Sixteen/Thirty-two", which referred to the Motorola 68000's 16-bit external bus and 32-bit internals also had its operating system in ROM but, by inserting a cartridge with the Macintosh system ROM in the game slot and turning the Atari on, it could "natively boot" the Macintosh operating system. The Atari ST The Atari ST is a home/personal computer that was released by Atari Corporation in 1985 and commercially available from that summer into the early 1990s. The "ST" officially stands for "Sixteen/Thirty-two", which referred to the Motorola 68000's 16-bit external bus and 32-bit internals hardware was designed so the cartridge slot could provide native program execution for gaming purposes as a holdover from Atari's legacy making electronic games.
Common primary boot loaders
- NTLDR NTLDR is the boot loader for all releases of Microsoft's Windows NT operating system up to and including Windows XP and Windows Server 2003. NTLDR is typically run from the primary hard disk drive, but it can also run from portable storage devices such as a CD-ROM, USB flash drive, or floppy disk. NTLDR can also load a non NT-based operating (Windows)
- FreeBSD boot0
- Chameleon
- grub GNU GRUB is a boot loader package from the GNU Project. GRUB (shortened form of GNU GRUB) is the reference implementation of the Multiboot Specification, which enables a user to have multiple operating systems on their computer, and choose which one to run when the computer starts. GRUB can be used to select from different kernel images available
Second-stage boot loader
The small program is most often not itself an operating system, but only a second-stage boot loader, such as GRUB, BOOTMGR, Syslinux, LILO or NTLDR. It will then be able to load the operating system properly, and finally transfer execution to it. The operating system will initialize itself, and may load device drivers that are needed for the normal operation of the OS. After that it starts loading normal system programs.
Many bootloaders (like GRUB, BOOTMGR, LILO, and NTLDR) can be configured to give the user multiple booting choices. These choices can include different operating systems (for 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) or some standalone program that can function without an operating system, such as memory testers (e.g., memtest86+) or even games.[10] Usually a default choice is preselected with a time delay during which you can press a key to change the choice, after which 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. Typical modern personal computers boot in about one minute (of which about 15 seconds are taken by a power-on self test (POST) and a preliminary boot loader, and the rest by loading the operating system and other software. Time spend after the operating system loading can be considerably shortened by bringing the system with all cores at once, as with coreboot[11] in as little as 3 seconds[12], whereas large servers may take several minutes to boot and start all their services.
Many embedded systems must boot immediately. For example, waiting a minute for a digital television or sat-nav to start is generally unacceptable. Therefore such devices have software system in ROM or flash memory so the device can begin functioning immediately. For these types of embedded system little or no loading is necessary, since 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, each phase loading a more complex version of itself, until finally the operating system and other software are loaded and ready to execute. Because operating systems are designed as if they never start or stop, bootload processes sometimes load the operating system, configure themselves as a mere process within that system, and then irrevocably transfer control to the operating system. The bootload process then terminates normally as any other process would, and the user need not have any awareness of the bootload.
Network booting
Main article: Network bootingMost computers are also capable of booting over a computer network. In this scenario, the operating system is stored on the disk of a server, and certain parts of it are transferred to the client using a simple protocol such as the Trivial File Transfer Protocol. After these parts have been transferred, the operating system then takes over control of the booting process.
Boot devices (IBM PC)
- see also: System partition and boot partition
The boot device is the device from which the operating system is loaded. A modern PC BIOS supports booting from various devices, typically a local hard disk drive (or one of several partitions on such a disk), an optical disc drive, a USB device (flash drive, hard disk drive, optical disc drive, etc.), a flash memory card such as an SD card in a multi-media card slot, or a network interface card (using PXE). Older, less common bootable devices include floppy disk drives, SCSI devices, Zip drives, and LS-120 drives.
Typically, the BIOS will allow the user to configure a boot order. If the boot order is set to "firstly, the DVD drive; secondly, the hard disk drive", then the BIOS 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 drive.
For example, on a PC with Windows XP installed on the hard drive, the user could set the boot order to that given above, and then insert a GNU/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 - the user choosing which operating system to start after the computer has performed its Power On Self Test. In this example of dual booting, the user chooses by inserting or removing the CD from the computer, but it is more common to choose which operating system to boot by selecting from a menu using the computer keyboard. (Typically F11 or ESC)
Boot sequence on standard PC (IBM-PC compatible)
Upon starting, a personal computer's x86 CPU runs the instruction located at the memory location CS:IP F000:FFF0 of the BIOS, which is located at the 0xFFFF0 address. This memory location is close to the end of the 1MB of system memory accessible in real mode. It typically contains a jump instruction that transfers execution to the location of the BIOS start-up program. This program runs a power-on self test (POST) to check and initialize required devices. The BIOS goes through a pre-configured list of non-volatile storage devices ("boot device sequence") until it finds one that is bootable. A bootable device is defined as one that can be read from, and the last two bytes of the first sector contain the word 0xAA55 (also known as the boot signature).
A hex dump of FreeBSD's boot0 MBROnce the BIOS has found a bootable device it loads the boot sector to hexadecimal Segment:Offset address 0000:7C00 or 07C0:0000 (maps to the same ultimate address) and transfers execution to the boot code. In the case of a hard disk, this is referred to as the master boot record (MBR) and is often not operating system specific. The conventional MBR code checks the MBR's partition table for a partition set as bootable (the one with active flag set)[13]. If an active partition is found, the MBR code loads the boot sector code from that partition and executes it. The boot sector is often operating-system-specific; however, in most operating systems its main function is to load and execute the operating system kernel, which continues startup. 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.
Some systems (particularly newer Macintoshes) use Intel's proprietary EFI. Also coreboot allows a computer to boot without having an over-complicated firmware/BIOS constantly running in system management mode. The legacy 16-bit BIOS interfaces are required by certain x86 operating systems, such as Windows. However most boot loaders have 16-bit support for these legacy BIOS systems.[14][15][16]
Award BIOS during booting. BIOS is dated to 1997Most PCs, if a BIOS chip is present, will show a screen detailing the BIOS chip manufacturer, copyright held by the chip's manufacturer and the ID of the chip at startup. At the same time, it also shows the amount of computer memory available and other pieces of information about the computer.
Other kinds of boot sequences
Some other processors have other kinds of boot modes:
1) There are alternative techniques for booting CPUs and microcontrollers:
- Some modern CPUs and microcontrollers (for example, 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 hard 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, 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. This technique 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.
- 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 can't 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.
2) Most digital signal processors have the following boot modes:
- Serial mode boot
- Parallel mode boot, such as the host port interface (HPI boot)
It is worthwhile mentioning that 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. An interesting thing here is that 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, etc 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.
Initial Program Load
In IBM mainframe systems, the boot process is known as IPL (Initial Program Load). The term was coined by IBM for the design of the System/360 and continues to be used in those environments today[17]. In systems that share the System/360 heritage—and in some that have been inspired by it, including smaller systems such as the IBM 1130—IPL is a hardware function, not a program run on the system itself. In its basic form, an IPL is initiated by the computer operator by selecting the (three hexadecimal digit) device address using rotary switches on the computer console, followed by pressing the 'IPL' button. This reads a tiny program (typically 24-bytes) entirely implemented in hardware, consisting merely of a few channel command words initiating a read operation from the designated device. Usually this is a disk drive, but exactly the same procedure is also used to boot from other devices, such as tape drives, or even card readers, in a device-independent manner, allowing e.g. the installation of an operating system on a pristine computer from a magnetic distribution tape. Of course, the disk, tape or card deck must contain a special program to load the actual operating system into memory, a multi-stage procedure similar to most booting procedures (see elsewhere in this article).
The System/360 IPL function reads 24 bytes from an operator-specified or pre-configured device into memory starting at location zero. The second and third groups of eight bytes are treated as Channel Command Words (CCWs) to continue loading the startup program. When the I/O channel commands are complete, the first group of eight bytes is then loaded into the Program Status Word (PSW) register and the startup program begins execution at the designated location.[17]
A noteworthy variation of this is found on the Burroughs 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 even in cases of gross CPU failure.
Rebooting
Hard reboot
A hard reboot (also known as a cold reboot, cold boot or cold start) is when power to a computer is cycled (turned off and then on) or a special reset signal to the processor is triggered. This restarts the computer without first performing any shut-down procedure. (With many operating systems, especially those using disk caches, after a hard reboot the filesystem may be in an "unclean" state, and an automatic scan of on-disk filesystem structures will be done before normal operation can begin.) It may be caused by power failure, be done by accident, or be done deliberately as a last resort to forcibly retrieve the system from instances of a system freeze, critical error or virus-inflicted DoS attack. It can also be used by intruders to access cryptographic keys from RAM, in which case it is called a cold boot attack.[18] The attack relies on the data remanence property of DRAM and SRAM to retrieve memory contents which remain readable in the seconds to minutes after power has been removed.[18]
Soft reboot
A soft reboot (also known as a warm reboot) is restarting a computer under software control, without removing power or (directly) triggering a reset line. It usually, though not always, refers to an orderly shutdown and restarting of the machine.
The Control-Alt-Delete key combination on the original IBM PC was designed to allow a soft reboot for a quicker and more convenient restart than powering the computer completely down then back up.[citation needed]
This kind of reboot will not usually reset the hard disks, so that they have time to update their write cache to permanent storage. Hard disks will also keep their configuration (like C/H/S adjustments, HPA, DCO, internal passwords...) over these reboots.
The Linux kernel has optional support for the kexec system call, which transfers execution to a new kernel and skips hardware or firmware reboot. The entire process is done independent of the system firmware. Note that the kernel being executed does not have to be a Linux kernel.
Random reboot
Random reboot is a non-technical term referring to an unintended (and often undesired) reboot for which the cause is not immediately evident to the user. Such reboots may occur due to a multitude of software and hardware problems, such as triple faults.
As Windows XP/Vista has an option to skip its Blue Screen of Death (BSOD) (Blue Screens of Death in Windows XP/Vista offer no option of pressing any key and seeing if the computer continues functioning) and immediately restarts the computer in the event of a fatal error, users can be mistaken in thinking a Windows XP/Vista computer suffers from random rebooting.
Errors
In Windows, when an error occurs in the boot process, a Blue Screen of Death or a Black Screen of Death may occur. On Unix and Unix-like operating systems, such as Linux and Mac OS X, a fatal error in the boot process may cause a kernel panic.
Quick boot
Several devices are available that enable the user to "quick-boot" to a usually Linux-powered OS for various simple tasks such as Internet access (Splashtop, Latitude ON etc.).[19][20][21][22][23][24][25][26][27]
See also
| Look up bootup in Wiktionary, the free dictionary. |
| Wikimedia Commons has media related to: Booting |
- Boot disk, Live CD, Live USB
- Boot sector
- Comparison of boot loaders
- PC booter
- Extensible Firmware Interface (EFI)
- Linux startup process
- Microreboot
- Multi boot
- Network booting
- RedBoot open source boot loader for embedded systems
- U-Boot yet another open source boot loader for embedded systems.
- Pspboot boot loader for embedded systems based on the Texas Instruments AR7 chipset
- Adam2 alternative boot loader for embedded systems based on the Texas Instruments AR7 chipset
- Windows NT Startup Process
- Windows Vista startup process (Boot Configuration Data, Windows Boot Manager)
- Bootkit
References
- ^ Phrase Finder
- ^ bootstrap, Dictionary.com
- ^ bootstrap, The free dictionary.com
- ^ Oxford English Dictionary. Oxford University.
- ^ Van Vleck, Tom. "Glossary of Multics acronyms and terms". http://www.landley.net/history/mirror/unix/multics/mgb.html. Retrieved 2008-01-07.
- ^ Bensoussan, A. (1967-06-30). "BC.4.01 System Initialization and Bootload". Multics System Programmer's Manual. http://www.multicians.org/mspmtoc.html.
- ^ Dunten, S. D.; T. H. Van Vleck (1968-05-03). "BV.1.01 BOS Bootload: boot". Multics System Programmer's Manual. http://www.multicians.org/mspmtoc.html.
- ^ Thompson, Ken; Dennis Ritchie (1971-11-03). The Unix Programmer's Manual (1st edition ed.). http://www.cs.bell-labs.com/who/dmr/1stEdman.html. Retrieved 2008-01-07.
- ^ From Gutenberg to the Internet, Jeremy M. Norman, 2005, page 436, ISBN 0-930405-87-0
- ^ http://www.coreboot.org/Tint
- ^ google tech talks - coreboot (aka LinuxBIOS): The Free/Open-Source x86 Firmware
- ^ http://www.coreboot.org/FAQ#Why_do_we_need_coreboot_for_cluster_maintainance.3F
- ^ Note that per MBR specifications the active partition is not required to be primary, however the boot sector code may require it to be in order to work properly.
- ^ "Intel Platform Innovation Framework for EFI". Intel. http://www.intel.com/technology/framework/. Retrieved 2008-01-07.
- ^ Intel Macintosh computers all have firmware with compatibility mode for legacy BIOS operations
- ^ http://www.coreboot.org/OpenBIOS
- ^ a b (PDF) z/Architecture Principles of Operation. IBM. September 2005. Chapter 17. http://publibz.boulder.ibm.com/epubs/pdf/a2278324.pdf. Retrieved 2007-04-14.
- ^ a b J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, and Edward W. Felten (2008-02-21). Lest We Remember: Cold Boot Attacks on Encryption Keys. Princeton University. http://citp.princeton.edu/memory/. Retrieved 2008-02-22.
- ^ http://www.linuxdevices.com/news/NS2560585344.html
- ^ http://www.phoronix.com/scan.php?page=article&item=splashtop_voodoo&num=1
- ^ http://www.youtube.com/watch?v=InUpF5Uetfc
- ^ http://www.gadgets-reviews.com/voodoo-envy-133.html
- ^ http://www.voodoopc.com/
- ^ http://www.linuxdevices.com/news/NS7654890804.html
- ^ http://www.youtube.com/watch?v=y40Z1mvGOt8
- ^ http://www.linuxdevices.com/news/NS5185504436.html
- ^ http://www.linuxdevices.com/news/NS8282586707.html?kc=rss
Further reading
| This article's use of external links may not follow Wikipedia's policies or guidelines. Please improve this article by removing excessive and inappropriate external links or by converting links into footnote references. (January 2010) |
- How Computers Boot Up
- Practical bootloader tutorial for ATmega microcontrollers
- Booting with Grub at OSDEV Community
- A tutorial on writing hello world bootloader
- Booting From Scratch
- FreeBSD
- Nathan Boeger and Mana Tominaga. "Bootstrapping FreeBSD". http://www.khmere.com/freebsd_book/html/ch02.html.
- Linux
- Roberto Alsina. "The Linux boot process unveiled". http://lateral.netmanagers.com.ar/stories/23.html.
- Greg O'Keefe. "From power up to Linux bash prompt HOWTO". http://www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html.
- Chao-Kuei Hung 洪朝貴. "Mk-boot-usb: a Script to Create Multiple-Bootable USB Keys". http://people.ofset.org/~ckhung/p/mk-boot-usb/.
- Mac OS X
- Windows
- Jonathan de Boyne Pollard (1996). "The DOS and DOS/Windows boot processes". Frequently Given Answers. http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/dos-windows-boot-process.html.
- "Multi-booting, running different versions of Windows on your PC". http://www.pcnineoneone.com/howto/multiboot1.html.
- "Windows Mobile 5.0 Soft Reset". http://www.pocketpcfaq.com/faqs/5.0/reset.htm.
- "Pocket PC devices hard reset and soft reset". http://www.hardreset.eu/index_en.html.
- Multibooting:
|
Design News
They informed us that the machine would not boot , that the service person had been called, but the machine would likely remain down for the next two weeks. ...
mhafizji
hu, 15 Jul 2010 12:59:22 GM
my friends pc is not starting its an amd x3 and asus m2n mobo, suddenly sme days earlier it did not start and then the whole process started even an.
Q. My PC (loaded with XP pro takes very long time during booting to turn on the monitor (after it goes blank) and present the logon screen. My monitor is OK. How can i fix this problem?
Asked by Farzia - Wed Sep 30 06:01:47 2009 - - 6 Answers - 0 Comments
A. If it worked ok upto now but has just started to take a long time to load It's not a Windows problem - because it's not getting to Windows If I was guessing - and I am - Your Hard Disk Drive (HDD) is failing. Back up your data and get your computer checked out. Dying HDD's die quickly after showing a problem.
Answered by Cassandra - Wed Sep 30 06:34:06 2009

