On Fri, 23 Jan 2004 08:41:11 -0700, "Bruce Chambers"
WinXP, like its predecessors WinNT & Win2K, is a pure 32-bit GUI
OS, and does not include or "ride upon" any version of DOS, as did
Win3.x & Win9x/Me.
Gah, I hate chewing on the same pasted replies again and again, but I
feel I have to in the interests of accuracy. Boilerplate replies are
often used in different contexts; in some contexts, this may matter!
Think of Win3.yuk as something that largely works the same as DOS but
is designed to look different, while Win9x and NT are designed to look
the same but work differently under the covers
Win3.x "runs on DOS", yes.
Win9x does not, but provides an alternate DOS mode OS.
WinME does not, and no longer provides alternate DOS mode OS.
NT does not either, and provides no alternate DOS mode OS.
The difference isn't just a matter of boasting rights, as in whether
the Win9x series of OSs are "good" or "bad". An understanding of this
is essential to troubleshooting a variety of issues in Win9x.
Command.com is one of two command interpreters provided with NT (NT,
Win2000, XP), and the only command interpreter provided in Win9x
(Win95. Win98, WinME). When you run a Win9x in DOS mode, Command.com
runs on the IO.SYS DOS kernel. When you run a Win9x in GUI mode,
Command.com runs on the Win9x kernel. The differences:
Programs
- IO.SYS runs only DOS programs
- Win9x runs DOS, Windows GUI and Win32 CLI programs
- allows .bat and DOS apps to launch Windows programs
- many CLI utils (Ping, ftp, PKZip25.exe) are Win32 CLI, not DOS
LFNs
- IO.SYS protects, but doesn't show or use as inputs
- Win9x displays (Dir) and accepts as parameters ("in quotes")
Memory and file services
- IO.SYS relies on HiMem.sys and Emm386.exe for XMS, EMS and UMB
- IO.SYS requires 3rd-party code for DPMS
- IO.SYS provides no virtual memory paging
- IO.SYS requires SmartDrv for disk caching
- IO.SYS requires Share for concurrent file access (rarely relevant)
- Win9x provides native XMS, EMS and DPMS services
- Win9x requires Emm386.exe for UMB use
- Win9x provides virtual memory paging for DOS apps
- Win9x provides native VCache and VShare
File associations
- IO.SYS runs only .bat, .com and .exe
- Win9x supports HKCR associations, esp. with Start
Multiple instances
- IO.SYS runs one instance at a time
- child instances inherit parent's environment
- parent does not inherit child's environment changes
- no support for Start or other Win32 CLI programs
- Win9x multitasks multiple instances
- each inherits parent's environment
- global environment does not inherit child's environment changes
- Set affects only parent and base, not global
- WinSet affects only global and new sessions, not siblings
- Start can launch new sibling instances
- Start /W can be used to force serialization
Networking
- IO.SYS requires additional real-mode LAN TSRs, etc.
- Win9x provides native services; letter mapping, \\PC paths
Device drivers
- IO.SYS:
- sound, SVGA accessed directly by DOS programs
- CD-ROMs, mouse require real-mode drivers
- non-boot USB devices typically not accessible at all
- Win9x:
- sound, SVGA/VESA, CD, mouse, USB all natively driven
If you look at the above, you may conclude NT and Win9x have more in
common in terms of DOS emulation than meets the eye. Win9x allows DOS
apps to directly access hardware (in some, but not all, circumstances
- for example, raw disk access is usually blocked), whereas NT forbids
this, but neither are purely "DOS".
Understanding all this makes it much easier to troubleshoot things
like hardware issues and so on. Failing to understand this stuff -
for example, simplistically considering Win9x "the same" because it
"runs on DOS" - can leave you totally bemused.
Also, DOS games may run differently in DOS mode and GUI - usually,
you'd expect better mileage in DOS mode, but GUI mode sometimes works
better (VESA, provision of more RAM via VCache and paging).
--------------- ----- ---- --- -- - - -
Dreams are stack dumps of the soul