In IBM PC Compatible computers, the basic input/output system (BIOS), also known as the System BIOS, is a de facto standard defining a firmware interface.
The primary function of the BIOS is to load and start an operating system. When the PC starts up, the first job for the BIOS is to initialize and identify system devices such as the video display card, keyboard and mouse, hard disk, CD/DVD drive and other hardware Dell Studio XPS 1640 Battery.
The BIOS then locates software held on a peripheral device (designated as a 'boot device'), such as a hard disk or a CD, and loads and executes that software, giving it control of the PC. This process is known as booting, or booting up, which is short for bootstrappingDell Vostro 1710 Battery.
BIOS software is stored on a non-volatile ROM chip built into the system on the mother board. The BIOS software is specifically designed to work with the particular type of system in question, including having a knowledge of the workings of various devices that make up the complementary chipset of the system Dell KM958 battery.
In modern computer systems, the BIOS chip's contents can be rewritten allowing BIOS software to be upgraded.
A BIOS will also have a user interface (or UI for short). Typically this is a menu system accessed by pressing a certain key on the keyboard when the PC starts. In the BIOS UI, a user can Dell Studio 1555 battery:
- configure hardware
- set the system clock
- enable or disable system components
- select which devices are eligible to be a potential boot device Sony VGP-BPS13 battery
- set various password prompts, such as a password for securing access to the BIOS UI functions itself and preventing malicious users from booting the system from unauthorized peripheral devices Sony VGP-BPS13/B battery.
The BIOS provides a small library of basic input/output functions used to operate and control the peripherals such as the keyboard, text display functions and so forth, and these software library functions are callable by external software Sony VGP-BPS13/S battery.
In the IBM PC and AT, certain peripheral cards such as hard-drive controllers and video display adapters carried their own BIOS extension ROM, which provided additional functionality. Operating systems and executive software, designed to supersede this basic firmware functionality, will provide replacement software interfaces to applications Sony VGP-BPS13A/B battery.
The role of the BIOS has changed over time; today BIOS is a legacy system, superseded by the more complex EFI (EFI), but BIOS remains in widespread use, and EFI booting has only been supported in Microsoft OS products supporting GPTand Linux Kernels 2.6.1 and greater buildsSony VGP-BPS13B/B battery .
BIOS is primarily associated with the 16-bit, 32-bit, and the beginning of the 64-bit architecture eras, while EFI is used for some newer 32-bit and 64-bit architectures. Today BIOS is primarily used for booting a system and for video initialization (in X.org); but otherwise is not used during the ordinary running of a system Sony VGP-BPL9 battery,
while in early systems (particularly in the 16-bit era), BIOS was used for hardware access – operating systems (notably MS-DOS) would call the BIOS rather than directly accessing the hardware. In the 32-bit era and later, operating systems instead generally directly accessed the hardware using their own device drivers Sony VGP-BPS13B/B battery.
However, the distinction between BIOS and EFI is rarely made in terminology by the average computer user, making BIOS a catch-all term for both systems.
The term first appeared in the CP/M operating system, describing the part of CP/M loaded during boot time that interfaced directly with the hardware (CP/M machines usually had only a simple boot loader in their ROM) Sony VGP-BPL15 battery.
Most versions of DOS have a file called "IBMBIO.COM" or "IO.SYS" that is analogous to the CP/M BIOS.
Among other classes of computers, the generic terms boot monitor, boot loaderor boot ROMwere commonly used. Some Sun and PowerPC-based computers use Open Firmware for this purpose Dell Inspiron E1505 battery.
There are a few alternatives for Legacy BIOS in the x86 world: Extensible Firmware Interface, Open Firmware (used on the OLPC XO-1) and coreboot.
IBM PC-compatible BIOS chips
In principle, the BIOS in ROM was customized to the particular manufacturer's hardware, allowing low-level services (such as reading a keystroke or writing a sector of data to diskette) to be provided in a standardized way to the operating system Dell Latitude E6400 battery.
For example, an IBM PC might have had either a monochrome or a color display adapter, using different display memory addresses and hardware - but the BIOS service to print a character on the screen in text mode would be the same HP Pavilion dv6000 Battery.
Prior to the early 1990s, BIOSes were stored in ROM or PROM chips, which could not be altered by users. As its complexity and need for updates grew, and re-programmable parts became more available, BIOS firmware was most commonly stored on EEPROM or flash memory devices SONY VAIO VGN-FZ Battery.
According to Robert Braver, the president of the BIOS manufacturer Micro Firmware, Flash BIOSchips became common around 1995 because the electrically erasable PROM (EEPROM) chips are cheaper and easier to program than standard erasable PROM (EPROM) chips SONY VAIO VGN-FZ18 Battery.
EPROM chips may be erased by prolonged exposure to ultraviolet light, which accessed the chip via the window. Chip manufacturers use EPROM programmers (blasters) to program EPROM chips. Electrically erasable (EEPROM) chips come with the additional feature of allowing a BIOS reprogramming via higher-than-normal amounts of voltage SONY VAIO VGN-FZ21E Battery.
BIOS versions are upgraded to take advantage of newer versions of hardware and to correct bugs in previous revisions of BIOSes.
Beginning with the IBM AT, PCs supported a hardware clock settable through BIOS. It had a century bit which allowed for manually changing the century when the year 2000 happened
. Most BIOS revisions created in 1995 and nearly all BIOS revisions in 1997 supported the year 2000 by setting the century bit automatically when the clock rolled past midnight, December 31, 1999.
The first flash chips were attached to the ISA bus SONY VAIO VGN-FW21E Battery.
Starting in 1997, the BIOS flash moved to the LPC bus, a functional replacement for ISA, following a new standard implementation known as "firmware hub" (FWH). In 2006, the first systems supporting a Serial Peripheral Interface (SPI) appeared, and the BIOS flash moved again SONY VAIO VGN-NR11S/S Battery.
The size of the BIOS, and the capacities of the ROM, EEPROM and other media it may be stored on, has increased over time as new features have been added to the code; BIOS versions now exist with sizes up to 16 megabytes SONY VAIO VGN-NR11M/S Battery.
Some modern motherboards are including even bigger NAND Flash ROM ICs on board which are capable of storing whole compact operating system distribution like some Linux distributions. For example, some recent ASUS motherboards included SplashTop Linux embedded into their NAND Flash ROM ICs SONY VAIO VGN-NR11Z/S Battery.
Flashing the BIOS
In modern PCs the BIOS is stored in rewritable memory, allowing the contents to be replaced or 'rewritten'. This rewriting of the contents is sometimes termed 'flashing'. This is done by a special program, usually provided by the system's manufacturerSONY VAIO VGN-NR11Z/T Battery.
A file containing such contents is sometimes termed 'a BIOS image'. A BIOS might be reflashed in order to upgrade to a newer version to fix bugs or provide improved performance or to support newer hardware, or a reflashing operation might be needed to fix a damaged BIOS. A Bios may also be "flashed" by putting the file on the root of a usb drive and bootingSony VAIO VGN-FZ21E Battery.
BIOS chip vulnerabilities
An American Megatrends BIOS registering the “Intel CPU uCode Error” while doing POST, most likely a problem with the POST.
EEPROM chips are advantageous because they can be easily updated by the user; hardware manufacturers frequently issue BIOS updates to upgrade their products, improve compatibility and remove bugsSony VAIO VGN-FW21E Battery.
However, this advantage had the risk that an improperly executed or aborted BIOS update could render the computer or device unusable. To avoid these situations, more recent BIOSes use a "boot block"; a portion of the BIOS which runs first and must be updated separately Sony VAIO VGN-NR11S/S Battery.
This code verifies if the rest of the BIOS is intact (using hash checksums or other methods) before transferring control to it. If the boot block detects any corruption in the main BIOS, it will typically warn the user that a recovery process must be initiated by booting from removable media (floppy, CD or USB memory) so the user can try flashing the BIOS againSony VAIO VGN-NR11Z/S Battery.
Some motherboards have a backupBIOS (sometimes referred to as DualBIOS boards) to recover from BIOS corruptions.
Some BIOS chips allow overclocking, an action in which the CPU is adjusted to a higher clock rate than its factory preset Sony VAIO VGN-NR11M/S Battery.
Overclocking may, however, seriously compromise system reliability in insufficiently cooled computers and generally shorten component lifespan. Overclocking, incorrectly performed, may also cause component temperatures to rise so quickly that they destroy themselves Sony VAIO VGN-NR11Z/T Battery.
There are at least three known BIOS attack viruses, two of which were for demonstration purposes.
The first was a virus which was able to erase Flash ROM BIOS content, rendering computer systems unstable. CIH, also known as "Chernobyl Virus", appeared for the first time in mid-1998 and became active in April 1999 SONY VAIO VGN-FZ180E Battery.
It affected systems' BIOS's and often they could not be fixed on their own since they were no longer able to boot at all. To repair this, Flash ROM IC had to be removed from the motherboard to be reprogrammed elsewhere SONY VAIO VGN-FZ220E Battery.
Damage from CIH was possible since the virus was specifically targeted at the then widespread Intel i430TX motherboard chipset, and the most common operating systems of the time were based on the Windows 9x family allowing direct hardware access to all programs SONY VAIO VGN-FZ340E Battery.
Modern systems are not vulnerable to CIH because of a variety of chipsets being used which are incompatible with the Intel i430TX chipset, and also other Flash ROM IC types. There is also extra protection from accidental BIOS rewrites in the form of boot blocks which are protected from accidental overwrite or dual and quad BIOS equipped systems which maySONY VAIO VGN-FZ430E Battery,
in the event of a crash, use a backup BIOS. Also, all modern operating systems like Linux, Mac OS X, Windows NT-based Windows OS like Windows 2000, Windows XP and newer, do not allow user mode programs to have direct hardware access. As a result, as of 2008, CIH has become essentially harmless SONY VAIO VGN-FZ460E Battery,
at worst causing annoyance by infecting executable files and triggering alerts from antivirus software. Other BIOS viruses remain possible, however ; since Windows users without Windows Vista/7's UAC run all applications with administrative privileges, a modern CIH-like virus could in principle still gain access to hardware SONY VAIO VGN-FZ480E Battery.
Black Hat 2006
The second one was a technique presented by John Heasman, principal security consultant for UK based Next-Generation Security Software at the Black Hat Security Conference (2006), where he showed how to elevate privileges and read physical memory, using malicious procedures that replaced normal ACPI functions stored in flash memory SONY VAIO VGN-FZ4000 Battery.
Persistent BIOS Infection
The third one, known as "Persistent BIOS infection", was a method presented in CanSecWest Security Conference (Vancouver, 2009) and SyScan Security Conference (Singapore, 2009) where researchers Anibal Sacco and Alfredo Ortega, from Core Security Technologies SONY VAIO VGN-FZ31E Battery,
demonstrated insertion of malicious code into the decompression routines in the BIOS, allowing for nearly full control of the PC at every start-up, even before the operating system is booted.
The proof-of-concept does not exploit a flaw in the BIOS implementation, but only involves the normal BIOS flashing proceduresSONY VAIO VGN-FZ31B Battery.
Thus, it requires physical access to the machine or for the user on the operating system to be root. Despite this, however, researchers underline the profound implications of their discovery: “We can patch a driver to drop a fully working rootkit. We even have a little code that can remove or disable antivirus SONY VAIO VGN-FZ31J Battery.”
Firmware on adapter cards
A computer system can contain several BIOS firmware chips. The motherboard BIOS typically contains code to access hardware components absolutely necessary for bootstrapping the system SONY VAIO VGN-FZ31M Battery,
such as the keyboard (either PS/2 or on a USB human interface device), and storage (floppy drives, if available, and IDE or SATA hard disk controllers). In addition, plug-in adapter cards such as SCSI, RAID,Network interface cards, and video boards often include their own BIOS (e.g. Video BIOS) SONY VAIO VGN-FZ31Z Battery,
complementing or replacing the system BIOS code for the given component. (This code is generally referred to as an option ROM.) Even devices built into the motherboard can behave in this way; their option ROMs can be stored as separate code on the main BIOS flash chip, and upgraded either in tandem with, or separately to, the main BIOS SONY VAIO VGN-FZ38M Battery.
An add-in card usually only requires an option ROM if it:
- Needs to be used before the operating system can be loaded (usually this means it is required in the bootstrapping process), and
- Is too sophisticated or specific a device to be handled by the main BIOS SONY VGP-BPS8 Battery
Older PC operating systems, such as MS-DOS (including all DOS-based versions of Microsoft Windows), and early-stage bootloaders, may continue to use the BIOS for input and output. However, the restrictions of the BIOS environment means that modern OSes will almost always use their own device drivers to directly control the hardware SONY VGP-BPS13/S Battery.
Generally, these device drivers only use BIOS and option ROM calls for very specific (non-performance-critical) tasks, such as preliminary device initialization.
In order to discover memory-mapped ISA option ROMs during the boot process SONY VGP-BPS13A/B Battery,
PC BIOS implementations scan real memory from 0xC0000 to 0xF0000 on 2 KiB boundaries, looking for a ROMsignature: 0xAA55 (0x55 followed by 0xAA, since the x86 architecture is little-endian). In a valid expansion ROM, this signature is immediately followed by a single byte indicating the number of 512-byte blocks it occupies in real memory SONY VGP-BPS13B/B Battery.
The next byte contains an offset describing the option ROM's entry point, to which the BIOS immediately transfers control. At this point, the expansion ROM code takes over, using BIOS services to register interrupt vectors for use by post-boot applications, provide a user configuration interface, or display diagnostic information SONY VGP-BPS13A/S Battery.
There are many methods and utilities for examining the contents of various motherboard BIOS and expansion ROMs, such as Microsoft DEBUG or the UNIX dd.
BIOS boot specification
If the expansion ROM wishes to change the way the system boots (such as from a network device or a SCSI adapter for which the BIOS has no driver code) SONY VGP-BPS13AS Battery,
it can use the BIOS Boot Specification(BBS) API to register its ability to do so. Once the expansion ROMs have registered using the BBS APIs, the user can select among the available boot options from within the BIOS's user interface Dell Inspiron 1320n Battery.
This is why most BBS compliant PC BIOS implementations will not allow the user to enter the BIOS's user interface until the expansion ROMs have finished executing and registering themselves with the BBS API Dell Inspiron 1464 Battery.
Changing role of the BIOS
Some operating systems, for example MS-DOS, rely on the BIOS to carry out most input/output tasks within the PC. A variety of technical reasons makes it inefficient for some recent operating systems written for 32-bit CPUs such as Linux and Microsoft Windows to invoke the BIOS directly Dell Inspiron 1564 Battery.
Larger, more powerful, servers and workstations using PowerPC or SPARC CPUs by several manufacturers developed a platform-independent Open Firmware (IEEE-1275), based on the Forth programming language. It is included with Sun's SPARC computers, IBM's RS/6000 line, and other PowerPC CHRP motherboards Dell Inspiron 1764 Battery.
Later x86-based personal computer operating systems, like Windows NT, use their own, native drivers which also makes it much easier to extend support to new hardware, while the BIOS still relies on a legacy 16-bit real mode runtime interface Dell Studio 1450 Battery.
There was a similar transition for the Apple Macintosh, where the system software originally relied heavily on the ToolBox—a set of drivers and other useful routines stored in ROM based on Motorola's 680x0 CPUs. These Apple ROMs were replaced by Open Firmware in the PowerPC Macintosh, then EFI in Intel Macintosh computersDell Studio 1457 Battery.
Later BIOS took on more complex functions, by way of interfaces such as ACPI; these functions include power management, hot swapping, thermal management. To quote Linus Torvalds, the task of BIOS is "just load the OS and get the hell out of there" Dell Latitude D610 Battery.
However BIOS limitations (16-bit processor mode, only 1 MiB addressable space, PC AT hardware dependencies, etc.) were seen as clearly unacceptable for the newer computer platforms. Extensible Firmware Interface (EFI) is a specification which replaces the runtime interface of the legacy BIOS Toshiba NB100 Battery.
Initially written for the Itanium architecture, EFI is now available for x86 and x86-64 platforms; the specification development is driven by The Unified EFI Forum, an industry Special Interest Group.
Linux has supported EFI via the elilo and GRUB boot loaders Toshiba Satellite M65 battery.
The Open Source community increased their effort to develop a replacement for proprietary BIOSes and their future incarnations with an open sourced counterpart through the coreboot and OpenBIOS/Open Firmware projects. AMD provided product specifications for some chipsets, and Google is sponsoring the project Toshiba Satellite M60 battery.
Motherboardmanufacturer Tyan offers coreboot next to the standard BIOS with their Opteron line of motherboards. MSI and Gigabyte Technology have followed suit with the MSI K9ND MS-9282 and MSI K9SD MS-9185 resp. the M57SLI-S4 modelsDell Latitude D830 Battery.
Some BIOSes contain a "SLIC", a digital signature placed inside the BIOS by the manufacturer, for example Dell. This SLIC is inserted in the ACPI table and contains no active code. Computer manufacturers that distribute OEM versions of Microsoft Windows and Microsoft application software can use the SLIC to authenticate licensing to the OEM Windows Installation disk and/or systemrecovery disc containing Windows software Dell Latitude D620 Battery.
Systems having a SLIC can be activated with an OEM Product Key, and they verify an XML formatted OEM certificate against the SLIC in the BIOS as a means of self-activating. If a user performs a fresh install of Windows, they will need to have possession of both the OEM key and the digital certificate for their SLIC in order to bypass activation Dell Inspiron Mini 10 Battery;
in practice this is extremely unlikely and hence the only real way this can be achieved is if the user performs a restore using a pre-customised image provided by the OEM.
Recent Intel processors (P6 and P7) have reprogrammable microcode Sony VGN-FW11S Battery.
The BIOS may contain patches to the processor code to allow errors in the initial processor code to be fixed, updating the processor microcode each time the system is powered up. Otherwise, an expensive processor swap would be required Sony VGN-FW11M Battery.
For example, the Pentium FDIV bug became an expensive fiasco for Intel that required a product recall because the original Pentium did not have patchable microcode.
The BIOS business
The vast majority of PC motherboard suppliers license a BIOS "core" and toolkit from a commercial third-party, known as an "independent BIOS vendor" or IBV Sony VGN-FW139E/H battery.
The motherboard manufacturer then customizes this BIOS to suit its own hardware. For this reason, updated BIOSes are normally obtained directly from the motherboard manufacturer.
Major BIOS vendors include American Megatrends (AMI), Insyde Software, Phoenix Technologies and Byosoft Dell Latitude E5400 Battery.
Former vendors include Award Software and Microid Research which were acquired byPhoenix Technologies in 1998. Phoenix has now phased out the Award Brand name. General Software, which was also acquired by Phoenix in 2007, sold BIOS for Intel processor based embedded systems Dell Latitude E4200 Battery.
In computing, booting(also known as "booting up") is a bootstrapping process that starts operating systems when the user turns on a computer system. A boot sequenceis the initial set of operations that the computer performs when power is switched on. The boot loadertypically loads the main operating system for the computer Dell Inspiron 300M Battery.
The computer word boot is short for "bootstrap" (itself short for "bootstrap load"). The term bootstrap derives from the idiom: to pull oneself up by one's bootstraps Dell Vostro A840 Battery.
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 Dell Studio 1737 battery."
In computers in the 1950s, pressing a bootstrap button caused a hardwired program to read a bootstrap program from a punched card in a card reader, a magnetic tape in a tape drive, or a magnetic drum unit or magnetic disk drive, and then execute the loaded boot program Dell Inspiron E1505 battery,
which loaded a larger system of programs 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. For example, in the IBM 701 computer (1952–1956) which had a "load" button that initiated reading of the first 36-bit word from a punched card, a magnetic tape, or a magnetic drum unit Dell RM791 battery.
The left 18-bit half-word was then executed as an instruction, which read additional words into memory. Similarly, the IBM 1401 system (c. 1958) used a card reader to load application program from punched cards Dell XPS M1530 battery.
The 80 characters stored in each 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, as read in from the punched card Dell XPS M2010 battery.
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 Acer Aspire One battery.
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. Esentially, the process was one where each subsequent card was "bootstrapped" into memory by the prtevious punched card Toshiba Satellite P10 Battery.
The CDC 6600 (c. 1964) had a dead startpanel 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 SONY VGN-FZ210CE Battery.
The GE 645 (c. 1965) had a "BOOT" button. 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 Dell Precision M70 Battery.
Some machines, like the Atari ST 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 Toshiba Satellite L305 Battery.
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 diskToshiba Satellite T4900 Battery.
The Multics operating system (c. 1967) had a boot command. Multics documents also refer to "boot tapes," but it is hard to determine exactly when that term was first used.
In the Unix operating system, the earliest reference for "boot" is probably in The Unix Programmer's Manual, first edition 1971.11.03 Toshiba PA3399U-2BRS battery.
A computer's central processor can only execute program code found in read-only memory (ROM), random access memory (RAM) or an operator's console Toshiba Satellite A200 Battery.
Modern operating systems and application program code and data are stored on nonvolatile data storage devices, such as hard disk drives, CD, DVD, flash memory cards (like an SD card), USB flash drive, and floppy disk. When a computer is first powered on, it usually does not have an operating system in ROM or RAM Toshiba Satellite 1200 Battery.
The computer must execute a relatively 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 Toshiba Satellite M300 Battery.
The small program that starts this sequence of loading into RAM is known as a bootstrap loader, bootstrapor boot loader. This small boot loader program's only job is to load other data and programs which are then executed from RAM SONY VGP-BPS13A/Q Battery.
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 SONY VGP-BPS13A/Q Battery.
Early computers (such as the IBM 650, DEC PDP-1 through PDP-8 and early models of the PDP-11) had a row of dials or toggle switches on the front panel to allow the operator to manually enter the boot instructions into memory before transferring control to the CPU, or to directly pass an instruction to the CPU SONY VGP-BPS13B/Q Battery.
The boot loader would then read in either the second-stage boot loader (called Binary Loaderof paper tape with checksum), or the operating system from an outside storage medium such as paper tape, punched card, or a disk drive SONY VGP-BPS13B/Q Battery.
Pseudo-assembly code for the bootloader 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 SONY VGP-BPS13/Q Battery
- Read a byte from paper tape reader to accumulator
- If end of tape, jump to 9
- Store accumulator to address in P register
- Increment the P register SONY VGP-BPS13/Q Battery
- Jump to 2
A related example is based on a loader for a 1970's Nicolet Instrument Corporation minicomputer. Note that the bytes of the second-stage loader are read from paper tape in reverse order SONY VGP-BPS21A/B Battery.
- Set the P register to 106
- Check paper tape reader ready
- If not ready, jump to 2 SONY VGP-BPS21/S Battery
- Read a byte from paper tape reader to accumulator
- Store accumulator to address in P register
- Decrement the P register
- Jump to 2 SONY VGP-BPS21B Battery
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 SONY VGP-BPS21A Battery.
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 SONY VGP-BPS21 Battery.
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 Sony VGP-BPS21A/B Battery.
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 Sony VGP-BPS21/S Battery
(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 Sony VGP-BPS21A Battery.
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 executing software contained in ROM Sony VGP-BPS21 Battery
(for example, the BIOS of an IBM PC) at a predefined address (some CPUs, including the Intel 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 Sony Vaio PCG-5G2L Battery.
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 (or 440 bytes if Windows NT or above has to be supported because NT put 6 byte disk-signature starting from offset 440)Sony Vaio PCG-5G3L Battery
of the Master Boot Record, 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 systems from Apple Sony Vaio PCG-5J1L Battery,
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 Sony Vaio PCG-5K2L Battery.
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 Unix implementation and copied by various freeware operating systems and BeOS Personal Edition 5 Sony Vaio PCG-5J2L Battery.
The Atari ST also had its operating system in ROM but, by inserting the Spectre GCR 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 system Sony Vaio PCG-5K1L Battery.
The Atari ST 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.
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 Sony Vaio PCG-6S2L Battery.
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 Sony Vaio PCG-6S3L Battery.
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) Sony Vaio PCG-6V1L Battery,
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 (see List of PC Booter games) Sony Vaio PCG-6W1L Battery.
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 Sony Vaio PCG-6W2L Battery.
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 Sony Vaio PCG-6W3L Battery.
Time spent after the operating system loading can be considerably shortened by bringing the system with all cores at once, as with coreboot in as little as 3 seconds, whereas large servers may take several minutes to boot and start all their servicesSony Vaio PCG-7111L Battery.
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 Sony Vaio PCG-7112L Battery.
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 Sony Vaio PCG-7113L Battery.
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 Sony Vaio PCG-7133L Battery.
The bootload process then terminates normally as any other process would, and the user need not have any awareness of the bootload.
Most computers are also capable of booting over a computer network Sony Vaio PCG-7Z2L Battery.
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 Sony Vaio PCG-8Y1L Battery.
Boot devices (IBM PC)
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) Sony Vaio PCG-8Y2L Battery,
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 (usingPXE). Older, less common bootable devices include floppy disk drives, SCSI devices, Zip drives, and LS-120 drives Sony Vaio PCG-8Z1L Battery.
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 Sony Vaio PCG-8Z2L Battery.
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 Sony VAIO PCG-5G2L Battery.
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 keyboardSony VAIO PCG-5G3L Battery.
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 linear address Sony VAIO PCG-5J1L Battery.
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 Sony VAIO PCG-5K2L Battery.
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) Sony VAIO PCG-5J2L Battery.
Once 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 Sony VAIO PCG-5K1L Battery.
The conventional MBR code checks the MBR's partition table for a partition set as bootable(the one with activeflag set). 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 Sony VAIO PCG-5L1L Battery;
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 kernelSony VAIO PCG-6S2L Battery.
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 Sony VAIO PCG-6S3L Battery.
However most boot loaders have 16-bit support for these legacy BIOS systems.
Most 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 Sony VAIO PCG-6V1L Battery .
At the same time, it also shows the amount of computer memory available and other pieces of information about the computer.
Power On Self Test (POST)
The computer power-on self-test tests the computer to make sure it meets the necessary system requirements and that all hardware is working properly before starting the remainder of the boot process Sony VAIO PCG-6W1L Battery.
If the computer passes the POST, the computer may have a single beep (with some computer BIOS suppliers it may beep twice) as the computer starts and the computer will continue to start normally.
Other kinds of boot sequences Sony VAIO PCG-6W2L Battery
Some other processors have other kinds of boot modes:
1) There are alternative techniques for booting CPUs and microcontrollers Sony VAIO PCG-6W3L Battery:
- 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 Sony VAIO PCG-7111L Battery.
- 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 Sony VAIO PCG-7112L Battery.
- 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 Sony VAIO PCG-7113L Battery.
- 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 Sony VAIO PCG-7Z1L Battery.
- 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 Sony VAIO PCG-7Z2L Battery.
- 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) Sony VAIO PCG-8Y1L Battery.
- 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 WD passport essential (500GB/640GB).
- 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 WD passport essential (250GB/320GB).
- 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 WD passport essential SE (750GB/1TB.
2) Most digital signal processors have the following boot modes:
- Serial mode boot
- Parallel mode boot, such as the host port interface (HPI boot) WD passport elite(250GB/320GB)
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 WD passport elite(500GB/640GB).
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 s
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 WD passport studio for Mac(500GB/640GB).
Many FPGA chips load their configuration from an external serial EEPROM ("configuration ROM") on power-up.
Initial Program Load
In current IBM mainframe systems, the boot process is known as Initial Program Load(IPL) WD Elements series(250GB/320GB).
The term was coined by IBM for the design of the System/360 and continues to be used in those environments today. 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 WD Elements SE(500GB/640GB).
In the smaller S/360 processors, 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 LOADbutton WD Elements SE(750GB/1TB).
The IPL function in the System/360 and its successors 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 WD Elements desktop(500GB/640GB).
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. The boot device is usually a disk drive, but exactly the same procedure is also used to boot from other devices WD Elements desktop(750GB/1TB),
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 WD Elements desktop(1.5 TB/2TB),
a multi-stage procedure similar to most booting procedures (see elsewhere in this article).
A noteworthy variation of this is found on the Burroughs B1700 where there is neither a bootstrap ROM nor a hardwired IPL operation WD passport essential SE (750GB/1TB)--USB 3.0 .
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 WD passport essential (500GB/640GB).
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.
There is some ambiguity in the nomenclature for rebooting, as discussed below WD passport for Mac(320GB/500GB).
A hard reboot(also known as a cold reboot, cold bootor cold start) is when power to a computer is abruptly turned off, then turned back on. This starts the computer without first performing any shut-down procedure (With many operating systems, especially those using disk caches WD passport for Mac(640GB/1TB),
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 My book essential 4 generation (640GB/1TB),
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. 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 WD My book essential 4 generation( 1.5TB/2TB).
However, other types of reset also disrupt the operating system in the same manner as power loss:
- Reset and System Reset buttons
- Initial Program Load(IPL) without prior OS shutdown
- POR on IBM mainframes WD My book elite( 1TB/1.5TB)
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 orderlyshutdown and restarting of the machine WD My book studio(1TB/2TB).
The Control-Alt-Delete key combination on the original PC from Sphere 1 was designed to allow a soft reboot reducing wear on the hardware. This kind of reboot will not usually reset the hard disks, so that they have time to update their write cache to permanent storage WD My book essential 4 generation( 1.5TB/2TB).
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 WD My book elite(640GB/2TB).