> Win32s was Windows NT 3.1

No, that's badly wrong. You are confusing Win32s with Win32.

But the mix-up seems to go deeper.

Win32 is an API. Nothing exactly "ships with it". Various products implement some of Win32, including Windows NT, Windows 95/98/ME, and WINE.

Win32s is a package, so it's something that an OS could "ship with" -- but nothing ever did.

https://en.wikipedia.org/wiki/Win32s

Win32s is a sort of shim for 16-bit Windows that implements a subset (thus the "S") of Win32 allowing some binaries that targeted Win32 to launch and execute on 16-bit Windows.

In other words, in 1992 Win32s was a thing you could install on Windows 3.1 that implemented enough of the API of the as-yet-unreleased Windows NT so that some simple apps could launch and run.

It came with the Freecell game as a demo. Original Windows Freecell was only ever a 32-bit app.

It enabled developers working on apps for the forthcoming 32-bit Windows to test code on a released OS without the hassle of running on a beta OS that was, AFAICR, fairly tightly controlled, hard to get, wouldn't run on many computers in 1992-1993, and for which the supported hardware cost a lot: £5000 or so.

Whereas Win 3.1 could run on any old clunker.

It wasn't really for distribution, because not much worked and it wasn't very stable. I don't think anyone sane would try to ship a 32-bit app to Windows 3.1 users.

Fun fact #1: Win32s is still out there for download.

https://winworldpc.com/product/win32s/130

You can unzip it, extract FREECELL.EXE and a couple of other files, and enjoy the original tiny fast Freecell on Windows 11, even on Arm. Works great.

(The modern Freecell is a bloated thing that wants an internet connection and some online accounts.)

Fun fact #2: Win32s caused IBM real pain with OS/2 >=2. It sort of ran under WinOS2 inside OS/2 and that enabled IBM to claim in marketing materials that OS/2 could run 32-bit Windows apps without really blatantly lying.

(Aside for those too young to have used IBM OS/2... WinOS2 was a real licensed copy of Windows 3.0 and later Windows 3.1 which ran in a VM inside OS/2 >= 2, and it let OS/2 run 16-bit Windows apps on the OS/2 desktop. The IBM and Microsoft co-development agreement gave IBM a license to use Microsoft's code. So IBM modified Win3.x to run seamlessly on the OS/2 DOS VM. Later, IBM shipped a cheaper version of OS/2 Warp which didn't include WinOS2 but could integrate an existing installation of Windows 3.1 from your hard disk. This wasn't just cost-saving: it meant that OS/2 picked up and could run all your existing installed Windows applications. That could be a big time saving. Snag: Windows _drivers_ didn't work under OS/2 so it didn't always work. Bigger snag: you couldn't uninstall it again; it was a one-way migration. Even bigger snag: IBM gave away time-bombed demo versions. A time-bombed OS is not a great idea. Even if users liked it, and bought the full thing, they had to reinstall.)

So, MS kept "updating" Win32s so that it did naughty things with memory allocation that broke WinOS2.

IBM kept updating WinOS2 to run it.

Eventually MS succeeded and WinOS2 could not run Win32s 1.30.

https://www.os2world.com/wiki/index.php/Installing_Win32s_in...

At that exact point, Microsoft mysteriously stopped finding any more bugs and stopped updating Win32. What a baffling puzzle!