总结

总结

每个人都说 Linux 子系统,或者 WSL,仅支持 Windows 10。

WSL 选项的屏幕截图

如果这是真的,有人能解释一下 Windows 7 中这个看起来非常相似的选项是什么意思吗?它到底能启用什么功能?

基于 Unix 的应用程序子系统选项的屏幕截图

答案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 内核中的子系统)上运行。这种交付机制有很多好处,如之前的博客文章中所述。

来源:为 WSL 创建自定义 Linux 发行版

处理 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 和安全子系统。)

https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem

这是 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 完全互操作,而几乎无需更改原始源代码。

基于 UNIX 的应用程序子系统

Windows 8 和 Windows Server 2012 中已删除 SUA


与 Windows 10 中的 WSL 不同,这些子系统不适合直接运行 Linux ELF 可执行文件,因此如果你想在该子系统下运行,你必须重新编译该子系统

进一步阅读:

相关内容