<div dir="ltr">The original statement about BIOS -- that it was a second OS from the first day on -- is not correct.<div><br></div><div>I am pretty sure the term BIOS (Basic Input Output Subsystem) comes from the early days, from CP/M. That's when I started hearing it anyway.</div><div><br></div><div>The BIOS was the bottom half of CP/M. It provided an abstract device interface that the top half -- the part that came on a floppy -- could use. So the BIOS was not a second OS. It was 1/2 the OS you ran. Vendors created hardware and BIOS for the (usually 1024 byte) ROM and that ensured that CP/M could run on their box. The part of CP/M on the floppy, and the part in EEPROM, combined to provide a kernel. Kernel, of course, being a very loose term given the lack of processor modes. </div><div><br></div><div>This was a very different model from, e.g., the minicomputers of the day, wherein the ROM was used to boot a kernel and then it got out of the way. </div><div><br></div><div>So BIOS nature as a runtime entity was established very early on. </div><div><br></div><div>Linux, for a long time, did not need no steenkin' BIOS (you can find that quote if you look back far enough). But those days are gone.</div><div><br></div><div>ron</div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Sep 6, 2017 at 5:09 PM Julius Werner <<a href="mailto:jwerner@chromium.org">jwerner@chromium.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> The awkward thing about BIOS is that it was a second OS from the first<br>
> day on – while the reasonable philosophy behind firmware should be:<br>
> Start the board, load the OS and go back into your flash until reboot.<br>
<br>
My history lessons may be failing me here, but IIRC the main reason<br>
for that was memory: DOS wasn't a full OS in the modern sense, it was<br>
pretty much just a shell and a collection of utility programs. All the<br>
actual device driving was done by the BIOS. So if you compare it with<br>
a modern GNU/Linux machine, the BIOS was equivalent to Linux and DOS<br>
to the GNU parts.<br>
<br>
The original IBM PC had so little memory that they couldn't really<br>
afford to waste any of it on stuff like device drivers. So they put<br>
the drivers in flash where they could be executed in-place, which<br>
became the BIOS. Most of DOS itself (essentially the <a href="http://command.com" rel="noreferrer" target="_blank">command.com</a><br>
shell) was just unloaded whenever you launched a program and re-loaded<br>
from disk afterwards, and while the program was running it mostly<br>
interacted with the BIOS directly.<br>
<br>
So you're right that from our current point of view that having<br>
callbacks into firmware makes little sense, but back then they were<br>
working with what they had and it was pretty much the only way to get<br>
as much out of the machine as they needed. The BIOS was really the<br>
first OS on the platform, and all those later ones that implement<br>
their own drivers (Windows, Linux) are breaking with the intended<br>
paradigm.<br>
<br>
--<br>
coreboot mailing list: <a href="mailto:coreboot@coreboot.org" target="_blank">coreboot@coreboot.org</a><br>
<a href="https://mail.coreboot.org/mailman/listinfo/coreboot" rel="noreferrer" target="_blank">https://mail.coreboot.org/mailman/listinfo/coreboot</a></blockquote></div>