I was just a kid during the 1990s when all of this was happening, but a few years ago I remember reading about an IBM project named GUTS where one kernel would run multiple OS "personalities":

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

The 1990s were quite a time for personal and workstation computing.

This was the same design goal that Windows NT had. In fact, it launched with Win32 (Windows), OS/2, and POSIX (UNIX).

I think the OS/2 subsystem was 16-bit OS/2 1.x so nobody cared and the POSIX subsystem was just compliant enough to win government contracts.

This design is why we have the "Windows Subsystem for Linux" (a name everybody hates) because "Windows Subsystems" were already a thing in Windows.

Docker, Distrobox, and even Flatpak are one kernel with multiple "personalities" but they are all still Linux I guess.

You can also argue have this on our desktops today with things like KVM in Linux and Hyper-V in Windows.

Back then if POSIX support was actually serious I would never have bothered to play with Linux, by buying the first edition of Linux Unleashed book.

I also bet that many others would not have cared, and used UNIX/NT personality if that was the case.

Microsoft technically delivered something very close to OS/2’s “Personalities” in Windows NT 4. They called it "Environment subsystems". Each subsystem could run applications written for different operating systems, the 3 available ones were Win32, OS/2 and POSIX. Then there was the "Integral subsystem", which operated system-specific functions on behalf of environment subsystems.

But every subsystem other than Win32 was kneecapped mostly due to politics and market positioning.

In late 90s Microsoft bought a company which had developed a more enhanced Unix subsystem and rebranded it as Interix and marketed as Windows Subsytem for Unix (SFU).

I believe the original WSL was a resurrection of SFU before WSL2 pivoted to a VM-based approach.

Nope, WSL 1.0 was based on pico-process, see Drawbridge project.

https://www.microsoft.com/en-us/research/project/drawbridge/

https://learn.microsoft.com/en-us/archive/blogs/wsl/pico-pro...

Thank you for the correction

No, the original WSL was a weird new thing where NT kernel-level driver actually serviced Linux system calls.

IIRC, Interix still used same approach as original posix subsystem (and Windows and OS/2 subsystems) of providing the interface as DLL that ultimately your application would be linked against.

Thank you for the correction