On May 28, 2024, at 5:49 PM, Mike Katz
<bitwiz(a)12bitsbest.com> wrote:
Paul, you said:
I'd say an OS is a software system that runs on bare metal (or equivalent, like a
VM) and offers a set of services intended to make creating and running applications
easier. In that sense, RT-11 SJ or OS/360 PCP are operating systems, just as Linux is.
QRQ is on the edge (it's written for a single application). Similarly, I would not
call FIG-FORTH an OS, nor those other FORTH systems, though admittedly it's also a bit
fuzzy.
If the file system and basic I/O functions drivers are in ROM what is the difference
between a BIOS and an Operating System.
Technically speaking, for some, the BIOS offers a hardware abstraction level to some more
generic software that runs on top. BIOS means Basic Input Output System. Is that
restricted to the console only? Some systems run their entire "Operating
System" out of ROM?
Well, sure. The memory used is irrelevant to what the software does (other than
details like mutability, so if you have ROM you have to separate the R/W data from the
rest, while if it's all in RAM that isn't necessary). Operating systems have been
found in ROM, RAM, drums, tapes, and any number of other memory devices.
Let's take a very simple computer, the HP-41C
Calculator. The internal 12K or ROM handled all of the keypad I/O, display I/O, math
functions and programming functions. Each device added contained all of it's drivers
in ROM. There was never an "Operating System" to load but with additonal
hardware/software modules even reading and writing to floppy disks and mini data cassettes
was supported. The 12K main ROM and how the expansion hardware/ROM integrated into it was
definitely an operating system.
On the IBM-PC most boards (that were not just multi I/O or RAM boards) came with their
own drivers in ROM as well and were even called bios extensions. The big difference
between the PC and the HP-41C that the PC needed to load the file system handler (and
others as time when on) from disk to run. Whereas the HP-41C never needed to
"bootstrap" from some kind of media.
By your definition many BIOS's are really operating systems. And if I really want to
pick nits, what you defined as an Operating System is really an application that uses the
BIOS Operating System. Yes, I know, not all BIOS's have enough functionality to
qualify as an operating system.
A BIOS is more likely a helper, providing bootstrap services and some I/O support.
That goes back to the first BIOS, around 1958 in the Electrologica X-1. In fact,
that's an interesting one: it was written by Dijkstra as his Ph.D. project to abstract
the then very new and daunting problem of dealing with interrupts. The BIOS would do
this, and other code could then use those APIs to do I/O more easily without worrying
about asynchronous pain.
It also contained a simpler assembler/loader as well as operator console services.
To spark even further debate, does an operating system
require file system capabilities. Many do not. This furthers my supposition that the
BIOS is really the operating system and what you are calling an operating system is merely
an application using the BIOS API for the required services.🙂
Does something need file system features to be an OS? Certainly not. Many RTOS
have plenty of stuff in them to be judged an OS without much debate, yet are used in
embedded products where a file system is not needed.
For that matter, one of the first and properly famous operating systems, Dijkstra's
THE operating system that gave us semaphores, ring design, and various other things, did
not have a file system.
My comments are not intended to inflame but rather to
cause further discussion.
paul