I haven't used Windows in quite some time, but I believe they are quite different. WSL is more like a very basic version of Wine in that it implements Linux system calls and can execute ELF binaries, and as such requires you to install a host OS for libc and any other libraries you want. Cygwin is more like Winelib in that it provides a custom libc implementation and toolchain that are natively compiled, and as such requires you to rebuild your applications.
My understanding of WSL is that Linux software runs natively on Windows by virtue of a compatibility layer. Eg. if there is a fork() in my code it will be translated into CreateProcess() or something like that.
Perhaps you're right, maybe WSL can do all the job nicely so maybe there is little if any point in developing cygwin. I have never tried it to be honest. I just prefer Windows 7 and loosely-integrated solutions - a 3rd-party Linux in a box feels better than a Microsoft Linux in the Windows kernel (yet just using a VM doesn't feel great for performance reasons and beacuse of not rally seamless file system integration).
Why wouldn't you use WSL?
I haven't used Windows in quite some time, but I believe they are quite different. WSL is more like a very basic version of Wine in that it implements Linux system calls and can execute ELF binaries, and as such requires you to install a host OS for libc and any other libraries you want. Cygwin is more like Winelib in that it provides a custom libc implementation and toolchain that are natively compiled, and as such requires you to rebuild your applications.
My understanding of WSL is that Linux software runs natively on Windows by virtue of a compatibility layer. Eg. if there is a fork() in my code it will be translated into CreateProcess() or something like that.
3 replies →
WSL is actually backwards analogue of WINE, also described as ENIW.
2 replies →
Wine seems basic and immature in comparison to WSL not the other way.
2 replies →
Windows < 10/1809 compatibility, ability to ship standalone applications, force of habit, need for something WSL doesn't support.
Ironically, Cygwin might be closer to "native" than WSL is in some cases.
> need for something WSL doesn't support.
Like what...?
> Ironically, Cygwin might be closer to "native" than WSL is in some cases.
Which cases...?
1 reply →
Perhaps you're right, maybe WSL can do all the job nicely so maybe there is little if any point in developing cygwin. I have never tried it to be honest. I just prefer Windows 7 and loosely-integrated solutions - a 3rd-party Linux in a box feels better than a Microsoft Linux in the Windows kernel (yet just using a VM doesn't feel great for performance reasons and beacuse of not rally seamless file system integration).
You could try MSYS2.