NT 3.51 attempts to run 4.0 applications

23 Jul 2017

NT 3.51 tries to run Windows 95 applications, which had a subsystem version of 4.0. However, this was also the same subsystem version used by NT 4, with the result that NT 3.51 will always try to run an NT 4.0 binary. Each binary would need to explicitly guard against that if it intended to not work, and unsurprisingly, most don't.

Although it sounds circular, the attempt to run Windows 95 applications has the effect of running Windows 95 applications. Vendors were supporting Windows 95 and NT 4 a lot longer than NT 3.51, despite the technical similarities. But the requirement for NT 4 might only be constrained to the installer.

I mean, why would NT 4's WordPad check that it's running on NT 4?

The real implications of this though are the ability to run lower level NT 4 tools that seem desirable. For example, the NT 4 version of CMD works well, and it's a significant improvement over the 3.51 version. Aside from anything else, it's much more compatible with today's CMD scripts.

This also applies to a lot of command line tools. For example, Visual C++ 6's toolchain "just works" on NT 3.51, no hacks required. And it's a lot better to work with than Visual C++ 4, the last version officially supported on NT 3.51.

So after updating CMD, the compiler, and installing Vim, NT 3.51 starts to feel like a usable development platform.