![总结](https://linux22.com/image/1588627/%E6%80%BB%E7%BB%93.png)
答案1
每个人都说,Linux 子系统或 WSL 仅在 Windows 10 中受支持。
每个人都完全正确。 Windows Linux 子系统不存在且无法启用/安装在 Windows 7 上。
基于 UNIX 的应用程序子系统与 Windows 10 功能无关。在 Windows 10 发布之前,它也被称为 Interix。
Interix 是适用于 Windows NT 操作系统的可选、符合 POSIX 标准的 Unix 子系统。Interix 是 Windows Services for UNIX 的一个组件,也是 Microsoft POSIX 子系统的超集。
支持的工具是重新编译的版本。WSL 实例中包含的工具与在 Linux 上运行的工具相同。
与过去的实际 Linux 发行版不同的是,它被编译成 UWP 应用程序,与 Linux 子系统交互,几乎可以兼容任何 Linux 发行版。
我们通过 Microsoft Store 将适用于 WSL 的 Linux 发行版作为 UWP 应用程序分发。您可以安装这些应用程序,然后在 WSL(位于 Windows 内核中的子系统)上运行。这种交付机制有很多好处,如之前的博客文章中所述。
处理 Linux 内核级驱动程序存在继承的限制(它们不受支持),因此所有设备都间接与 Windows 设备驱动程序交互。
来源:英特里克
答案2
总结
过去 Windows 中有许多 Unix 子系统,为编译无需移植到 Windows 的 Unix 代码
WSL 是 Windows 10 中的一个新子系统,用于跑步直接使用 Linux ELF 文件,无需重新编译
20 世纪 80 年代,美国联邦政府要求某些类型的政府采购必须符合 POSIX 标准,因此微软必须在 Windows 中包含 POSIX 子系统
Microsoft POSIX 子系统是 Windows NT 第一个版本附带的四个子系统之一。(另外三个是 Win32 子系统,它为 Windows NT 提供了主要的编程 API,另外还有 OS/2 和安全子系统。)
这是 NTFS 支持 POSIX 文件名的原因之一,也是注册表项存在的原因,HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ObCaseInsensitive
用于兼容 POSIX 子系统和网络上区分大小写的文件名
但是 POSIX 子系统仅实现 POSIX.1,其中不包含命令行工具。在 Windows XP / Windows Server 2003 中,它已被替换为UNIX 的 Windows 服务 (SFU)就是你看到的。它功能更强大,后来被重新命名为基于 UNIX 的应用程序子系统在 Windows Vista、Windows Server 2008、Windows 7 和 Windows Server 2008 R2 中
基于 UNIX 的应用程序子系统 (SUA) 是一个源代码兼容子系统,用于在运行 Microsoft® Windows® 服务器级操作系统的计算机上编译和运行自定义的基于 UNIX 的应用程序。您可以在 SUA 中使您的 UNIX 应用程序与 Windows 完全互操作,而几乎无需更改原始源代码。
Windows 8 和 Windows Server 2012 中已删除 SUA
与 Windows 10 中的 WSL 不同,这些子系统不适合直接运行 Linux ELF 可执行文件,因此如果你想在该子系统下运行,你必须重新编译该子系统
进一步阅读: