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.
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 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.
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.
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 hard disk adapters or video boards may include their own BIOS, complementing or replacing the system BIOS code for the given component.