BIOS, (an acronym for Basic Input/Output System and also known as the System BIOS, ROM BIOS or PC BIOS) is non-volatile firmware used to perform hardware initialization during the booting process (power-on startup), and to provide runtime services for operating systems and programs. The BIOS firmware comes pre-installed on a personal computer’s system board, and it is the first software to run when powered on.
The BIOS in modern PCs initializes and tests the system hardware components, and loads a boot loader from a mass memory device which then initializes an operating system. In the era of MS-DOS, the BIOS provided a hardware abstraction layer for the keyboard, display, and other input/output (I/O) devices that standardized an interface to application programs and the operating system. More recent operating systems do not use the BIOS after loading, instead accessing the hardware components directly.
What is BIOS?
The main functionality of the Basic Input/Output System (BIOS) is to perform the initial hardware checks after the computer is powered on and start up the operating system.
Device Drivers and System BIOS are the two resources that can be used by the OS to communicate with hardware.
The Microsoft Windows OS utility MSINFO32.EXE can be used to view basic information about computer’s BIOS.
POST (Power On Self Test) refers to a series of basic hardware diagnostic tests performed by the startup BIOS after the computer is powered on.
Flashing the BIOS
In modern PCs the BIOS is stored in rewritable memory, allowing the contents to be replaced and modified. This rewriting of the contents is sometimes termed flashing, based on the common use of a kind of EEPROM known technically as “flash EEPROM” and colloquially as “flash memory”. It can be done by a special program, usually provided by the system’s manufacturer, or at POST, with a BIOS image in a hard drive or USB flash drive. 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
Updating the BIOS
BIOS updates are performed in order to:
- Repair damaged BIOS
- Provide support for new types of attached hardware
- Fix known programming errors discovered in the current BIOS version
EEPROM and Flash Memory are two types of BIOS that can be updated without removing the BIOS chip from a motherboard.
Power failure during BIOS upgrade can be the cause of irreversible damage to the computer system.
Aborted BIOS update could also render the computer unusable.
After a normal system shutdown, when the computer is turned off, contents of the memory used to store BIOS settings are retained.
After replacing a modular hardware component inside computer case, the updated information about specific parameters of the new device can be stored in Flash Memory and CMOS RAM
In order to retain its configuration data, CMOS RAM requires constant supply of electricity which is provided by the CMOS battery
CMOS battery is a source of power for an RTC when the computer is turned off.
In order to work, an integrated component such as Network Interface Card (NIC) on a newly assembled computer system may need to be first enabled in the advanced BIOS settings menu.
BIOS CMOS Setup Utility
The CMOS setup utility can be accessed by pressing the key set by the motherboard manufacturer for accessing CMOS setup utility during boot.
CMOS settings can be set to factory defaults through two methods:
- Using a jumper that can be found on the motherboard
- Choosing the default configuration option in the CMOS setup utility
After completing the initial diagnostics and assigning system resources, the startup BIOS program checks for information about secondary storage devices that might contain the OS. The list of devices and the order in which they should be checked can be found and arranged in the CMOS setup utility, and this option is commonly referred to as Boot Sequence.
After launching Windows Virtual PC application, a technician receives error message stating that the Hardware-Assisted Virtualization (HAV) feature is not enabled on the computer. Getting into the CMOS setup utility and enabling the virtualization technology setting will likely solve this problem.
Enabling the TPM security feature in CMOS setup menu can solve the error message: “A compatible Trusted Platform Module (TPM) Security Device must be present on this computer, but a TPM was not found” if the system has a TPM chip installed.
BIOS and UEFI
UEFI is a firmware interface designed as a replacement for BIOS.
Features of UEFI include:
- DRM support
- GUI mode
- Mouse support
- Secure boot
- Network access
Secure Boot is a UEFI functionality designed to prevent the loading of malware and unauthorized OSs during system start-up.
Supervisor password provides the highest level of permissions in BIOS.
There are two types of user permission restrictions can be set in BIOS:
- User password required to proceed when the computer is powered on
- Password-restricted access to the BIOS setup utility (Supervisor password)
Trusted Platform Module (TPM) is a technology that allows for storing passwords, certificates, or encryption keys in a hardware chip.
LoJack is a security feature used for locating stolen desktops, laptops, or tablets.
A computer supporting LoJack technology has two main components installed: an Application Agent residing in the operating system which sends tracking signals to the monitoring center allowing the law enforcement to locate and recover stolen device, and Persistence Module which restores the Application Agent and allows it to survive operating system re-installation or hard drive format. The highest level of security offered by LoJack can be achieved when Persistence Module resides in the Computer’s BIOS
Chassis Intrusion Detection is an option that can be enabled/disabled in the BIOS setup utility (if a BIOS comes equipped with this feature). Coupled with a hardware sensor mounted inside the computer case, this functionality can be used to check if the case was opened and display a notification alert during next boot.
BIOS in Modern Computers
Most BIOS implementations are specifically designed to work with a particular computer or motherboard model, by interfacing with various devices that make up the complementary system chipset. Originally, BIOS firmware was stored in a ROM chip on the PC motherboard. In modern computer systems, the BIOS contents are stored on flash memory so it can be rewritten without removing the chip from the motherboard. This allows easy, end-user updates to the BIOS firmware so new features can be added or bugs can be fixed, but it also creates a possibility for the computer to become infected with BIOS rootkits. Furthermore, a BIOS upgrade that fails can brick the motherboard permanently, unless the system includes some form of backup for this case.
Early Intel processors started at physical address 000FFFF0h. Systems with later processors provide logic to start running the BIOS from the system ROM.
If the system has just been powered up or the reset button was pressed (“cold boot”), the full power-on self-test (POST) is run. If Ctrl+Alt+Delete was pressed (“warm boot”), a special flag value stored in nonvolatile BIOS memory (“CMOS”) tested by the BIOS allows bypass of the lengthy POST and memory detection.
After the option ROM scan is completed and all detected ROM modules with valid checksums have been called, or immediately after POST in a BIOS version that does not scan for option ROMs, the BIOS calls INT 19h to start boot processing. Post-boot, programs loaded can also call INT 19h to reboot the system, but they must be careful to disable interrupts and other asynchronous hardware processes that may interfere with the BIOS rebooting process, or else the system may hang or crash while it is rebooting.
The user can select the boot priority implemented by the BIOS. For example, most computers have a hard disk that is bootable, but usually there is a removable-media drive that has higher boot priority, so the user can cause a removable disk to be booted.
In most modern BIOSes, the boot priority order can be configured by the user. In older BIOSes, limited boot priority options are selectable; in the earliest BIOSes, a fixed priority scheme was implemented, with floppy disk drives first, fixed disks (i.e. hard disks) second, and typically no other boot devices supported, subject to modification of these rules by installed option ROMs. The BIOS in an early PC also usually would only boot from the first floppy disk drive or the first hard disk drive, even if there were two drives installed.
Later computers would display a message like “No bootable disk found”; some would prompt for a disk to be inserted and a key to be pressed to retry the boot process. A modern BIOS may display nothing or may automatically enter the BIOS configuration utility when the boot process fails.
Some BIOS implementations allow overclocking, an action in which the CPU is adjusted to a higher clock rate than its manufacturer rating for guaranteed capability. Overclocking may, however, seriously compromise system reliability in insufficiently cooled computers and generally shorten component lifespan. Overclocking, when incorrectly performed, may also cause components to overheat so quickly that they mechanically destroy themselves.
Modern BIOS Use
Some operating systems, for example MS-DOS, rely on the BIOS to carry out most input/output tasks within the PC.
Because the BIOS still runs in 16-bit real mode, calling BIOS services directly is inefficient for protected-mode operating systems. BIOS services are not used by modern multitasking operating systems after they initially load, so the importance of the primary part of BIOS is greatly reduced from what it was initially.
Later BIOS implementations took on more complex functions, by including interfaces such as Advanced Configuration and Power Interface (ACPI); these functions include power management, hot swapping, and thermal management. At the same time, since 2010, BIOS technology is in a transitional process toward UEFI.