VOGONS


First post, by notsofossil

User metadata
Rank Member
Rank
Member

Fellow Windows experts, I'd like to put something to rest. I've tried to determine whether Windows 9x and NT are not the same thing, but I haven't found much information to confirm yes or no.

For a long time, me and a lot of users have thought of 9x and NT as being the same thing. After determining that Microsoft probably did not include 9x in their chosen number for Windows 7, that and the fact that Windows 2000 and earlier have very poor 9x/MS-DOS support, I figured 9x and NT were very different and not normally compatible with each other.

To clarify, what I want to know is HOW different is 9x from NT? Is it just MS-DOS? The kernel itself? APIs? I'd love some details.

Thinkpad T42 Win9x Drivers | Latitude D600 Win9x Drivers
Next: Dell Inspiron 8000

Reply 1 of 59, by kixs

User metadata
Rank l33t
Rank
l33t

Well, it's like everything but the looks (I mean Win95 and NT4). Win9x era ended with Windows ME. While NT is still going on strong even with Win 10 (with all the bells and whistles).

You should check the wikipedia for more explanations as there are tons of differences.

https://en.wikipedia.org/wiki/Windows_NT_4.0
https://en.wikipedia.org/wiki/Windows_95

Requests are also possible... /msg kixs

Reply 2 of 59, by Scali

User metadata
Rank l33t
Rank
l33t

In short, Windows NT was Microsoft's all-new 32-bit protected mode multi-user, pre-emptive multitasking system. It introduced the Win32API that is still in use today.

Windows 9x was a 'stopgap' solution to bridge the DOS and Windows NT worlds. It implements a part of the Win32API, so many Windows NT applications can run on it. At the same time, it still had DOS at its core, and allowed you to run most DOS applications as well (or boot back to a 'real' DOS for problematic applications). Windows NT has no DOS at all, and it could only run DOS applications via a virtual machine, the NTVDM. This had only limited compatibility.

So at the base they are two completely different OSes, but they share some of the Win32API, so to applications they 'look' more or less the same.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 3 of 59, by notsofossil

User metadata
Rank Member
Rank
Member

So, the Win32API is the common ground between 9x and NT? But at their cores and in the lower levels, they are completely different? Like the existence of the Win16 subsystem and the MS-DOS manager?

Why is it occasionally there are 32-bit Windows 9x games that refuse to work on older versions of Windows NT? System Shock 2 on Windows 2000, for example.

Thinkpad T42 Win9x Drivers | Latitude D600 Win9x Drivers
Next: Dell Inspiron 8000

Reply 4 of 59, by Scali

User metadata
Rank l33t
Rank
l33t
notsofossil wrote:

So, the Win32API is the common ground between 9x and NT?

Only part of it.
Win9x does not support all of the Win32API functions, and for the functions it does support, some parameters are not supported/not implemented. Most commonly, a lot of Win32API functions allow you to pass SECURITY_ATTRIBUTES. Win9x does not implement a security model, so it just ignores this.

notsofossil wrote:

But at their cores and in the lower levels, they are completely different?

Yup, at all levels really. They are different kernels, and each has their own implementation of the Win32API on top of that kernel. So while both Oses have the same usual DLLs, such as user32.dll, gdi.dll etc, they are completely different DLLs.

notsofossil wrote:

Why is it occasionally there are 32-bit Windows 9x games that refuse to work on older versions of Windows NT? System Shock 2 on Windows 2000, for example.

This became a problem when many developers used Win9x to develop Win32 applications. They had never tested on the full Win32API during development (with NT3 or NT4), so when people moved to Windows 2000/XP, they suddenly found that all sorts of apps didn't work properly anymore.
This was because these apps just 'happened to work' on Win9x, but in reality, certain parameters or return values were not set correctly according to the Win32API specification. Parameters and return values that the limited Win32 implementation in Win9x just ignored.

Or sometimes Win9x gave you access to things that you shouldn't have access to. Eg, you could just read back the status register on the VGA card directly on Win9x. In NT (or Win32 in general) you're not supposed to access any hardware directly from your application, and you have to use a driver/API instead.
You could even get 'ring 0' access in Win9x quite easily with a simple hack, which allowed you to tweak some low-level system options.

Another problem can be that some software uses custom drivers to get direct access to the system. Win9x drivers were not compatible with NT, so such software will not work if only Win9x drivers exist.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 5 of 59, by notsofossil

User metadata
Rank Member
Rank
Member

Very insightful, thanks! So I guess the real Y2K bug was migrating from Windows 9x to NT. In my opinion, Windows XP has not too shabby 9x support, but seeing how I have the means to run Win9x, I'd rather run that when my goal is 9x games and programs.

What do people usually run on NT 4.0 and 3.1 now? I can't think of much that is compatible with them.

Thinkpad T42 Win9x Drivers | Latitude D600 Win9x Drivers
Next: Dell Inspiron 8000

Reply 6 of 59, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

I don't see any reason for NT. On Windows 3.x you can run a lot of games. Most of them run the same on Windows 9x BUT you can run Windows 3.x in Dosbox eithout any problem 😉

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 7 of 59, by Scali

User metadata
Rank l33t
Rank
l33t
notsofossil wrote:

What do people usually run on NT 4.0 and 3.1 now? I can't think of much that is compatible with them.

I used NT 4.0 for software development. It was considerably more robust than Win9x. Which is a good thing when you are developing, because your code will likely have some bugs, resource leaks etc in the early stages. With Win9x you often had to reboot, or even get BSODs... Sometimes you'd also lose some of your work because FAT filesystems were easily corrupted. NTFS is journaling, so it was very reliable, even if you did get a system crash.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 8 of 59, by brassicGamer

User metadata
Rank Oldbie
Rank
Oldbie

I was really surprised when I saw this question. I thought it was generally recognised that there are fundamental differences between the two platforms but then maybe I take the difference for granted because I grew up in that era.

The similarities are almost completely cosmetic so, in the context of retro gaming, I can almost see why you would see no difference. But while Windows 95 and 98 technically ran on top of DOS for compatibility, NT was built from the ground up and is completely 32-bit. This is why devices need their own drivers for NT. Microsoft developed it to be processor-independent which is why there are versions of it for Intel, DEC ALPHA, MIPS and even PowerPC platforms. It was their entry into providing an enterprise level operating system, which is why you have the Server and Workstation versions. It also supports multiple processors. Prior to NT there was no such thing as a Windows server. Novell was probably the most established and well supported server platform out there, hence why if you wanted to do multiplayer over a LAN it was most likely be over IPX.

There are more similarities between ME and 2000 than there are between NT4 and 98 but if you were running a computer within an enterprise environment it was NT all the way. I was still migrating offices from NT4.5 to XP at the beginning of 2004. XP unified the platforms which is why you have XP Home and Professional versions, the latter being able to join a domain, the former not.

Enough differences for you?

Check out my blog and YouTube channel for thoughts, articles, system profiles, and tips.

Reply 9 of 59, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

There was never a NT 4.5, there was NT3.5(1) and OS/2 4.5

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.

Reply 10 of 59, by Scali

User metadata
Rank l33t
Rank
l33t
Cyberdyne wrote:

There was never a NT 4.5, there was NT3.5(1) and OS/2 4.5

And NT5 aka Windows 2000 😀
So I was thinking it should have read "NT4/5".

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 11 of 59, by brassicGamer

User metadata
Rank Oldbie
Rank
Oldbie
Cyberdyne wrote:

There was never a NT 4.5, there was NT3.5(1) and OS/2 4.5

Quite right. Not sure where I got that from then! It's been a while 😀

Check out my blog and YouTube channel for thoughts, articles, system profiles, and tips.

Reply 12 of 59, by HighTreason

User metadata
Rank Oldbie
Rank
Oldbie

Windows Neptume had a version number of 5.50 so far as I remember, but it was never completed or released so it doesn't count. Windows 2000 was initially known as NT 5.0 but only ever seems to have used 5.0 as its version number. NT 4.0 did not increment its version numbers like this, at least, it did not display them that way, though I suppose you could argue service packs and such but meh.

Why am I here? NTFS might be great for software development, but it sucks major balls for video work, sequential reads and writes have to effectively "fragment" the drive and be written FAT style to dodge latency, buffer problems and all sorts of bullshit.

My Youtube - My Let's Plays - SoundCloud - My FTP (Drivers and more)

Reply 13 of 59, by ynari

User metadata
Rank Member
Rank
Member

There was NT 3.1, 3.5, 3.51, 4, 2000 etc. Technically the OS/2 'convenience pack' is version 4.5, but it never gets referred to as that. The last widely available OS/2 release was 4.0.

There was shared code between the two platforms, especially in the interface, and I'm sure DirectX would be substantially similar on both platforms.

Not only was the kernel completely different between 9x and NT, but there were no security APIs (already mentioned), less precision in the GDI APIs (significant for CAD), and whole swathes of other missing networking and storage functionality. 9x was a lot more tolerant of poor programming, such as writing values to places you should not..

Prior to NT, MS' networking server offering was MS Lan Manager i.e. server software on OS/2, IBM's version was Lan Server. NT needed the OS/2 1.x subsystem in the early days because they had no mail server offering, other than MS Mail, some components of which required OS/2.

Reply 14 of 59, by Scali

User metadata
Rank l33t
Rank
l33t
ynari wrote:

There was shared code between the two platforms, especially in the interface, and I'm sure DirectX would be substantially similar on both platforms.

Actually, it wasn't at all.
NT 4 did receive limited support for DirectX, but because of a very different driver model, Microsoft could not add 3d acceleration to DirectDraw on NT 4.
Also, for years, Win9x was considered the better platform for DirectX, because it had lower overhead than NT/2000/XP. In NT/2000/XP, DirectX had to be 'shoehorned' into the OS somewhat. Large parts of the functionality were implemented in the kernel part of the driver. Because of the limited means of communication between API layer and driver layer, this led to large command/data lists being 'compiled' by the API, and then sent to the driver to process them.
It wasn't until Vista arrived with the new WDDM that Microsoft had a 'proper' driver model for efficient DirectX in NT-based Windows.
In Win9x they could cut a lot of corners, because the design wasn't as strict, and stability was less of an issue with consumer-grade OSes than with server/workstation-grade OSes.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 15 of 59, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

The fact that this forum thread exists at all is rather hilarious to me, no offense to notsofossil but VOGONS exists primarily because things were so different between NT 4 / Win2K / WinXP and DOS / Win9x that people needed to make all sorts of compatibility patches, shims, locate obscure registry settings, create wrappers and emulators and all sorts of stuff just to get old DOS games and old Win9x games to work in "new systems" - new operating systems, which at the time were Windows 2000 and Windows XP, NT-based operating systems.

This is WHY the "DOS" and "Windows" subforums exist - not to make threads about getting a DOS game running on your old MSDOS PC, nor a Win9x game running in Win9x, but to get them running in Win2K and up. Trading the advice, knowledge, tricks and tips to run them natively. Early on this was prior to emulators, prior to virtual machines that could do the job. So the question was how to run them natively. Back in the day we even played around with NT 4 compatibility fixes. Ask DosFreak, he helped make the old lists at ntcompatible.com before/while he made his own.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 16 of 59, by HighTreason

User metadata
Rank Oldbie
Rank
Oldbie

@Scali; Thank you. I tried explaining this to hordes of XP fanboys over the years and none of them would listen, they usually just got mad instead. Then got even madder when my 98 box would run things faster than their similarly specced 2K/XP one would. Then again, this was the same crowd of morons who thought 98SE would run better on their 486DX-33 than DOS/3.1 because "It says it's better on the box." or some such bullshit.

----------

This rates another point; No direct hardware access. Anything relying on that will not work properly or at the very least might lag or behave unpredictably. One only has to try "echo BURP! > COM1" to see how the OS handles things differently in that regard, preferably with a device listening on the other end.

I never liked the NT platform as a whole.

Here's a tidbit for you; NT 3.51 was the first OS to have a start menu, but this was only via the "Shell Update" which the user had to install to replace the Program Manager interface.

My Youtube - My Let's Plays - SoundCloud - My FTP (Drivers and more)

Reply 17 of 59, by Rhuwyn

User metadata
Rank Oldbie
Rank
Oldbie

Wow I thoght that even if people didn't know why they were diffrent they at least knew they were diffrent. Win9x/ME runs on top of DOS. Windows NT/2000/XP all the way to Windows 10 uses the same kernal which just continues to be updated along with new technology.

Ultimately I think they realized the NT kernal was more secure and stable but they hadn't designed it for use by consumers it was a business OS primarily. Rather then develop two completely different operating systems they would only develop one operating system and create "editions' which would determine the feature sets included. Then did as best they could with XP to basically create that initial bridge as a Windows2k/9x hybrid in terms of compatibility and for the most part they knocked it out of the park. Even server operating systems are essentially the same only they have all the server packages that Microsoft developers included.

Anyone that wants a good book on Windows mechanics I highly recommend "Windows Internals" the newer versions only cover the newer versions of windows but you can pick up and older copy that covers NT and 9x which is awesome reading. I've found stuff in there that I literally can't google which is rare these days.

Reply 18 of 59, by elianda

User metadata
Rank l33t
Rank
l33t

There are indeed a few advantages where NT4 shines:

- 2D accelerated graphics (like BitBlt calls) are handled much faster than on Win9x. This is related to the driver backend. I have some benchs with e.g. Tom2D that shows like 10 times faster performance (P166MMX / Riva128). Thus games relying on DirectDraw3 like e.g. Diablo benefit from this.
- preemptive multitasking often helps to get a smoother experience, where in Win9x some operations can lock e.g. the user input thread briefly. In the late BBS times it was also used to run different BBS ports (front doors) in NTVDM processes each (with Modems on COM1,2 a.s.o.). Win9x was not suited for this as the DOS windows would block each other. Another option was to use OS/2. Previously one usually setup a netware network with a server hosting all the files and each client would be one front door.
- the 3D API of choice in NT4 was OpenGL/Glide.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 19 of 59, by hyoenmadan

User metadata
Rank Member
Rank
Member
Dominus wrote:

I don't see any reason for NT. On Windows 3.x you can run a lot of games. Most of them run the same on Windows 9x BUT you can run Windows 3.x in Dosbox eithout any problem 😉

Errr... there are a vast world outside games, you know.