BIOS
In computing, the Basic Input-Output System or BIOS is computer interface code that locates and loads the operating system into RAM. It provides low-level communication, operation and configuration to the hardware of a system, which at a minimum drives the keyboard and provides primitive output to a display. The BIOS is usually written in Assembly language native to the processor.
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 a simple boot loader in ROM, and nothing else.) Most versions of MS-DOS have a file called "IBMBIO.COM" or "IO.SYS" that is analogous to the CP/M disk BIOS.
While the name BIOS is an acronym, it is also a play on the Greek word βιος (bios) life.
Boot BIOS
Since the introduction of the IBM PC compatible in August 1981, BIOS code issues the first commands to the system during power-up or the boot process, such as where to find and how to load the operating system software (most typically Microsoft Windows or Linux). PC BIOS code also contains diagnostics to assure critical hardware components, such as memory, keyboard, disk drive, I/O ports etc., are operational, and properly initialized. Nearly all BIOS implementations can optionally execute a setup program interfacing the CMOS Memory; this memory holds user-customizable configuration data (time, date, hard drive details, etc) accessed by BIOS code. The 80x86 source code for early PC and AT BIOS was included with the IBM Technical Reference Manual.
In most modern BIOS implementations, one can select what boots first: CD, Hard disk, floppy disk, flash driver and so on. This is particularly useful for booting operating systems (i.e. Linux, specially Knoppix and Gnoppix) from a CD, without installing it in the hard disk, and for selecting the order of testing for the presence of bootable media.
Some BIOS systems allows the user select the operating system to load (i.e. load Linux from the second hard disk).
BIOS as Firmware
BIOS is sometimes called firmware because it is an integral part of the system hardware. Before 1990 or so BIOSs were held on ROM chips that could not be altered. As their complexity and the need for updates grew, BIOS firmware is stored on EEPROM or flash memory devices that can be upgraded by the user. However, a failure in updating a BIOS can render a computer unusable. To avoid BIOS corruption, some new motherboards have a backup BIOS.
Firmware on Adapter Cards
A computer system may contain several BIOS firmware chips. In addition to the boot BIOS, which contains code to access fundamental hardware components such as the keyboard or the floppy drive, plug-in adapter cards such as SCSI or USB hard disk adapters or video boards may include their own BIOS, complementing or replacing the system BIOS code for the given component.
To find these memory mapped expansion ROMs during boot, PC BIOS implementations scan real memory from 0xC8000 to 0xF0000 on 2 kilobyte boundaries looking for a 0x55 0xaa signature, which is immediately followed by a byte indicating the number of 512 byte blocks the expansion ROM occupies in real memory. The BIOS then jumps to the offset immediately after the size byte, at which point the expansion ROM code takes over and uses the BIOS services to provide a user configuration interface, register interrupt vectors for use by post-boot applications, or display diagnostic information.
The BIOS Boot Specification
If the expansion ROM wishes to change the way the system boots (such as from a network or a SCSI adapter the BIOS has no driver code for), 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. 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.
See also : machine code, INT, microchip, BIOS boot devices.
External Links
Referenced By
ACPI | Acronym/List | Advanced Technology Attachment | Application-programming interface | Application Program Interface | Application Programming Interface | Application Programming Interfaces | BOHICA | Binary-coded decimal | Binary Coded Decimal | Boot process | Booting | Bootstrap program | C128 | CPU architecture | Central Processing Unit | Clean room design | Clean room implementation | Cleanroom | Clone | Cntrl alt del | Commodore 128 | Computer and IT acronyms | Computer surveillance | Control-Alt-Delete | Control alt delete | Ctrl alt del | David Bradley | Debug | Debugging | Device driver | Disk format | Doctor V64 | EIDE | EPROM | Easter egg (computing) | Easter egg (hidden) | Easter eggs (computing) | Emulation | Emulator | Emulators | Enhanced IDE | FDISK | Firebird Web Browser | Firefox | Firmware | Front-side bus | Front side bus | Hard-disk | Hard disc | Hard disk | Hard disk drive | Hard disk drive functioning | Hard drive | Harddisc | Harddisk | Host adapter | IBMPC | IBM PC | IBM PC AT | IBM PC Compatible | IBM PC XT | IBM Personal Computer | IBM compatible | IBM compatible PC | Integrated Drive Electronics | Keydrive | Lilo | Linux Loader | List of acronyms | List of computing and IT abbreviations | List of computing and IT acronyms | List of general acronyms | Master Boot Record | Monitor program | Motherboard | Mozilla Firebird | Mozilla Firefox | P-ATA | PATA | PC-Engine | PCI bus | PC Engine | PC clone | PC compatible | Partition sector | Peripheral Component Interconnect | Phoenix | Phoenix (browser) | Phoenix web browser | Phoinix | READ ONLY MEMORY | Read-only | Read-only memory | Read-only storage | Read only | Real mode | Realmode | Restart | Reverse engineer ...
|