BIOS

from Wikipedia, the free encyclopedia
Flash ROM with Award BIOS
AMIBIOS

The BIOS [ /ˈbaɪ.oʊs/ ] (from English "basic input / output system" ) is the firmware for x86 PCs, which was originally introduced by IBM in 1981 as an IBM PC and compatible . It is stored in a non-volatile memory on the motherboard of a PC and is executed immediately after it is switched on. One of the tasks of the BIOS is to first make the PC functional and then to initiate the start of an operating system .

The correspondence of this acronym with the ancient Greek word βίος (from the Latin alphabet bios , in German life ) is an allusion to the fact that a computer is practically breathed into life with this software.

Functionally, the BIOS has been replaced by its designated successor Extensible Firmware Interface , or EFI for short, since 1998 . This firmware, originally developed for the Itanium by Intel, has been jointly developed by several companies since 2006 as the Unified Extensible Firmware Interface , or UEFI for short. UEFI solves the BIOS since about 2010 gradually decreased, but can BIOS compatibility layer provide that English Compatibility Support Module or short CSM, which it remains compatible full BIOS. Due to this smooth transition, UEFI is often also referred to as UEFI BIOS and its firmware setup is often (still) referred to as BIOS setup. According to Intel, however, the CSM, i.e. the BIOS mode and thus the compatibility, should be omitted by the manufacturers by 2020 at the latest.

Task of the BIOS

A BIOS solves two problems that occur when a PC is cold started :

  • On the one hand, it solves a classic chicken-and-egg problem through what is known as “ bootstrapping ” : software is usually stored on a data carrier, which must first be read into the main memory of the computer when it is started. To read in the data carrier, however, the CPU again requires software. Earlier computers and computing systems solved this problem by always putting the CPU into pause mode after switching on the computer. Before the computer could be started, minimal software (the bootloader ) had to be loaded into the main memory manually or with the help of special peripherals . Often it was not even necessary to load the bootloader when starting the computer, because the core memory , which was widespread in the 1960s and early 1970s - in contrast to the semiconductor memory commonly used today - did not lose its content when it was switched off ( persistence memory) and the programs in the main memory therefore did mostly just had to be restarted or could even be continued. In today's PCs, the loading program is part of the BIOS, which is stored in a special memory module, the EPROM or, in newer models, usually in a flash memory, the content of which is retained even without a power supply. Both are completely independent of a power supply and are also suitable for the firmware of portable devices. This means that manual entry of a charging program is no longer necessary.
  • On the other hand, different hardware each requires special control software ( driver software ) and the associated configuration . In the past, an operating system had to be specially tailored to each variant of each computer type in order to run on it. By outsourcing this special control software to the BIOS of the respective computer, it became possible to run the same operating system software on different computers. The BIOS thus acts as a hardware abstraction layer (HAL) according to the newer way of speaking . However, almost all modern operating systems use their own drivers, mainly because those from the BIOS are not available in Protected and Long Mode . In one of these, however, almost all modern operating systems run, among other things to be able to manage a larger RAM and to easily organize multitasking .

BIOS on the IBM-compatible PC

Functions

With more modern hardware, the BIOS has gained new functions over time. Not all of the points mentioned below were already carried out by the original BIOS on the first IBM PC . The further development of the hardware has over time (as of 2018 the BIOS concept is already at least 43 years old) led to a number of iterative , incompatible additions, which increasingly have the character of "messing around" and apply to 64-bit systems reach their limits. Therefore a BIOS successor was developed in the form of Extensible Firmware Interface (EFI or UEFI).

A ROM on which a BIOS is stored

Essentially, before the operating system starts, the BIOS performs the following functions:

An important part of the hardware initialization of a plug-and-play BIOS is the configuration and checking of built-in plug-in cards.

For this purpose , information on the status and configuration of ISA , PCI and AGP plug-in cards and the corresponding resource allocation are recorded in a special memory area of ​​the BIOS, the Extended System Configuration Data (ESCD) area . The information in the ESCD area is compared with the actual status of the system during the boot process and updated if necessary. The operating system accesses the information in the ESCD area and can save changes to the plug-and-play resource allocation there in order to prevent changes by the BIOS at the next start.

Main menu of the "BIOS Setup" award
  • Prompt for entering a BIOS password (if configured)
  • Prompt for entering a hard disk password (if configured)
  • Representation of a start screen
  • Ability to call up a BIOS configuration menu ("BIOS Setup")
  • Calling of BIOS expansions of individual subsystems that are either accommodated on plug-in cards or integrated directly on the mainboard, e.g. B .:
  • Determine which data carrier can and should be booted from
  • Loading the boot sector ; mostly this is a boot loader .

The program then takes over control of the computer in the loaded boot sector. In most cases, the included boot loader loads and starts the operating system installed on the corresponding data carrier either immediately or offers a menu for selecting an operating system ( boot manager ). With classic operating systems running in real mode (e.g. DOS ), the BIOS is also used in further operation. For the operating system it takes over the communication with various hardware, e.g. B .:

Other modern types of hardware are not served by the BIOS. To control a mouse , for example, a special hardware driver is required under DOS .

Newer, driver-based operating systems such as Linux or Windows do not use these BIOS functions. You load a special driver for each type of hardware. However, at the beginning of your start-up process you have to use the bootloader to access the BIOS functions to control the hard disks in order to load your hard disk driver.

BIOS settings

To access the BIOS setup program, a certain key or key combination must be pressed when the computer is switched on . A certain jumper must be set for a few mainboards .

The settings are saved in a CMOS memory , which is supplied with power via the mainboard battery even without a mains connection. This memory is often combined with the system's real-time clock , as this also always has to be supplied with power. In the event of difficulties, the BIOS usually offers the option of setting the standard settings of the computer or BIOS manufacturer. If it is no longer possible to get into the setup program (e.g. because the computer no longer boots), the settings can usually be reset using a jumper on the mainboard (on all newer mainboards, the power supply must be switched off completely). If this is not possible, the CMOS memory can be cleared by removing the battery. The latter, however, takes some time until the capacitors are also discharged.

safety

The BIOS is the second level of security that can prevent unauthorized access to a computer after it has been physically secured with locks or the like. A password query for starting the computer can be set up in the BIOS setup. This does not represent a complete backup of the system, since the settings can be leveraged more or less easily by manipulating the motherboard with physical access to the computer . In addition, this fuse only affects the motherboard on which the ROM containing the BIOS is located. If this is exchanged or the hard disk (s) of the system are installed in another computer, all data can be accessed without any problems. In addition, the manufacturers have usually set up a fixed (recovery, master or supervisor) password in order to be able to restore access if the user has forgotten his own password.

Update the BIOS

With old mainboards (with 286 to 486 processor) the option “SHADOW BIOS MEMORY” is available in the BIOS. In doing so, the BIOS is copied in its own procedure into the more accessible RAM (temporary shadow copy until the computer is switched off). Since the majority of the BIOS has been packed (from the later 486 / Pentium 1) and a cheaper BIOS chip is sufficient, this option is no longer available, as the BIOS has to be unpacked into RAM in any case. Manufacturers like Award used the LHA format to pack their BIOS .

On modern motherboards, the BIOS is stored in a rewritable memory (more precisely: EEPROM , mostly flash memory ). It can therefore be replaced by newer versions without removing this chip ("flashing"). However, since a computer cannot function without a full BIOS, this process always poses a certain risk. If it is interrupted, for example by a power failure , the chip on which the BIOS is stored usually has to be replaced. As an alternative, various institutions on the Internet offer reprogramming of the chip. Even soldered-on flash memories are only a minor problem for specialist staff. So-called serial flash memories are being used more and more frequently on new boards, which in the event of a fault sometimes allow the board to be reprogrammed via SPI- BUS.

Boot block

Over time, American Megatrends , Award Software , Phoenix and other manufacturers developed “BootBlock” / recovery BIOS areas that are normally no longer overwritten during a flash process. If the flash process failed, the “BootBlock” / recovery BIOS starts and enables booting from the floppy disk. With some BIOS variants, a special recovery CD / floppy disk can even be created, which automatically restores the BIOS by setting a jumper, even if the BIOS is defective. No user input or graphical output is required for this, as these usually no longer work anyway if the BIOS is defective.

Some motherboards offer a so-called DualBIOS . In the event of an error, the second (still intact) BIOS can take over the startup process and the change can be reversed. This can be a lifeline when flashing the BIOS if the newly installed BIOS version does not work. Furthermore, various BIOS settings can be loaded with a DualBIOS.

Since it is already possible to update a Flash BIOS while Windows is running, this opens up new avenues for virus infestation. If, for example, a rootkit were installed in this way , it could seal itself off much more efficiently against detection and deletion. In addition, a crash of the operating system during flashing can make the PC unbootable (see above).

BIOS manufacturer

A selection of manufacturers of BIOSes for IBM-compatible PCs:

  • American megatrends
  • Phoenix / Award - Award and Phoenix merged in 1998. Award is supplied by the company as a desktop product. The Phoenix product line, on the other hand, is used for servers and laptops.
  • MR BIOS
  • ATI Technologies
  • IBM
  • Insyde

Comparable concepts

BIOS on CP / M computers

The concept and the term "BIOS" (as Basic Input / Output System) go back to Gary Kildall , the inventor and developer of the operating system CP / M (Control Program for Microcomputers) and was used by him in 1975 with this meaning. Before the introduction of the IBM PC, CP / M had a comparable degree of market penetration among small computers at that time, as later PC DOS or MS-DOS on IBM-compatible PCs . However, since before the establishment of IBM-compatible PCs there was no hardware standard valid beyond the manufacturer's limits and each manufacturer of small computers pursued completely different concepts, it was necessary to adapt the hardware-specific parts of the operating system specifically for each system.

While it was initially a conceptual subdivision, the hardware-specific parts were isolated from the hardware-independent parts in the architecture of the system during the development of CP / M 1.3 and 1.4 (1977). Suggestions for a development in this direction also go back to Glenn Ewing, who adapted the CP / M-BIOS for IMSAI to the IMSAI 8080. From Release 1.4, Digital Researchs CP / M consisted of two superimposed layers, the hardware-specific BIOS and the built-on, but completely hardware-independent BDOS (Basic Disk Operating System). The applications used system calls made available to them by the BDOS, and in order to carry out the various tasks, the BDOS called the hardware-specific routines in the BIOS, which took over the hardware control. In this way, the applications remained portable across system boundaries. In order to offer CP / M for a new computer system, the respective manufacturer was able to license a template source code of the BIOS from Digital Research and adapt it according to their own ideas. The BDOS was usually only delivered as an object file and linked to it appropriately. In the ROM itself there was usually only an extremely rudimentary so-called monitor and boot loader, via which the generated CP / M image could be loaded into the memory from a medium such as a floppy disk or hard disk and started. In this way, CP / M was adapted to more than three thousand different systems and offered in the appropriate adaptations by the hardware manufacturers. Some CP / M descendants such as MP / M (Multi-tasking Program for Microcomputers), Concurrent CP / M 2.0-3.1 (CCP / M), Concurrent DOS 3.2-6.2 (CDOS), DOS Plus 1.2-2.1, FlexOS, Multiuser DOS 5.0-7.xx (MDOS), System Manager 7 and REAL / 32 7.xx also contain a XIOS (Extended Input Output System).

BIOS on MS-DOS-compatible computers

The MS-DOS or PC DOS operating system jointly developed by Microsoft and IBM was originally based very closely on the CP / M model, which is why there is also a division into a hardware-specific part, the so-called DOS-BIOS, and the hardware-independent DOS kernel. Unlike CP / M, however, the two parts were in separate files in MS-DOS IO.SYSand MSDOS.SYSwere called in PC DOS, however, IBMBIO.COMand IBMDOS.COM. The MS-DOS version with a DOS BIOS adapted to IBM PCs was called PC DOS, but other MS-DOS OEM versions - very similar to CP / M - were also included for dozens of non-IBM-compatible x86 systems which the DOS BIOS first had to be adapted to the respective target platform.

Even with the PC-DOS-compatible single-user operating system line DR DOS , which was split off at the beginning of 1988 from Digital Research's CP / M descendant Concurrent DOS 6.0, by robbing the system of its multitasking capabilities and the XIOS by an IBM-compatible DOS -BIOS has been replaced, there is the same division into DOS-BIOS ( DRBIOS.SYSor IBMBIO.COM) and the kernel, which is still called BDOS ( DRBDOS.SYSor IBMDOS.COM). In the beginning, BDOS 6.0 from DR DOS 3.31 was essentially a CP / M-like kernel with a DOS emulator PCMODE overlaid, but over time the internal functionality has become increasingly - and finally from BDOS 7.0 - also internally to DOS- Adapted to standards. This also applies to PalmDOS 1, Novell DOS 7, Caldera OpenDOS 7.01 and DR-DOS 7.02+.

The DOS-BIOS of IBM-compatible DOS editions only accessed the hardware via the ROM-BIOS or system BIOS built into the computer's ROM. As a result, minor differences in the hardware could already be encapsulated at the system BIOS level, so that no changes to the DOS BIOS were necessary in such cases. With the spread of applications that accessed the hardware directly without the operating system (and subsequently with IBM-compatible clones), adjustments to the DOS-BIOS became less and less necessary over the years, so that also MS-DOS later was only offered in a generic version that dealt with a few special cases and thus ran on most IBM-compatible computers.

The ROM-BIOS (and possibly parts of the operating system in the ROM) were sometimes also referred to as ROS (Resident Operating System) in Digital Research terminology.

XBIOS / TOS on the Atari ST

With the Atari ST , the entire TOS operating system , including the GEM graphical user interface originally developed by Digital Research, was housed in the ROM and was ready for operation almost immediately after switching on. The lowest layer of the operating system was referred to as BIOS, recognizable for the programmer as a collection of memory-resident functions. Overlying layers (also recognizable as such collections) were:

  • The GEMDOS (GEM Disk Operating System)
  • The VDI (Virtual Device Interface)
  • The AES (Application Environment Services)

The XBIOS (Extended Basic Input / Output System) was not a separate layer, but lay parallel to the BIOS on the same layer, whereby some functions of the XBIOS were located closer to the hardware.

Kickstart at the Commodore Amiga

The Amiga computers from Commodore require the so-called Kickstart as firmware . It fulfills all functions of a BIOS and also contains the kernel (exec) of the AmigaOS . The first models of the Amiga 1000 have after switching ( "cold start") nor by bootstrap - diskette with the kickstart versions start from 1.0 to 1.3. The kickstart is stored in the WOM , a special area of ​​the RAM , and secured against overwriting. After a reset ( warm start ) this is retained in the memory and does not need to be reloaded. This fact has the advantage that it can be updated to a newer version very quickly and easily. All later models, such as the Amiga 500 or the Amiga 2000 , have a ROM so that the version can only be changed by replacing the component. By using a “kickstart switcher”, however, you can switch between two ROMs with different kickstart versions before switching on. This has been particularly relevant since the introduction of Kickstart 2.0, which has compatibility problems with older programs, especially games. Owners of the "Amiga 500+", which is mainly designed for computer games in the home and uses Kickstart 2.0 as standard, are dependent on such a kickstart switcher for older games.

Open firmware

Originally for non-x86 computers (mainly SPARC and PowerPC ), several manufacturers (including Sun) defined the platform-independent open firmware approach (IEEE-1275) on a Forth basis. This is not only used in Sun's Sparc computers, but also in PowerPC-based computers from IBM and Apple as well as in CHRP computers from other manufacturers such as Genesi (with the Pegasos ). In 2006 almost all Open Firmware implementations were released under a BSD license. In laptop OLPC XO-1 (production from 2007) found OpenFirmware first time at the x86 - architecture . With OpenBIOS , a free implementation for x86 computers is also available, which can mainly be used for Forth programming due to a lack of operating system support.

Extensible firmware interface

At the end of the 1990s, Intel first wanted to switch from x86 to the Itanium architecture in the server area . In this, Intel replaced the BIOS, which was around 20 years old at the time, with the in-house development of the Extensible Firmware Interface , or EFI for short. At the same time, the x86 architecture was renamed IA-32 , which stood for "Intel Architecture 32-Bit", while the Itanium architecture was advertised by Intel as "Intel Architecture 64-Bit". But the switch to Itanium failed, among other things because AMD developed the extension called AMD64 for the x86 instruction set and thus made the "Intel Architecture 32-bit" a 64-bit system. Up until the mid-2000s, many 64-bit x86 servers were shipped and Intel was forced to make its own IA-32 processors 64-bit-capable as well - which meant direct competition to the Itanium architecture from in-house .

The first 64-bit x86 systems continued to use the BIOS, which was over 25 years old in the mid-2000s. In 2004, Intel therefore released EFI 1.1 for x86 and IA-32 under the name Tiano. In 2005, Intel placed the firmware under the control of a committee in which leading companies from the IT industry have since been involved and are responsible for the further development of EFI. The firmware was renamed Unified Extensible Firmware Interface , or UEFI for short.

In 2006 Apple was the first and only manufacturer of desktop PCs to use EFI: after leaving the PowerPC architecture to IA-32, Apple switched from the Open Firmware used on the PowerPC to EFI 1.1 from Intel, but with its own Mac -specific extensions. With the Compatibility Support Module , or CSM for short, contained in EFI, a PC operating system that requires a BIOS can also be started on an Intel Mac, which Apple officially enables for Windows via the (later) Boot Camp software .

UEFI was gradually introduced on x86 PCs from other manufacturers, so that PCs with AMD processors also offered UEFI as firmware. However, the operating system must also support UEFI or use the Compatibility Support Module , CSM, integrated in many UEFI implementations .

Linux was the first PC operating system that could start from EFI or UEFI. Microsoft wanted to introduce UEFI support for its desktop operating system with Windows Vista , but it was not until Service Pack 1 that UEFI support was added on the x64 version of Windows Vista. UEFI has finally established itself on the desktop since Windows 8 , but it always requires an x64 operating system. 32-bit versions of Windows still require a BIOS or CSM.

Windows requires UEFI version 2.0 and higher. EFI 1.1, as it is integrated in many Apple computers, is not suitable for the native UEFI operation of Windows. Apple's Mac EFI implementation contains some deviations from the UEFI specification.

On 64-bit PC systems, also known as x64, UEFI has been the standard since the mid-2010s.

Simple firmware interface

With the involvement of Intel in smartphone and MID technology, the Simple Firmware Interface (SFI) was developed. It is free of old and license fee-based PC BIOS patents. However, it therefore also requires newer operating systems specially adapted for SFI. SFI applies to Intel's Moorestown platform.

criticism

A firmware interface such as BIOS and UEFI is deeply anchored in the system and is therefore a potentially security-critical component.

Points that lead to a critical consideration of a manufacturer-dependent BIOS:

  • Proprietary code: Intentional or unintentional security gaps escape public control (possibility of spying, manipulation and industrial espionage ) - the NSA prepared a feasibility study for this in 2010.
  • The classification of the trustworthiness of software in the BIOS successor UEFI is solely subject to Microsoft.
  • There are only two BIOS manufacturers - both reside in the US and are subject to its regulations.
  • UEFI does not meet the computer security requirements of the German federal government.
  • Possible permanent implementation of usage restrictions, such as digital rights management .

Free BIOS alternatives

The various BIOS implementations of the PCs are usually proprietary software, which can harbor uncertainties: since the source code is not disclosed, security gaps are sometimes not recognized in time. A proprietary BIOS can also prevent the user from doing activities that would not pose a problem in terms of the hardware of the device: for example, the Xbox BIOS does not allow software to be started other than that approved by Microsoft .

It is possible to replace or overwrite the Flash ROM module (formerly: EPROM ) on which the BIOS is stored, for example to start the Linux kernel directly from the Flash without BIOS. The procedure, however, depends on the respective motherboard and is mainly used in industrial computers.

Projects with this goal include Coreboot (formerly LinuxBIOS), Libreboot (a Coreboot Fork without BLOBs ) or OpenBIOS - the latter, however, is an Open Firmware implementation.

Norms, standards, guidelines

Standard on the interaction of BIOS system start, initial program load and additional BIOS functions

The interaction of BIOS system start, initial program load and additional BIOS functions is regulated by the so-called "BIOS Boot Specification" of January 11, 1996, a standard developed by a company consortium.

In particular, this standard specifies the manner in which initial program load (bootstrapload) components that (continuing the BIOS system start) cause the respective operating systems to start up are identified by the BIOS and how these are specified by the computer user Priority (according to the so-called boot sequence ) an attempt is made to execute one or more of the respective components.

This standard also specifies, directly or indirectly, how an initial program loader (bootstrap loader) has to bring about behavior that is tailored to the BIOS and how the BIOS has to use the boot medium (hard disk, optical drive disk, USB stick, PCMCIA) Network card, Ethernet card or the like) for the loader.

The programming interface between BIOS management and boot management, the so-called "BIOS Boot Specification API", plays a role in the provision of boot mechanisms , whereby these mechanisms are usually implemented in hardware as well as software (provided that entire boot mechanisms are considered summarizes). In terms of hardware, such an implementation can be accomplished by adding additional BIOS functions, for example if the motherboard BIOS is expanded and / or partially replaced by additional add-in firmware BIOSes from network, SCSI or RAID adapters. In terms of software, such an implementation can be done by programming appropriate routines or drivers, provided that these can be accommodated in a memory- resident manner; Under certain conditions, initial program loaders or bootstrap loaders can also take on special functions or play a special role in the provision of unconventional boot mechanisms. When the computer is started up via a network card, most boot mechanisms are far more complicated than with the classic (simple) initial program load. This category includes, for example, the case that the computer startup is initiated by an external computer via the network (e.g. via a Fast Ethernet adapter) (see also Wake on LAN ). The motherboard BIOS, which usually does not have a driver code for booting via a specific network card, is supplemented by add-in firmware on the network card, taking into account the specifications of the BIOS Boot Specification API, so that a memory-resident routine in the service of the network card controls the boot mechanism redirect and register the network card as a selectable boot medium on the system. Once the network card boot option has been selected in the BIOS, the BIOS system start then changes to network communication in which information about boot server addresses is obtained and queries take place. This includes a kind of "standby" state of the computer, which can be started up at any time when triggered via the network. If the message is correct, the bootstrap loader will be downloaded to the RAM and executed.

See also

literature

  • Klaus Dembowski: BIOS and Troubleshooting. compact, complete, competent . Markt und Technik, Munich 2004, ISBN 3-8272-6547-9 .

Web links

Commons : BIOS  - collection of pictures, videos and audio files

Individual evidence

  1. BIOS Definition , the Linux Information Project, accessed online December 20, 2018
  2. Christof Windeck: Farewell to the PC BIOS. In: Heise online . June 3, 2011 . Retrieved March 14, 2020.
  3. Christof Windeck: Intel: UEFI-BIOS will lose BIOS compatibility in 2020. In: Heise online . 15th November 2017 . Retrieved March 14, 2020.
  4. Andreas Stiller: Processor Patches . In: Heinz Heise (Ed.): C't . No. 5 , 2001, p. 240 ( online [accessed November 21, 2015]).
  5. Heise news ticker on the risk of viruses due to BIOS reprogramming
  6. CP / M 1.x source code
  7. IMSAIs Joe Killian, Technical Development Manager at IMSAI, on Glenn Ewing's influence on CP / M for the IMSAI 8080
  8. Simple Firmware ( Memento from January 31, 2011 in the Internet Archive )
  9. Ralf Hutter, Manfred Kloiber , Peter Welchering : "Coreboot" protects against surveillance. Deutschlandfunk - Computer und Kommunikation , April 18, 2015, accessed on April 25, 2015 .
  10. BIOS Boot Specification, Version 1.01 from January 11, 1996 ( Memento from September 19, 2015 in the Internet Archive )