On Tue, 28 May 2024, Paul Koning via cctalk wrote:
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.
. . .
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.
"DOS est omnis divisa in partes tres: BIOS, BDOS, Command processor"
In CP/M, MS-DOS, there are three layers of the OS,
BIOS is the hardware management layer.
It consists of ROM(s), supplemented by files loaded at boot time (IO.SYS
or
IBMBIO.COM) ROM VS disk file(s) is irrelevant; Poqet (MS-DOS 5.00) and
Atari Portfolio (Atari imitation MS-DOS) put the entire OS in ROM.
Different hardware requires a different BIOS, but not necessarily changes
in the upper layers.
BIOS also includes the initial layer of the bootstrap code, that loads
the boot sector of the disk into RAM and sends control to it.
BDOS is the file management layer, and the central/core layer of the OS
(MSDOS.SYS or
IBMDOS.COM)
Many BDOS functions (Int 21h) call BIOS functions.
Command processor (
COMMAND.COM) communicates with the user, parsing
commands, rendering messages, launching programs, and calling functions in
BDOS.
In theory, all communication between user and OS or hardware is through
COMMAND.COM, or running application programs.
In actuality, "going through channels" as a "well behaved program"
isn't
adequate performance, so many/most prograams bypass one or more layers of
the OS.
MS-DOS/PC-DOS documentation included explanation of what was required to
write your own replacement for
COMMAND.COM!
Windows 1x, 2x, 3x took over the functions of
COMMAND.COM.
Windows NT, 9x, etc. blurred the boundaries of the layers.
--
Grumpy Ol' Fred cisin(a)xenosoft.com