From: discar@nosc.mil (Joe Discar)
Subject: Re: Windows 3.1 an "operating system"?
Organization: Naval Ocean Systems Center, San Diego
Date: Thu, 19 Nov 1992 21:09:56 GMT


I've taken the liberty  to rearrange the chronology of the quotes, so you
could better understand--that you recognize that PC programmers (other than
myself)  consider the BIOS an intricate part of th operating system.  This
necessitates the belief that an oeprating system is software that provides
services to user programs--regardless of the actual architecture (e.g., how
such an OS is designed or layered).

Joe:
>
>[Several levels of old comments deleted]
>>As I said, for DOS, the BIOS is definitely part of the "operating system."
>>Is it a part of OS/2?  Only to boot--unless it is used for something else,
>>such as a DOS VM window (which I am not certain it is).  Is the BIOS software?
>>As I stated before, lots of people argue if firmware is hardware or software.
>>If it is hardware, then the BIOS is NOT part of the operating system (but
>>part of the "computer system")--if it's software, then the BIOS can be 
>>considered part of DOS.  I, being more a code slinger than a solder
>>shooter, consider the BIOS software, and therefore part of the OS.
>>
>
>
>>>that's what you appear to be referencing here. You seem to argue that
>>>the components that make the system work are part of that system. Well,
>>>that depends on what system you're considering. You say that the operating
>>>system is the collection of parts that let the apps use the hardware.
>>
>>I say that an operating SYSTEM is a collection of *software* parts that let
>>the apps use the hardware (I am not trying to change the textbook definition
>>of an OS, all of which agree that an OS is software)....
>>
>
>
>I think you would be hard pressed to quote a textbook which said
>that any software used by the OS is automatically part of it.

Douglas Comer _Operating System Design, a XINU approach_, p. 1.

"Hidden in every computer system is the software that controls processing, 
manages resources, and communicates with external decices like disks and
printers.  _Collectively_ [my emphasis], the programs that perform these
chores are sometimes referred to as the executive, monitor, task manager,
or kernel.  We will use the broader term OPERATING SYSTEM."

It is clear at least in one textbook that an operating system is a collection
of SOFTWARE parts...


>>Then why does DOS work on AT&T BIOSless machines?  But the DOS applications that
>I can't believe you said that... DOS can work on machines without BIOS because
>DOS does not *need* the BIOS.  BIOS is not part of DOS.  Any program that does
>not use DOS calls exclusively will not work on such a machine, whether it is


>using the BIOS or accessing the hardware directly.
>OK, since I messed up his questions, basically here it is again:
>"Why do techniques taught in DOS programming manuals not work on systems 
>without BIOS.
>
>This is because DOS has very limited functionallity, and to do some things
>that every program needs to do it is necessary to either access the
>hardware directly or use BIOS calls.  Since the BIOS is standardized,
>naturally the books suggest using it.  

Right, which is why I am suggesting that the argument is really
semantic.  When *I* say "DOS" I really mean "DOS that runs on an 100%
IBM PC compatible"--which is entirely different than the operating
system "DOS that runs on ant AT&T".  Why?  Because of DOS's reliance on
the BIOS to perform system functions, the two operating systems are not
100% compatible.  The same is *not* true of OS/2 (or Unix) because these
OS's provide suitable non-platform-specific APIs to system functions.
But one of the reasons DOS *has* "limited functionality" is BECAUSE
the designers relied that many operating-system functions would be performed
directly by the BIOS.  And in this sense, the BIOS is "part of the design
of the IBM PC Disk Operating System."


>
>>>DOS is a piece of software to be loaded from disk to provide an
>

>
>>>Or, early IBM machines had the Basic interpreter
>>>included in the BIOS, does that make Basic part of DOS? If it does,
>>>I have a deficient DOS cause I never had Basic on it. And what about
>>
>>And if you were using those DOS utilities (BASIC and BASICA), yes you would
>>have a deficient DOS.  Now, of course, DOS doesn't depend on the BASIC
>>ROMs, so therefore the BASIC ROMs are no longer a part of DOS... as it's
>>running.
>>

Uh, actually I was being facetious.  Languages are not part of DOS (unless
you extend an operating system's definition to what is included in the
"packaging.")  Reference?  Again, Douglas Comer in _Operating System Design_, 
p. 3 (1.3 WHAT AN OPERATING SYSTEM IS NOT):

"First, an operating system is not a language or a compiler, even though
vendors usually supply compilers with their systems...."

However, if DOS itself used the BASIC ROM directly for an OS-related
function (such as File Management or string processing), the BASIC ROM would
indeed be part of the operating system.


>
>
>Uh, so is what you're saying that if you're *using* BASIC then it's part of
>the OS?  BASIC is indeed now part of DOS, rather than the BIOS (although for
>a while it was in both places, but only the DOS version could use the disk)
>but this just means they have added BASIC to DOS and removed it from the 
>BIOS.  It certainly does not mean that the BIOS is part of DOS.
>
>I really doubt that DOS ever depended on the BASIC ROMs.  Therefore, they are
>certainly not part of DOS.  
>

I didn't intentionally sugggest they were.  Fred had, and I was trying to say
that if DOS depended on it (which is doesn't), but if it did, it would be part
of the operating system.

>[stuff deleted]
>>>and the architecture DOS was built on is the IBM PC, a machine
>>>consisting of a 8086 CPU, several parts for the interrupt mechanism,
>>>an io controler, a data bus and a BIOS to provide an interface to the
>>>hardware then available.
>>>That is the architecture.
>>
>>Then why does DOS work on AT&T BIOSless machines?  But the DOS applications that
>I can't believe you said that... DOS can work on machines without BIOS because
>DOS does not *need* the BIOS.  BIOS is not part of DOS.  Any program that does
>not use DOS calls exclusively will not work on such a machine, whether it is
>using the BIOS or accessing the hardware directly.
>

Ahhh, but twhen I say "DOS" I refer to DOS running on a PC.  DOS on a PC is
just as much "DOS" as DOS on an AT&T only from a general sense (much as
my Wife and I belong to the same class "Man") but if the API changes because
of the existence (or absense) of the BIOS, they are, technically, different
operating systems (much as you and I are "Men" but we are different men).
I don't know if I'm being clear... but the problem appears to be semantic.
As you said, because of the design of DOS, many DOS programmers call the BIOS
directly because the BIOS is part of the standard "DOS"--it is valid
to consider that, if the yare programming DOS, the BIOS calls are there.


>"Why do techniques taught in DOS programming manuals not work on systems 
>without BIOS.
>
>This is because DOS has very limited functionallity, and to do some things
>that every program needs to do it is necessary to either access the
>hardware directly or use BIOS calls.  Since the BIOS is standardized,
>naturally the books suggest using it.  

This is because DOS's functionality only provide further enhancement to
services provided in the BIOS.  If the functionality was already adequate
in the BIOS, DOS does not attempt to duplicate it--relying on the fact that
if the programmer wants to do that function he can call the BIOS.  In other
words, the API provided for by the BIOS is inherited by DOS.

>
>>>DOS is a piece of software to be loaded from disk to provide an
>>>abstraction from the hardware so users can load applications, manipulate
>>>files and use the harware to their avail.
>>>That is the operating system called DOS.
>>
>>Correct.  A good OS should insulate the programmer from the lower software 
>>layers.  But is it not still valid to design an OS that doesn't perform
>>such insulation--in other words, to make the BIOS API an inherent part of
>>DOS?
>>
>
>I would say that it is not valid, since that very statement implies that 
>the BIOS pre-existed DOS.

The BIOS did pre-exist DOS.  PC's ran just fine without a disk operating
system, thank you... the BIOS (and BASIC) provided ample functionality
at the time.

>
>["is BIOS hardware or software" statement deleted, since it is getting
>  awfully repetitive]
>

But you still don't see the quandry.  If BIOS is hardware, it is not part of the
OS.  If it software, then it is part of the OS (an OS being [Douglas p. 1]
"Collectively, the *programs* that perform [process control, resource
management, etc.]"

>>>To say it once again, the BIOS is not part of DOS, is not part of OS2,
>>>is not part of Xenix, is not part of Linux, is not part of BSD386,
>>>is not part of ...
>>
>>This is only true, again, if you do not consider the BIOS a piece of software.
>>There is the echo of another argument: several people have installed
>>OS/2 on various machines--and could not boot because of BIOS problems (yet,
>>may I point out that such "BIOS" problems do not exist on other operating
>>systems such as Windows+DOS or DOS).  There are two schools of thought:
>>(1)  The hardware is non-compliant (this is what most OS/2 advocates
>>assert).  or (2)  OS/2 still needs ironing out (this is what the trade rags
>>basically say).  Which is right?  Are incompatibility problems an issue with
>>the hardware or with the software?
>>
>
>That fact that OS/2 does not work with some BIOSs (just what is the plural of
>BIOS?) implies that BIOS is part of the computer architecture. No one ever said
>that OS/2  could not load on a machine because it had a DOS conflict because
>DOS is an operating system, and OS/2 replaces it.

Or implies that OS/2 is not designed to use the BIOS resources correctly.
Look at the trade rags (November PC Magazine) is it OS/2's fault that
it doesn't work on MAchine X?  At least some writers allude to it: or it
wouldn't be an issue of which operating system is better.  But before I get
flamed for THIS too: in the OS/2 architecture the BIOS is more hardware than 
software--since the BIOS is only used (to my knowledge, how about DOS windows?)
in that grey area called "booting".  In DOS, the BIOS is clearly software
that has been integrated into DOS.

>
>
>[referring to BIOS]
>>>It is part of the PC architecture.
>>>
>>>
>>
>>So is DOS, so is OS/2, so is Windows.  I believe (as I said before in a 
>>previous post) that the issue of the BIOS being a part of OS/2 is not
>>quite clear since OS/2 "uses" the BIOS only to boot (and I am uncertain if
>>OS/2 depends on the BIOS to perform DOS windows).  But the BIOS is 
>>definitely part of the DOS architecture--which is why DOS software breaks
>>if the BIOS is not very close to 100% PC compliant.
>>
>>
>
>>>>>>DOS<<<<<< is part of the PC architecture????? And OS/2 and Windows??
>Blech!

It depends on how you view an architecure.  Is the architecture the
foundation?  The frame?  The walls? the ceiling lights?  If my PC is
set up *only* to boot OS/2--and all software that I ever use or design to
use uses OS/2--couldn't OS/2 be considered part of *my* PC architecture?

Architecture: \ar-ke-tek-cher\... 2  a: formation or construction as or as
if as tje result of a conscious act   b: a unifying or coherent form or
structure...

	       Webster's 9th New Collegiate Dictionary


>
>I think maybe you should read Hennesey and Patterson for a definition of
>computer architecture.
>
>You will probably find that the definition does not include every operating
>system available for the computer.
>

Neither does the definition include every computer.  Any given definition 
of  particular computer architecture is only valid for that instance.
One could say "*Generally* the BIOS is part of the PC architecture" but
that is not altogether true.  At JPL I helped in the development of a
biometric experimental machine based on the "PC architecture" where we
ripped out the BIOS altogether and replaced it with our own  program.

>
>Doesn't it seem more logical that if you replace one operating system (DOS)
>with another (OS/2, UNIX, anything) that the parts of the computer which
>remain constant (video hardware, CPU, diskdrive, *BIOS*) are not part of
>the operating system?
>
>It seems to me that your idea that BIOS is part of the operating system
>leads to a number of inconsistancies.
>
>

Only if you consider it part of the machine and not software in its own
right.

>
>Peter Dunlap            |  CS Department


>pdunlap@cs.utexas.edu   |  University of Texas at Austin
>------
>It's not like I never make mistakes...I bought a PS/2
>


Newsgroups: comp.os.os2.advocacy