注意到一个东西叫基于 UNIX 的应用程序子系统在里面打开和关闭 Windows 功能Windows 7 下的对话框。以前从未见过,看起来很有趣。它到底是什么?它是用来做什么的?我能用它做什么?
答案1
以前称为西弗吉尼亚大学或者UNIX 服务。它是 Windows 中的一个环境子系统,提供完全的 POSIX 兼容性和大量通常随 UNIX 系统提供的工具。
作为环境子系统这意味着它运行旁边Windows API,直接在内核之上。因此,它并不比本机 Windows API 本身模拟更多,因此性能比 cygwin 等更好。1
它主要用于直接在 Windows 上构建和运行 UNIX 应用程序,因此如果您最喜欢的 UNIX 程序没有附带 Windows 端口,您可以尝试在 SUA 中构建它:
Windows Services for Unix 和 Subsystem for Unix-based Applications 提供了头文件和库,使重新编译或移植 Unix 应用程序以在 Windows 上使用更加容易;它们不会使 Unix 二进制文件与 Windows 二进制文件兼容。最好将其视为一个独特的类 Unix 平台。
SFU 的当前版本包含:
- 超过 350 个 Unix 实用程序,例如 vi、ksh、csh、ls、cat、awk、grep、kill 等。
- GCC 3.3 编译器,包含和库(通过 MS libc)
- Microsoft Visual Studio 命令行 C/C++ 编译器的类似 cc 的包装器
- GDB 调试器
- NFS 服务器和客户端
- pcnfsd 守护进程
- X11 工具和库
- 使 NFS 挂载点显示为 Windows 共享的工具,反之亦然(网关服务)
- 与 Active Directory (AD) 链接的 NIS 服务器功能
- 一些Windows/Unix身份验证信息同步工具
SFU 不包含以下内容(但二进制文件可供单独安装):
- bash、OpenSSH、sudo、CVS、ClamAV、bzip2、gmake、curl、emacs、Apache、XView、Ruby、Tcl、Python
由于 SUA 并不试图成为 Linux 或 BSD,而只是普通的 POSIX,这也意味着许多依赖于特定平台的程序可能无法构建或运行。我想到的是采用 bash 而不是 sh 或 Linux 特定系统调用的 Shell 脚本。如今,很少有程序可以直接在任何符合 POSIX 的系统上运行。此外,所包含的 gcc 版本有些旧,这意味着它可能不支持您最新的 C99+ 优点。
1它仍然受到 Windows 特定的限制,例如进程启动时间缓慢,因此极端分叉仍然会非常缓慢,这就是为什么您需要等待很长时间才能./configure
执行许多脚本或某些 makefile。
答案2
您可以使用 BSD 风格的软件包来安装/卸载软件。如果安装了 OpenSSH,则可以通过 SSH 访问 SUA。