What role does "DOS" play in Windows 95/98?

What role does "DOS" play in Windows 95/98?

Post by DOS Gu » Tue, 18 Oct 2011 07:27:31



To put it simply:  

Many people believe that Windows 95/98 runs "on top of" DOS.

This would lead one to believe that there is some 32-bit, protected-mode
DOS executive layer running under Windows 9x.  If that was not true,
then the alternative would have to be that a 16-bit, real-mode DOS layer
is somehow able to support windows-9x running in 32-bit protected mode
above it.

Most rational explanations say that DOS is involved in two aspects of
win-9x functionality:

1) the boot loader
2) to support legacy 16-bit applications (and drivers?).

A more likely explanation is that:

a) people like to denigrate the windows-9x line and fabricate
differences between it and the NT line, and one way to do this is to
make the outlandish claim that it runs "on top of DOS" - something that
was true of windows 3.

b) people genuinely do believe that windows-9x is more similar to
windows 3 in terms of "running on top of" DOS.

c) people associate FAT32 with DOS, and hence because windows-9x only
supports FAT32 it therefore must have some large internal reliance on
DOS.

Please discuss here what the truth really is concerning where DOS fits
into the structural functionality of Windows 9x.

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Trifle Meno » Tue, 18 Oct 2011 08:38:53



>Please discuss here what the truth really is concerning where DOS fits
>into the structural functionality of Windows 9x.

There are many books on this.  Here's one you can download:

http://www.4shared.com/get/DDyCHQyI/Windows_95_System_Programming_.html

--
Free web mail, POP3, and SMTP
http://www.beewyz.com/freeaccounts.php

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Rod Pemberto » Tue, 18 Oct 2011 18:16:49



> Many people believe that Windows 95/98 runs "on top of" DOS.

No.

I'll be using AIUI alot since I don't have firm info, but you should be able
to locate some old "inside Windows" books at your local library, etc.

Quote:> This would lead one to believe that there is some 32-bit, protected-mode
> DOS executive layer running under Windows 9x.

AIUI, there is a 32-bit, protected-mode DOS executive layer, but it's not
running under Windows 9x.  It runs on top of Win9x like other applications,
services, using Win9x's 32-bit functionality.  I don't know what this is
called for Win9x.  It's called NTVDM for other Windows OSes.  It's known to
have special escape sequences that start with 0xC4 0xC4 to interface with
32-bit Windows.  What surprises me is that no one has "ported" NTVDM to DOS,
to create a 32-bit DOS.  Actually, you wouldn't need to port NTVDM.
However, you do need to supply the required 32-bit Windows interfaces and PM
setup, which would be a like a specialized 32-bit OS.  About the closest
thing you'll see to that is Japheth's HX DOS Extender running DOSBOX for
Windows on DOS.  Same idea, but doesn't support multiple DOS "boxes".  You
can read about NTVDM on Wikipedia.

Quote:> If that was not true,
> then the alternative would have to be that a 16-bit, real-mode DOS layer
> is somehow able to support windows-9x running in 32-bit protected mode
> above it.

No.

Quote:> Most rational explanations say that DOS is involved in two aspects of
> win-9x functionality:

> 1) the boot loader

Yes.  Win9x starts from 16-bit MS-DOS.  It probably also switches to 16-bit
cpu-mode for video BIOS calls, but that's not DOS.  Also, AIUI, Win9x has
modified version of HIMEM, i.e., XMS driver, that passes MS-DOS allocated
memory, e.g., for a ramdisk or other drivers, to Win9x upon startup.  Win9x
takes over memory allocation from there, preserving DOS allocated memory.
You can use DOS 16-bit device drivers with Win9x.  Those very compatible
with MS-DOS features probably helps to support the myth of Win9x "on top of"
DOS.

Quote:> 2) to support legacy 16-bit applications (and drivers?).

This is actually due to the design of Intel 80386 and later microprocessors.
Intel added the v86 cpu-mode.  This allows 16-bit applications to run on top
of a 32-bit OS with memory protection.  It can be for any OS, not just
Windows.  But, that means multiple 16-bit MS-DOS "boxes" or windows can be
run in a 32-bit PM OS like Win9x.  You can read about v86 on Wikipedia too.

Quote:> A more likely explanation is that:

> a) people like to denigrate the windows-9x line and fabricate
> differences between it and the NT line, and one way to do this is to
> make the outlandish claim that it runs "on top of DOS" - something that
> was true of windows 3.

> b) people genuinely do believe that windows-9x is more similar to
> windows 3 in terms of "running on top of" DOS.

> c) people associate FAT32 with DOS, and hence because windows-9x only
> supports FAT32 it therefore must have some large internal reliance on
> DOS.

More likely, very few really know all the details.  I surely don't, but
could probably locate the type of books that I mentioned which were widely
available in the early '90's that would explain in-depth.

Quote:> Please discuss here what the truth really is concerning where DOS fits
> into the structural functionality of Windows 9x.

AIUI above ...  HTH.  I'd swear somebody asked this same thing a few years
ago.

Rod Pemberton

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Klaus Meinhar » Tue, 18 Oct 2011 23:47:00


Hallo Rod,

Quote:> > Many people believe that Windows 95/98 runs "on top of" DOS.
> No.

Yes, somewhat :-)

Quote:> AIUI, there is a 32-bit, protected-mode DOS executive layer, but
> it's not running under Windows 9x.  It runs on top of Win9x like
> other applications, services, using Win9x's 32-bit functionality.
> I don't know what this is called for Win9x.  It's called NTVDM for
> other Windows OSes.

That means NT Virtual DOS Machine, and it runs only under 32bit NT
type OSs. Win 95 (and 98) belong to the DOS type OSsand were hybrid
16/32bit systems.,

They had to start DOS, which was then used to start some important
drivers and system processes. You could, with a little hack, still
boot to 16bit DOS (and remain and work there), then start Windows
(WIN.exe command), and shut down Windows and end up in DOS again like
after every other program. MS tried quite some antics to hide this
fact, but it was of course widely publicized in all computer
magazines.

It is debatable if you can call this "running on top of DOS". Windows,
when finally started, switched off some of the underlying 16bit DOS
system and became more and more 32bit, but even 98 couldn't run
without the underlying DOS.

--
Best regards,

*  Klaus Meinhard  *
<www.4dos.info>

 
 
 

What role does "DOS" play in Windows 95/98?

Post by tomdzi » Wed, 19 Oct 2011 01:02:45



Quote:> Hallo Rod,

> > > Many people believe that Windows 95/98 runs "on top of" DOS.
> > No.

> Yes, somewhat :-)

> > AIUI, there is a 32-bit, protected-mode DOS executive layer, but
> > it's not running under Windows 9x. ?It runs on top of Win9x like
> > other applications, services, using Win9x's 32-bit functionality.
> > I don't know what this is called for Win9x. ?It's called NTVDM for
> > other Windows OSes.

> That means NT Virtual DOS Machine, and it runs only under 32bit NT
> type OSs. Win 95 (and 98) belong to the DOS type OSsand were hybrid
> 16/32bit systems.,

> They had to start DOS, which was then used to start some important
> drivers and system processes. You could, with a little hack, still
> boot to 16bit DOS (and remain and work there), then start Windows
> (WIN.exe command), and shut down Windows and end up in DOS again like
> after every other program. MS tried quite some antics to hide this
> fact, but it was of course widely publicized in all computer
> magazines.

> It is debatable if you can call this "running on top of DOS". Windows,
> when finally started, switched off some of the underlying 16bit DOS
> system and became more and more 32bit, but even 98 couldn't run
> without the underlying DOS.

> --
> Best regards,

> * ?Klaus Meinhard ?*
> <www.4dos.info>

Klaus,
I visited www 4dos info and was intrigued by the capabilities of
WinEdlin. Would
you please advise me whether it is compatible with Vista and/or Win 7?

Thanks a ton!

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Ross Ridg » Wed, 19 Oct 2011 01:46:55



Quote:>Many people believe that Windows 95/98 runs "on top of" DOS.

Yes and no.  

Windows 95 starts of by booting real-mode MS-DOS pretty much
normally. Then it starts VMM (Virtual Machine Manager), a 32-bit ring
0 environment for creating virtual machines (VMs) that running cloned
versions of the MS-DOS enviroment that booted the PC.  VMM is essentially
a operating system to itself, with its own drivers (VxDs) and you can
argue this actually what Windows 95 runs on top of.

VMM then creates a VM for running "Windows" in.  Both 16-bit and 32-bit
Windows applications run as ring 3 protected mode applications in this
single VM.  When a Windows application does some sort of device access,
like read from a disk, the request gets passed to VMM.  If the VMM has a
suitable device driver then it handles the request itself.  If not then
the VMM can use the cloned MS-DOS environment to handle it.  It switches
the processor to Virtual 8086 mode, a protected mode enviroment where
instructions are decoded like in real-mode.  It can then use MS-DOS and/or
the BIOS to handle the request, without actually giving up control of
the machine.

Since MS-DOS acts as as device driver of last resort for the VMM,
you could also argue that Windows 95 is running on top of MS-DOS.
Note that ability to use MS-DOS and the BIOS like this is what allows
Windows 95/98/ME to work all sort devices on all sorts of PCs, even ones
without driver support.  That includes modern devices that didn't even
exist when these operating systems were released, at least those that
the BIOS has support for.

MS-DOS applications running under Windows 95 get their own VMs, seperate
from the main VM used to running Windows.  Real-mode MS-DOS applications
run in Virtual 8086 mode, however things disk and other device accesses
go through the VMM like with Windows applications.

Note that this is how Windows has worked in "enhanced mode" since support
for it was added in Windows/386 2.1.

                                                Ross Ridge

--
 l/  //   Ross Ridge -- The Great HTMU

-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
 db  //  

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Rod Pemberto » Wed, 19 Oct 2011 02:34:34



Quote:

> They had to start DOS, which was then used to start some important
> drivers and system processes.

AFAIK, it only needs HIMEM.SYS or another XMS driver ...  Personally, I use
HIMEMX.  The only place HIMEMX won't work with Win98 or SE is the very first
part of a fresh install from the install CD.  After the first reboot, you
can switch XMS drivers.  It's rumored MS has some custom code in HIMEM.SYS
for 98/SE/ME that's not present in normal DOS XMS drivers.

Quote:> You could, with a little hack, still
> boot to 16bit DOS (and remain and work there), then start Windows
> (WIN.exe command), and shut down Windows and end up in DOS
> again like after every other program.

You could do that ...  However, no hack is required to get to DOS.  You can
boot directly into 16-bit real-mode DOS for Win98 and SE.  I think you hit
F8 at startup.  A command menu appears.  You have two real-mode DOS choices,
one with drivers and one without.  Select either to boot into DOS.  ME
required a binary patch to the startup to allow access to real-mode DOS.

Quote:> MS tried quite some antics to hide this
> fact, but it was of course widely publicized
> in all computer magazines.

You must mean ME ...

Quote:> It is debatable if you can call this "running on top of DOS".
> Windows, when finally started, switched off some of the
> underlying 16bit DOS system and became more and more
> 32bit, but even 98 couldn't run without the underlying DOS.

You mean it can't start without DOS.  I don't believe it needs DOS once
started.  It might, but I don't think so ...  It needs a FAT16 or FAT32
filesystem.  It has PM 32-bit harddisk drivers.  In fact, it has PM 32-bit
device drivers for just about everything.  SATA drivers are the only thing
you won't find.  It switches video modes, so it probably needs BIOS via
16-bit v86 mode.

BTW, posting from and using either Win98 or SE since '98 ...  The
motherboard manufacturer claims it's motherboard is incompatbile with
Win98/SE:

AMD X2 5600+ 2.8Ghz AM2
MSI K9N Neo-F
EVGA Nvidia 7960GT 512MB
OCZ Sata II 64GB SSD
Logitech MX-518
4GB memory

Memory is capped at 1GB for WinSE by HIMEMX, but full 4GB should be
available in MS-DOS.  I've not confirmed though.

With KernelEx, you can run all sorts of non-Win98/SE software (single-core):

Opera 11.51
Mozilla FireFox 3.6.13 and 3.5.19
Java 6 update 27
Adobe Flash 11,0,1,152
OpenOffice 3.2
VLC 1.1.11

I've not tried more recent versions of FF.  It should run upto 3.6.17.  It
may run upto 3.6.22 or later.  Supposedly, you can run Adobe Reader 7
series, but not 8 or 9.  However, other open source pdf viewers are
available.

Rod Pemberton

 
 
 

What role does "DOS" play in Windows 95/98?

Post by DOS Gu » Wed, 19 Oct 2011 05:43:25



> It has PM 32-bit harddisk drivers.  In fact, it has PM 32-bit
> device drivers for just about everything.  SATA drivers are the
> only thing you won't find.  

That's actually incorrect.

For the first-generation SATA controllers (circa 2003 to 2005) you'll
have no problems finding win-98 drivers.  This is true regardless if the
controller is built on the motherboard or add-on PCI card.

The last intel chipset to have win-9x support (ICH-5R I believe - the
one that came with the 875 north bridge) had win-98 SATA/Raid driver
support.  As did many SiL 31xx-35xx chips.

I currently have a pair of SATA 1.5 TB FAT-32 drives connected to one of
my win-98 systems using a SiL 3112 dual-port PCI controller card.
Win-98 sees this as a SCSI adapter in the device manager.

The nice thing about having SATA drivers for win-98 (and setting the
SATA ports to SATA/Raid in the bios - NOT IDE emulation mode) is that
you don't have the 137 gb partition-size problem.

I think the rule of thumb is that there are win-98 drivers for any/all
SATA-1 controllers.  But not for SATA-2/3 controllers.

Quote:> EVGA Nvidia 7960GT 512MB

I was under the impression that 512 mb on a video card was totally
incompatible with windows 98.  Perhaps that was only if the card was
PCIe.  Is your card AGP?

Quote:> Memory is capped at 1GB for WinSE by HIMEMX, but full 4GB should
> be available in MS-DOS.  I've not confirmed though.

I believe that DOS can see all 4 gb.  You're right that himemX must be
used to prevent Win-9x from "seeing" more than 1.5 gb of system ram (I
believe that if you have 1.5 gb or less of actual ram, then you don't
need to use himemX).  I've played around with various vcache settings
and have gotten win-98 to see and make use of 1.2 gb ram on a 2 gb
system.  Windows ME can see and make use of almost 2 gb (this ability
apparently can't be transplanted into win-98).

Quote:> With KernelEx, you can run all sorts of non-Win98/SE software

Yes, I've been running KeX for about 3 years now.
 
 
 

What role does "DOS" play in Windows 95/98?

Post by Ross Ridg » Wed, 19 Oct 2011 07:34:30



Quote:>For the first-generation SATA controllers (circa 2003 to 2005) you'll
>have no problems finding win-98 drivers.  This is true regardless if the
>controller is built on the motherboard or add-on PCI card.

Every SATA device I've seen has a backwards compatiblity mode (often
the default) which presents a standard IDE interface that the standard
Windows 98 IDE drivers can use.  The only problem is that the standard
Windows drivers don't support drives bigger than 137 GB (28-bit LBA).
A workaround is not to use any driver at all and fall back to the BIOS,
which has a 64-bit LBA interface and gives compatibility with any
interface the BIOS can boot off of.

Quote:>I was under the impression that 512 mb on a video card was totally
>incompatible with windows 98.  Perhaps that was only if the card was
>PCIe.  Is your card AGP?

There's no fundamental reason why a 512MB video card would have to be
incompatible, but as far as I know there aren't any with full Windows
98 drivers.  He could however being using that card with the standard
VGA driver or with a VESA driver.

                                        Ross Ridge

--
 l/  //   Ross Ridge -- The Great HTMU

-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
 db  //  

 
 
 

What role does "DOS" play in Windows 95/98?

Post by DOS Gu » Wed, 19 Oct 2011 08:29:46



> > For the first-generation SATA controllers (circa 2003 to 2005)
> > you'll have no problems finding win-98 drivers.

> Every SATA device I've seen has a backwards compatiblity mode
> (often the default) which presents a standard IDE interface
> that the standard Windows 98 IDE drivers can use.

I am not talking about IDE-compatibility mode (for which win-98 uses the
crippled ESDI_506.PDR which is where the 137 GB limitation lies).  BTW,
there is a modded public-domain version of ESDI_506 that's supposed to
address that problem.

It's been my experience that when I need to find them, I've had no
problem getting and installing drivers for SATA/Raid controllers for
Windows 98 for SATA-1 controllers.  Be it SiL, Intel, or Via.

On the system I'm using right now to type this post - a win-98 system
running on a P4 2.5 Ghz CPU Intel 845 motherboard, I have a PCI SATA
card with a Silicon Image SiL 3512 SATARaid Controller.  The driver for
this controller is SI3112r.mpd, file details says "Serial ATA Raid
miniport driver".  The comments says "Sil 3x12 SataRaid driver for
Windows 98/SE/ME, NT 4.0, Windows 2000/XP, and Windows Server 2003".

Quote:> > I was under the impression that 512 mb on a video card was
> > totally incompatible with windows 98.  Perhaps that was
> > only if the card was PCIe.  Is your card AGP?

> There's no fundamental reason why a 512MB video card would have
> to be incompatible,

The consensus on the win-98/me forum on MSFN.org is that a 512mb video
card will not work under win-98, regardless what hacked or modded driver
is used.  Now, that may very well apply only to PCIe cards - because 512
MB AGP cards are (to my knowledge) less "available" within the last say
5 years (or were never that popular at any point in time).
 
 
 

What role does "DOS" play in Windows 95/98?

Post by DOS Gu » Wed, 19 Oct 2011 08:46:17



> Since MS-DOS acts as as device driver of last resort for the VMM,
> you could also argue that Windows 95 is running on top of MS-DOS.

Isin't it more accurate to say that Windows 9x is simply accessing
hardware via a 16-bit driver running in the DOS VMM that IT (windows)
controls?

And is this only for situations where there is no 32-bit driver
installed?

Perhaps in the early days of Win-9x there were many systems that were
upgraded and perhaps some new off-the-shelf systems that had to rely on
pre-existing 16-bit DOS or win-3.0 drivers, but a year or two later (and
persisting until about 2005 or 2006) I'd venture a guess and say that
there simply wasn't any hardware in use on the typical win-98 machine
that didn't have 32-bit drivers.

So for any win-98 system that *doesn't* have 16-bit device drivers, you
can't really say that windows is running "on top of" DOS now can you?

I guess my main point is that if you order various components
horizontally such that there is a "top" component or top layer, you are
implying that the layer underneath is a foundation for or is in control
of the layer above it, and this lower layer must know that the higher
layer exists.  That clearly is not the case for the relationship between
DOS and Win-9x.

Wouldn't you agree that what we have here is a case where DOS runs "on
top of" Windows 9x - and not the other way around?  And even then - only
when it's called for?

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Trifle Meno » Wed, 19 Oct 2011 09:14:53



>Wouldn't you agree that what we have here is a case where DOS runs "on
>top of" Windows 9x - and not the other way around?  And even then - only
>when it's called for?

Seems you did not read the book

--
Free web mail, POP3, and SMTP
http://www.beewyz.com/freeaccounts.php

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Ross Ridg » Wed, 19 Oct 2011 09:36:49



Quote:>I am not talking about IDE-compatibility mode ...

I was.

Quote:>The consensus on the win-98/me forum on MSFN.org is that a 512mb video
>card will not work under win-98, regardless what hacked or modded driver
>is used.

Like I said, there's no fundamental reason why a driver for a 512MB video
card, a real driver, not some hack, couldn't be written for Windows 98.
There just wasn't a good enough reason for ATI or NVIDIA to do so.
The memory size of the video card is irrevelent.  Some people, I'm
guessing like those on the forum you mentioned, assume that all of video
card's memory must be mapped in to the physical address space somewhere,
but that's not in fact the case.

And like I also said, the standard 640x480 16-colour VGA driver will work
any modern video card, since they're all VGA compatible.  My 1GB ATI
5770 works just fine with Windows 98 and this driver.  That VESA-based
driver floating out there should also work with any video card, but I
haven't actualy tried it.

                                                Ross Ridge

--
 l/  //   Ross Ridge -- The Great HTMU

-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
 db  //  

 
 
 

What role does "DOS" play in Windows 95/98?

Post by Ross Ridg » Wed, 19 Oct 2011 09:56:35



Quote:>Isin't it more accurate to say that Windows 9x is simply accessing
>hardware via a 16-bit driver running in the DOS VMM that IT (windows)
>controls?

I think it would be more accurate to say that Windows runs under some
weird VMM/MS-DOS 32-bit/16-bit hybrid, but does it really matter?

Quote:>And is this only for situations where there is no 32-bit driver
>installed?

I'm not sure if its ever the case that Windows 95/98/ME never needs to
use MS-DOS after it boots.  The VMM effectively takes over a lot of the
functionality of MS-DOS but I don't know if it actually ever supplants it.

                                                Ross Ridge

--
 l/  //   Ross Ridge -- The Great HTMU

-()-/()/  http://www.csclub.uwaterloo.ca/~rridge/
 db  //  

 
 
 

What role does "DOS" play in Windows 95/98?

Post by DOS Gu » Wed, 19 Oct 2011 10:36:20



> > I am not talking about IDE-compatibility mode ...

> I was.

Why?

I'm still not sure where you stand then on SATA drivers for win-98.

Quote:> > The consensus on the win-98/me forum on MSFN.org is that a 512mb
> > video card will not work under win-98, regardless what hacked or
> > modded driver is used.

> Like I said, there's no fundamental reason why a driver for a 512MB
> video card, a real driver, not some hack, couldn't be written for
> Windows 98.

Ok, I think we misunderstand each other.

Yes, your right that anything is possible.

In this case, it is not easily possible.  There is something that can't
easily be overcome by win-98 enthusiasts when it comes to 512 mb video
cards.

Quote:> Some people, I'm guessing like those on the forum you mentioned,
> assume that all of video card's memory must be mapped in to the
> physical address space somewhere, but that's not in fact the case.

No, they know that not all of the video memory is mapped into system
memory.

Quote:> And like I also said, the standard 640x480 16-colour VGA driver
> will work any modern video card, since they're all VGA compatible.

16-color VGA is useless if the intent is to run windows.  Even Windows
98.

Quote:> My 1GB ATI 5770 works just fine with Windows 98 and this driver.

In 16-color VGA mode?  Is that what you're calling "working just fine" ?
 
 
 

1. DOS 16-bit programs in Windows 95/98 window

Hello,

Could someone point me to any resources which explain the Microsoft
Windows 95/98 limitations for DOS 16-bit programs running in a window.
I need to modify a few DOS programs (in Pascal) to be able to display
640x480x16 and 640x480x256 mode graphics. However they will not
run in a window, but only in full screen mode. Text modes work fine
however.

Thanks for your help.

Mike McWhinney
Chief Engineer
elja, Inc.

2. Oracle EBS Consultant with Service contracts

3. "make" for DOS/95 w/ long filename support ?

4. Boot sector virus.

5. No "exit" using 4dos and Windows 95

6. Changing the html Browser

7. "send" for windows 95???

8. Create Rectangle in VBA

9. Looking for DOS "PUSHD" & "POPD"

10. The DOS "" for "/"

11. DOS-Based "legacy" database management system called "Profile"

12. ".inf" vs ".info" in djdev201.zip "info/dir" file

13. DOS/Windows95 Help/Links, etc (LF) at the "DOS and Windows Help" Pages!