What you have to understand about WSL is that it relies on one of the three userspaces that the NT/VMS kernel was designed to offer: Win32, POSIX, and OS/2.
Cygwin and busybox performance is awful in code that calls fork() often, but I understand that WSL1 behavior is very different, because fork() isn't fighting through layers of Windows.
The reason that the POSIX layer exists in NT is that Microsoft was the largest UNIX vendor in the early 80s with their XENIX variant, where the largest market segment ran on the TRS-80 Model 2 (68k-based, 3 simultaneous users, two attached rs-232 terminals).
"Broad software compatibility was initially achieved with support for several API "personalities", including Windows API, POSIX, and OS/2 APIs – the latter two were phased out starting with Windows XP."
My understanding was that POSIX was added to qualify for government contracts that required a FIPS-1512 compliant OS and had little to do with their UNIX business which was taken over by SCO in 1987.
My mental model is that they shed any UNIX business to focus on Windows, but then POSIX happened and they had to provide something in the market to meet the requirement.
Were this to be true, and they intended immediate death for this whole layer, then a) "Windows Services for UNIX" would never have existed, and b) the famous argument with David Korn over the quality of their port of his shell would never have happened.
In any case, a "userspace personality" such as NT exhibits is not added quickly. The NT design began in the late 80's, and I think that something like a POSIX layer existed from the beginning.
I didn’t say they intended death for the POSIX subsystem, but that it was included to satisfy requirements for government contracts. It had the obvious additional advantage of allowing UNIX software to be recompiled for Windows with minimal changes.
Cygwin and busybox performance is awful in code that calls fork() often, but I understand that WSL1 behavior is very different, because fork() isn't fighting through layers of Windows.
The reason that the POSIX layer exists in NT is that Microsoft was the largest UNIX vendor in the early 80s with their XENIX variant, where the largest market segment ran on the TRS-80 Model 2 (68k-based, 3 simultaneous users, two attached rs-232 terminals).
"Broad software compatibility was initially achieved with support for several API "personalities", including Windows API, POSIX, and OS/2 APIs – the latter two were phased out starting with Windows XP."
https://en.m.wikipedia.org/wiki/Windows_NT