WSL будет ближе к coLinux, чем Cygwin.
Имейте в виду, что Unix, POSIX и Linux - это разные вещи .
Cygwin - это уровень совместимости POSIX, который работает поверх подсистемы Win32 . Это не имеет ничего общего с Linux ; в широком смысле его можно рассматривать как «просто еще один Unix-подобный», где для переноса программ требуется перекомпиляция и, возможно, модификация исходного кода, а все, что требует специфичных для POSIX Linux функций, вероятно, не будет работать.
WSL разработан, чтобы быть ABI- совместимым с собственно Linux. Он не использует настоящее ядро Linux, но совместим так, что программы, скомпилированные для Linux, могут работать на нем без перекомпиляции или перевода. WSL является частью ядра NT, поэтому существует независимо от подсистемы Win32. Это похоже на более старый SUA, хотя это была подсистема POSIX (не Linux!) Поверх ядра NT.
coLinux использует настоящее (хотя и модифицированное) ядро Linux. На стороне Windows он существует как драйвер, который обеспечивает управление памятью и доступ к вводу / выводу. Концептуально, это наиболее близко к виртуальной машине, хотя с более тесной интеграцией между хостом и гостем.
С точки зрения программы, и WSL, и coLinux выглядят примерно так же, как настоящее ядро Linux, работающее на сыром оборудовании. WSL (в настоящее время) имеет больше ограничений и причуд, но также имеет поддержку сторонних разработчиков (Microsoft) и wotks на x86_64. coLinux - настоящее ядро Linux, поэтому будет вести себя так же, как Linux, тогда как WSL - это реализация ABI для чистых помещений.
Cygwin не выглядит ближе к Linux, чем, скажем, FreeBSD.