在Windows 7下的“ 打开和关闭Windows功能”对话框中注意到一个名为“ 基于UNIX的应用程序子系统”的东西,以前从未见过,而且看起来很有趣。究竟是什么呢?它有什么作用,我可以用它做什么?
在Windows 7下的“ 打开和关闭Windows功能”对话框中注意到一个名为“ 基于UNIX的应用程序子系统”的东西,以前从未见过,而且看起来很有趣。究竟是什么呢?它有什么作用,我可以用它做什么?
Answers:
以前称为SFU或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执行的原因。
您可以使用BSD样式的软件包来安装/卸载软件。如果已安装OpenSSH,则可以通过SSH访问SUA。