Summary
Highlights
BIOS (Basic Input/Output System) is not the operating system. While the operating system manages hardware and software and provides a user interface, BIOS is responsible for loading the operating system when the computer is first turned on. It first checks that all necessary hardware is connected and working using a 'Power-On Self-Test' (POST). BIOS settings, such as the boot order of drives, can be configured. It's especially useful for recovering a corrupted system by booting from external devices like a USB drive or optical drive. The bootstrap program loads the operating system kernel into memory, allowing the operating system to take over.
Initial startup instructions are stored in ROM (Read-Only Memory). BIOS settings, however, are stored in flash memory so they can be changed and retained even when the power is off. The relationship between BIOS, ROM, POST, bootstrap, and kernel is crucial for understanding how a computer starts.
When a computer turns on, instructions are initially fetched from ROM. ROM runs the Power-On Self-Test (POST) to ensure all required components are present. It also clears CPU registers as a safety measure. The address of the first instruction in the boot program is loaded into the program counter, passing control to the bootloader (bootstrap). The bootstrap performs its own hardware checks, looks for BIOS on the hard disk or CMOS RAM, combines it with the basic BIOS from ROM, and sends this information (the boot file) to main memory. The computer is then ready to load the operating system.
The operating system, typically found on the hard disk, can be loaded from other drives if configured in the BIOS, allowing for recovery of corrupted systems. The operating system then takes control, searching for other essential files like 'config.sys' (which defines settings like open files and device drivers) and 'command.com' (containing additional BIOS and OS utilities). Eventually, the operating system is fully booted and manages the computer, including memory and loading jobs into the processor, at which point the user gains control.
This explained startup process is a highly abstracted overview and can vary depending on the specific system. Files like 'config.sys' and 'command.com' are typical for Windows systems but may not apply to others. Despite the complexity, this process gives an idea of the many tasks involved before a user can interact with their computer.