Newsgroups: comp.os.ms-windows.misc
Subject: Re: Windows == OS
Date: 02 Sep 92  02:53:02 mst

Dear Tomer Guez,

As I recall, before you started trying to teach us what we all already
know about how operating systems are *supposed* to be, we were
debating whether Windows == OS.  Everyone basically decided
Windows != OS, but, Windows == (.9 * OS).

Tomer, you have stated yourself that an OS is fundamentally supposed
to manage the system and its resources.

These are the four fundamental system aspects an operating system must
manage:

    1) Resources  (I/O devices, etc)
    2) Core memory (a special case of 1)
    3) Processes
    4) Files

Anything else is extraneous in my definition of an OS.  It does not
matter whether the OS multitasks, nor whether another OS was in
control before the new OS came along...  all that matters is that the
OS manages the system and its resources.

Now does Windows meet these criteria?  I postulate that it meets
conditions 1, 2, 3, and parts of 4.

Windows manages system resources:  Although Tomer refuses to believe
it, Windows uses its own device drivers to interface with the mouse,
the video display. the keyboard, multimedia devices, and in most
cases, the drive controller.  These device drivers are not dependent
on DOS device drivers.  Anyone who has programmed Windows will tell
you this, despite Tomer's repeated insistence otherwise (for which he
has offered no proofs or references).  In the cases where Windows does
NOT supply the drive controller drivers, then Windows will try to use
BIOS interrupt 13 to communicate with the drives... again bypassing
DOS.  So it appears that Windows is responsible for managing resource
allocation.

Windows manages memory:  Again Tomer has ignored or even declared
incorrect all the statements that we have been making about Windows
memeory management for both Windows apps and DOS boxes.  He tries to
tell us that DOS boxes are always addressed at fixed addresses, and
that Windows can't "juggle" malloc'ed memory.  By juggling I assume he
means garbage collection, where memory segments are moved to create
larger contiguous portions of free memory.  All Windows programmers
know that Windows does this perfectly well, for both Windows programs,
and for DOS boxes runnig under Windows.  There are no other
possibilities for memory management, since only Windows or DOS boxes
may be running while Windows is active.  Thus, Windows manages memory.

Windows manages processes:  Tomer has again demonstrated his lack of
knowledge about how Windows works when he attempted to argue that each
Windows application stack was really just a part of some "main Windows
stack".  Yes, Tomer, your theory on how this can be done is very
valid... but its not the only way to do it, and under the segmented
memory scheme that Windows works under, your ideas would be very
inefficient if implemented.  The truth is, and this is really the
truth, each Windows app has its own stack, and its own local heap.
Windows is responsible for setting up the heap and stack and assigning
them to the process when it starts up.  Windows mediates conflict
between processes vying for the same resource.  Windows schedules
process execution using two paradigms: non-preemptive for Windows
apps, and preemptive for DOS apps.  When processes request memory, it
is WIndows that fields the request and allocates the memory, WITHOUT
calling any DOS routines to do so.  Tomer won't believe this is true
until he sees the source code for Windows.  But, anyways, it seems
like Windows manages processes.

Windows manages files:  I am surprised that Tomer hasn't really
touched on this one, where the argument that Windows is an operating
system is weakest.  If the appropriate drive controller is present,
Windows has a device driver that will use 32 bit access to the drives,
bypassing the "standard" BIOS and DOS API calls to do so.  When
applications request file services (opening, closing, etc...) Windows
passes these along to DOS.  Since DOS file services weren't designed
for a multitasking environment, Windows supplements file services with
some of its own, especially through the use of the OFSTRUCT data
structure.  So Windows does a little bit of file management, but not a
lot.

OK... what criteria for an OS have I missed?  Virtual machines,
multitasking, bootstrap, etc have absolutely nothing to do with the
definition of an OS.  So any arguments about these are irrelevant.

As outlined above, when Windows is run, it takes over the VAST
majority of the system, and whether you deign to say its control
equates to 80% of an OS or 90% of an OS doesn't matter.  It is
certainly more than halfway to being an OS.

By the way, Tomer... Petzold is coming out with a new edition of his
book, Programming Windows, 3rd edition.  Since you won't believe any
of us (or maybe you are just refusing to understand what we are
saying?), maybe you will believe Mr. Petzold - seeing as how you refer
to his writing a source of your information.  The 2nd edition of his
book is very misleading... its essentially just a quick re-write of
the 1st edition, which was for Windows v2.1.  Thus, many of the
managment issues dealt with REAL mode, with only cursory, short
comments on the ramifications of protected mode.

Have fun,

-Monroe

 * OLX 2.2 * "I'm reading about Communism," said Tom readily.

 * Origin: Through the Looking Glass (42:100/14)
Newsgroups: comp.os.ms-windows.misc