如果 Windows 7 不支持 WSL,那么什么是“基于 UNIX 的应用程序的子系统”?

Pra*_*cEd 37 windows unix windows-subsystem-for-linux

大家都说Linux的子系统或WSL,仅在Windows 10的支持。

WSL 选项的屏幕截图

所以如果这是真的,有人能解释一下 Windows 7 中这个看起来非常相似的选项是什么意思吗?它究竟有什么作用?

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

phu*_*clv 58

TL; 博士

过去 Windows 中有很多 Unix 子系统,提供 POSIX API 用于编译Unix 代码,无需移植到 Windows

WSL 是 Windows 10 中的一个新子系统,用于直接运行Linux ELF 文件,无需重新编译


在 1980 年代,美国联邦政府要求某些类型的政府采购符合 POSIX 标准,因此 MS 必须在 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 中,它已被替换为Windows Services for UNIX (SFU),这就是您所看到的。它的功能要强大得多,后来在 Windows Vista、Windows Server 2008、Windows 7 和 Windows Server 2008 R2 中更名为基于 UNIX 的应用程序子系统

基于 UNIX 的应用程序子系统 (SUA) 是一个源代码兼容性子系统,用于在运行 Microsoft® Windows® 服务器级操作系统的计算机上编译和运行自定义的基于 UNIX 的应用程序。您可以使您的 UNIX 应用程序与 SUA 中的 Windows 完全互操作,而无需更改原始源代码。

基于 UNIX 的应用程序子系统

SUA 在 Windows 8 和 Windows Server 2012 中被删除


与 Windows 10 中的 WSL 不同,这些子系统并不用于直接运行 Linux ELF 可执行文件,因此如果要在该子系统下运行,则必须为该子系统重新编译

进一步阅读:

  • @Darren:我认为您弄错了,引用块说“基于 UNIX 的应用程序 (SUA) 的子系统是...用于在运行 Microsoft® Windows® 服务器级操作系统的计算机上编译和运行自定义的基于 UNIX 的应用程序系统”NFS 网络重定向器是一个不同的组件,也可以在 OP 的屏幕截图中看到。 (2认同)
  • @Darren:大部分都做了,但是 NFS 文件共享支持被拆分成一个单独的组件(NFS 服务,NFS 子组件客户端)......它在 OP 的 Windows 7 屏幕图像中作为第一个复选框可见,它在 Windows 10 屏幕截图中离屏幕只有几行。 (2认同)

Ram*_*und 25

每个人都说,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 设备驱动程序接口。

资料来源:Interix