[coreboot] About Paging, Realmode and what is going on

Julius Werner jwerner at chromium.org
Thu Sep 7 02:08:12 CEST 2017


> The awkward thing about BIOS is that it was a second OS from the first
> day on – while the reasonable philosophy behind firmware should be:
> Start the board, load the OS and go back into your flash until reboot.

My history lessons may be failing me here, but IIRC the main reason
for that was memory: DOS wasn't a full OS in the modern sense, it was
pretty much just a shell and a collection of utility programs. All the
actual device driving was done by the BIOS. So if you compare it with
a modern GNU/Linux machine, the BIOS was equivalent to Linux and DOS
to the GNU parts.

The original IBM PC had so little memory that they couldn't really
afford to waste any of it on stuff like device drivers. So they put
the drivers in flash where they could be executed in-place, which
became the BIOS. Most of DOS itself (essentially the command.com
shell) was just unloaded whenever you launched a program and re-loaded
from disk afterwards, and while the program was running it mostly
interacted with the BIOS directly.

So you're right that from our current point of view that having
callbacks into firmware makes little sense, but back then they were
working with what they had and it was pretty much the only way to get
as much out of the machine as they needed. The BIOS was really the
first OS on the platform, and all those later ones that implement
their own drivers (Windows, Linux) are breaking with the intended
paradigm.



More information about the coreboot mailing list