Booting a Computer and its BIOS Mode when doing so — either Legacy or UEFI

Click here for more background to the phrase "Booting" a Computer.

First, a definition of Firmware

Firmware is a software program or set of instructions programmed on a hardware device. It provides the necessary instructions for how the device communicates with the other computer hardware. But how can software be programmed onto hardware? Good question. Firmware is typically stored in the flash ROM of a hardware device. While ROM is "read-only memory," flash ROM can be erased and rewritten because it is actually a type of flash memory.

Firmware can be thought of as "semi-permanent" since it remains the same unless it is updated by a firmware updater. You may need to update the firmware of certain devices, such as hard drives and video cards in order for them to work with a new operating system. CD and DVD drive manufacturers often make firmware updates available that allow the drives to read faster media. Sometimes manufacturers release firmware updates that simply make their devices work more efficiently.

You can usually find firmware updates by going to the "Support" or "Downloads" area of a manufacturer's website. Keeping your firmware up-to-date is often not necessary, but it is still a good idea. Just make sure that once you start a firmware updater, you let the update finish, because most devices will not function if their firmware is not recognized.
End of definition

Now, BIOS (Basic Input/Output System) is also known as System BIOS, ROM BIOS, or PC BIOS firmware. The name originated in 1975 as the Basic Input/Output System used by the CP/M operating system. The BIOS chip was built into the motherboard of the first IBM PC originally storing 8kb, and then later IBM PC compatibles, as its diagnostic testing sequence or POST (Power-On Self-Test). Specific user settings for the PC were originally stored in CMOS memory powered by a small battery, but today they are normally stored in flash memory.

Click here for a listing of the original IBM BIOS in 1981. While the written instructions were protected by copyright, in publishing that BIOS source code IBM allowed the best programmers worldwide to launch what became industry standards for spreadsheets, word processing, and database systems on desktop computers. To the benefit of all.

UEFI (Unified Extensible Firmware Interface) These days, since about 2012 in particular, new computer motherboards designed by Intel have a UEFI chip, which stores perhaps 2mb of instructions. Unlike the now legacy BIOS which ended by looking for an MBR (Master Boot Record) on the hard drive, the UEFI chip looks first for an EFI file, an extension to this firmware interface. It will be stored on a hard disk partition, or alternatively on USB flash memory or CD/DVD. Thus both chips share the same core purpose: preparing the system to boot into the operating system. And many people still call the UEFI chip the BIOS because of the familiarity of the term.

Please note too that computer peripherals will of course contain their own Firmware, e.g. keyboards and mice, network cards, video cards, hard-drives, flash drives, SSDs, RAID controllers, and sound cards (just to name a few) will all have Firmware (RAM and registers) embedded inside.


Interface steps

On power startup, the firmware chip on the motherboard does initial hardware checking, then loads ("boots") the Operating System and low level drivers from disk/flash memory, associating each driver with at least one interrupt service routine (or handler). The Operating System provides a unified approach to the RAM on the motherboard.

Read following steps 1,2,3,4,5 as Low to High. 5,4,3,2,1 High to Low.

  1. Hardware (e.g. keyboard, mouse, speakers, microphone, camera, screen, printer, motherboard, memory, disk drive. Often includes Firmware Instructions written by the hardware manufacturer and built into the device).
  2. Firmware Interface (First program that runs when computer switched on e.g. UEFI or BIOS or ARM trusted firmware). Tests each Hardware device, establishes the Hardware driven Interrupts (e.g. coming from a keyboard to a PS/2 or USB port), enables access to each different device over PCI USB SATA ARM Buses, establishes Low Level Driver commands to access x86 or x64 or ARM motherboards. These Driver commands may be supplied by the manufacturer, or may reside in the operating system kernel.
  3. Operating System Kernel e.g. Windows, Linux, iOS, MacOS. To prevent "bottlenecks", the kernel may give Direct Memory Access to certain Hardware Drivers allowing the CPU central processor to run other tasks. The screen may also have a dedicated GPU graphics processing unit to speed up image processing.
  4. Operating System Runtime Interface e.g. Java VM Runtime, Windows Runtime, Android Runtime, Objective-C / MacOS, iOS Runtime. Windows also has a Client-Server Runtime subsystem (CSRSS) that handles Console Windows. This runtime interface accesses the kernel via Software driven Interrupts.
  5. User Software e.g. Microsoft Office, Google Office, Java applications (that run Java Bytecode), Windows dot net applications (that use Microsoft's Common Intermediate Language or CIL), Apple software that uses Mach Object file format, and Web Browsers (that can download and process web pages that were written and saved on the Internet using HTML source code).
    User software itself is "object code" or "machine code" that interfaces with the Runtime Library Interface. The object code gets itself generated by software programmers who write English-like source code while referring to an API (Application Programming Interface) that accesses source code libraries. The source code they write is compiled (via a compiler program) that translates the source code files into object code files, with the object code then being copied to the computer's disk/flash memory, awaiting the local operator's instructions.

A bit of personal history. With SWCS systems, the Windows 32-bit NTVDM executable ran in a console window inside Windows NT CSRSS for many years supplying a stable interface for SWCS program code; having minimal graphics, but maximum text-based data console enquiry; having minimal overhead and maximum audit trails / reporting of input and output.

Run dxdiag.exe from a command line prompt in Windows to see the details of all video and audio hardware installed.

Run msinfo32.exe to see its BIOS version. If it shows BIOS MODE: UEFI, then it's running UEFI.

The SMBIOS (System Management BIOS) version number relates to the Windows version the hardware is mostly compatible with.

Click here for the Wikipedia article on its early history, derived from the IBM PC Compatible BIOS developed in a Clean Room by Phoenix Technologies in May 1984.

If you've used PCs long enough, you know the frustration of trying to get to the BIOS screen so you can adjust settings like the order of boot devices. Every PC has a different magic keystroke, which must be pressed at exactly the right time.

On modern UEFI-equipped devices, ever since Windows 10 was released in 2015 the task is much simpler. Open Settings > Update & security > Recovery and then, under the Advanced Startup heading, click Restart now. (You have to be signed in as an administrator, naturally.)

That restarts your PC to a special startup menu. Click Troubleshoot, then click Advanced options to get to the screen which includes the UEFI Firmware Settings option.

Other advanced options on this screen let you roll back a problem with System Restore or change startup settings. If you're looking for good old Safe Mode, you'll find it under the Startup Settings menu.

If going through Settings seems too complicated, there's an even faster shortcut. From the Windows desktop, click Start, click Power, and then hold down Shift as you click Restart.

Click here for the Microsoft support page on starting your Windows 10 or Windows 11 PC in safe mode from Settings, from the sign-in screen, or from a black or blank screen.

** End of File.