Well, I stayed out of it as long as I could.
I think this thread originated with a discussion that
wound up asking the basic question: So what is
an O/S, anyway?
And along the way we've examined specific O/S
candidates (like Win9x). And we've gone from
qualifiers like "it's only an O/S if it boots" to
"well, ok, if it takes over the machine" and
so forth.
Just when I've thought it was time to say
something, the discussion would heat up again.
So, now that everyone is sick of it, I guess
I'll say my piece. Please note that none of
this is the result of an academic background:
I have none. All I have is the 19 years I've
spent programming these things. Please
forgive any departure from accepted theory.
In my own experience, computers vary so
much from one to the next, that trying to
find a common denominator can be vexing.
They don't all have disks. They don't all have
serial or parallel ports, some don't even use
monitors. Even keyboards are optional.
They do all have processors, memory, input
devices, and output devices. Some of them
have operating systems in ROM. Some load
some, or all, of their O/S from disk. Some
combine ROM with disk/tape load. Some
load only portions of the O/S, depending on
the needs of the moment or the configuration
set up by the user.
The common thread of operating systems is
that they all manage the resources of the
computer. Sometimes even all the resources.
Some operating systems are complete even
to the point where the application(s) are fully
integrated.
Another common thread of operating systems
is that they (usually) provide some kind of API
(Application Programmer Interface) so that the
programmer can obtain certain services (like
keyboard input, console output, printing, file
management, etc.) without having to create
these services himself.
However, almost always, the programmer has
to extend the functionality of the O/S in some
fashion. There is always some new gizmo that
requires a driver. Maybe it can be added to the
system bus (cards) or perhaps it connects via
a serial port. The O/S has no provision for it, so
the programmer is obliged to provide that.
Most O/Ses have some automatic startup (boot)
built in. Some have to be manually started.
Some actually depend on the boot loader of an
existing O/S and use some of its functions to
get themselves started.
However, one should not confuse the interface
used by an O/S (to interact with the user) with
the basic function: the management of resouces.
In some environments, the user interface separation
is quite clear (X-Windows over Unix) while in others
it is completely masked (Mac OS).
Further, in spite of this distinction, clearly graphics
hardware is a resource, and a valid extension of
the basic O/S is the management of commonly
used graphics hardware. And with the richness
of variety given us by a multitude of vendors, once
again the programmer writes drivers.
Thus, for any given specific type of machine for
which an O/S has been written: if you *usually* have
a disk, the O/S should help you manage it. If you
*usually* use printers, the O/S should also help with
them. Any hardware that is *always* present should
be accounted for in the O/S. If your hardware
configuration is very flexible and modular, then your
O/S should reflect that.
It is entirely reasonable that an O/S made for boxes
with graphics output devices might NOT use a GUI
as it's primary interface. That's up to the designer.
Of course the designer might decide that his target
audience will be better served by providing ONLY a
GUI. That's his call.
As long as the O/S manages the resources of the
most common configuration, then it's a real O/S.
If you have to load it from a tape in order to manage
disks (TRS-80 Model 1, Heath H-11), it's still an O/S.
If you have to boot it from floppy to access your hard
disk, it's still an O/S. If it loads portions of itself on
demand due to memory constraints (Heath HDOS),
it's still an O/S.
If the designer couldn't see the point of managing
the memory, because only one task would run at
a time, it can still be an O/S. Of course later
someone may add real memory and task
management, producing a more complete O/S.
How about the designer who feels that switching
in and out of graphics mode is a waste of time,
and codes only a GUI (Mac).
I've seldom met an O/S that managed *everything*
but several that do enough that the programmer
is free to write worthwhile applications.
There have been some that left out what *I*
thought were crucial bits (like CP/M not having
a "termcap" [terminal capability] driver), making
it necessary for the programmer to know what
kind of terminal was being used.
There have been some that managed so much
that I had no freedom to access serial ports
directly.
It's nice if an O/S can boot itself, manage all its
peripherals, handle memory and multiple tasks
and users, and provide a simple point-and-click
front end while also granting access to the
command line when needed.
The primary purpose of an O/S is to provide the
user and programmer access to the hardware
and, through that, access to data.
If it accomplishes that, then it really is an
Operating System. If it accomplishes that and
does it *well* then it is a *good* Operating
System.
And, obviously, in this context a certain amount
of subjective reality applies to the term "good."
Now, none of this is intended to stifle a good
healthy dispute over the merits of, oh, say,
VW and Mercedes cars.
We all know that the Mercedes is a "real"
car and that the VW is not, because some
feature that is (by royal decree) necessary
for the "total car" is missing from the VW.
And we are all offended by the fact that
somehow people still manage to travel in
a VW.
Yes, Win9x is an Operating System. It
manages resources and provides an API.
Yes, it sits on top of DOS and uses many
of its services. I may not like the business
practices of its authors, but I'd be a fool to
turn my back on it.
Not everyone will want to become expert
at 3 or more operating systems, but in my
line of work I have to.
I envy those of you in the list who have had
time to master Linux; I'm still getting started.
I sympathize with those who hate Windows
and yet have to use it. Likewise those who
would be happy to run Win9x if they had the
disk space or CPU or memory needed for it,
but can't.
Try not to let your religious prejudices cloud your
vision. I have impaired my own understanding of
technologies that I needed to learn because I
felt the need to justify my position. There are
few things as frightening as ignorance in action.
Thank you for listening.
~~Garry
To unsubscribe from SURVPC send a message to [EMAIL PROTECTED] with
unsubscribe SURVPC in the body of the message.
Also, trim this footer from any quoted replies.