I did find a lot of information about how the Windows Subsystem for Linux (WSL) works on the MSDN blog. I know it's based upon translating the Linux syscalls to NT syscalls in real time and therefore it's possible to run unmodified ELF binaries.
WSL is a NT subsystem, and so are/were the Microsoft POSIX subsystem, the Windows Services for UNIX (SFU), and the Subsystem for Unix-based Applications (SUA) / Interix.
Cygwin on the other hand is an application that sits on top of the Win32 subsystem.
On the blog it says that programs needed to be recompiled for SUA. Since SUA is (how I understand it) the successor of SFU which in turn is the successor of the POSIX subsystem. So I assume all those needed recompiled binaries, too.
If that's the case then how do those predecessors of WSL differ from Cygwin?
I'm looking for a comparison between the previously mentioned systems/programs and how they work 'under the hood'. (Specifically how WSL differs from its successors)
PS: needed to remove some links for now since my reputation on SU limits me to 2