Newsgroups: comp.os.ms-windows.misc
Subject: Re: Windows == OS
Date: 25 Aug 92  21:57:04 mst

  >The way the sentence is phrased makes one think that windows
  >virtualizes like an operating system virtualizes.  Yet, this is all
  >nothing more than a layer of primitives.  You have to use window's
  >primitives to fell this "virtualization" try accessing any of these
  >things you mention directly and see how much of virtualization windows
  >truely provides.

Huh????  Do you know what you are talking about?  Any "good" OS
always hides the hardware from the software developer.  If you want to
access a hardware device, you have to do so through SYSTEM calls with
a well defined API.  The OS then takes care of device contention,
allocation, etc...  This is why DOS is *not* a good OS, because it
lets software developers manhandle the hardware without DOS's
knowledge.  I think anyone would agree that Unix is a "good" OS.  How
do you think that malloc is implemented?  It eventually makes a system
call (through that system's API) requesting memory.  The system then
returns with a pointer to that piece of memory.

And what do you think an OS is except a bunch of "primitives"?  How do
you expect any programs to run if they can't request resources and
services from the operating system through "primitives"?

  >>   >touch it because now you have the malloc pointer.  Yet a true
  >>   >operating system, which supports this feature, does not care that
  >>   >you have the actual pointer, it changes the base address of your
  >>   >pointer on the hardware level.
  >>    Actually, Win 3.1 changes the base address on the hardware
  >>   level.  By abandoning real mode, Windows has gained greatly in
  >>   memory management abilities.  Now, you can lock that HGLOBAL once, and
  >>   use the pointer throughout your App's life.  When you quit, just
  >>   unlock it once.  Windows will still be able to juggle your blocks,
  >>   it just doesn't have to have your cooperation to do it.

  >Once more the same old same old, use window's primitves and you get
  >the abstraction, the point is that if windows was a real operating
  >system I could use malloc and the operating system could still juggle
  >with my memory blocks.

Once more "the same old same old", every OS should provide this exact
amount of abstraction.  With Windows you CAN just malloc, Windows
*will* "juggle" with your memory blocks.  How else do you think
virtual memory is implemented?

  >You probably mis-understood what I wrote or I did not express myself
  >clearly.  The API function, these primitives, hide the hardware and
  >help you write software that is a little more distant from the
  >hardware for that they are great.  They do a lot of work for you, one
  >function call to FillRect stands for many complex lines of code, for
  >this also they are great.

NA>Again, the same thing.  You probably missed it but I worte, "simulate
  >an operating system."  The fact that to open the communication port
  >one calls OpenCom does not make windows an operating system.  In fact,
  >in every well-designed communciation program there are primitves to
  >access com ports that does not virtualize nor makes the program an
  >operating system.  Windows still is a collection of 600+ primitives.

In every well written communication program for DOS, DOS is ignored
and the application communicates directly with the hardware.  This
means that DOS is NOT a good OS.  With Unix, (and with Windows 59% of
the time) you can't ever touch the hardware unless you are a device
driver.  If you are an application program, then you request a port
from the operating system, and it gives it you.

Your understanding of what an OS should be is terribly limited... you
seem to be using DOS as an example of what a true OS can do.  Most
good DOS apps bypass DOS entirely when needing access to system
resources...  DOS simply loads them into memory and executes them.
All "good" OS's NEVER, NEVER let application programs access the
hardware directly.

  >WindowsNT is another issue (another operating system not a GUI),and
  >Windows 4.0 is another story, and hay, I just read a post that says
  >that DOS 6.0 has a few things changed to make it ready for Windows
  >4.0, and among other things, make some changes to DOS 6.0 so that
  >windows 4.0 could become preemtive.  Hence, Windows does not solely
  >use DOS as a system device driver after all.

Again, it is woefully apparent that you don't grasp what operating
systems are all about.  That's OK... lots of people use OS's without
understanding them.  Just because I use a car doesn't mean that I'm an
expert on internal combustion engines.

  >>    So what if it is?  That is a lot like what UNIX does, too.
  >>   Windows also provides for interprocess communication, device
  >>   sharing, serialization of input, virtualization of all hardware,
  >>   file locking and sharing, true preemptive multitasking with DOS
  >>   boxes in enhanced mode.
  >Noooo, unix plays with the stack and does context switches and all
  >sorts of things.  You see if the loop outlined above is a good guess
  >of what's happending (again, never seen the source code), then the
  >function WinMain uses the same stack as the calling program (simple
  >function call).  Hence, in order to introduce preemptive multi-tasking
  >there should be some arrangement to make a copy of the stack, and hold
  >a few stocks in memory and switch between them and take care of PCLBs
  >and all sorts of things that windows does for DOS apps but not for
  >windows apps.

Huh??? You've never seen the source code, but you know this?  How an
OS multitasks has nothing to do with anything but multitasking.

I suggest heading down to the local library and grabbing a book on
operating systems.  Read it, and then come back and tell us this all
over again.

-Monroe

 * OLX 2.2 * "What a lovely entrance," Tom adored.

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