3 ms·
While the BIOS and VBIOS of a typical 286/386 machine was indeed a closed-source binary blob, there were several factors that helped keep this in check: 1. Th
by kiwidrew 6y ago
While the BIOS and VBIOS of a typical 286/386 machine was indeed a closed-source binary blob, there were several factors that helped keep this in check:
1. The underlying hardware interfaces (I/O ports, memory addresses, etc.) was considered part of the IBM PC "standard" and many programs would bypass the BIOS and talk directly to the hardware.
2. The software interface to the BIOS and VBIOS was also part of the IBM PC "standard", and so the firmware couldn't diverge too far from the expected behaviour without risking compatibility issues.
3. Once the PC entered protected mode, the BIOS essentially turns into a useless brick, and ceases to have any influence on the operation of the CPU. (That is, once in protected mode, the OS kernel in ring 0 had full control of the system, and none of the BIOS code remained active.)
The difference with modern systems is stark: binary blobs often provide the only means to operate the hardware devices, CPUs have special execution modes (such as SMM) which continue to execute binary firmware even after the OS has booted, and even the CPU itself holds binary blobs (such as microcode patches).