Microsoft Windows 的 7 POSIX 实施目前处于啥位置?

Posted

技术标签:

【中文标题】Microsoft Windows 的 7 POSIX 实施目前处于啥位置?【英文标题】:Where does Microsoft Windows' 7 POSIX implementation currently stand?Microsoft Windows 的 7 POSIX 实施目前处于什么位置? 【发布时间】:2011-06-12 09:00:27 【问题描述】:

在/用于 Windows 7 中是否有完整的 POSIX 实现(我正在考虑适用于 UNIX 的 Windows 服务)?

是否在每个版本的操作系统中都可用(似乎没有)?

它如何在以前的 MS Windows POSIX 实现上添加/改进或中断?

在哪里可以找到有关 Windows 7 中 POSIX 合规性的特定 Microsoft 方法和实施的更多信息?

【问题讨论】:

【参考方案1】:

它自 Windows 8 起已被弃用,正如此答案 https://superuser.com/a/495367/128124 中所述,并附有以下屏幕截图来支持它:

功能请求:https://windows.uservoice.com/forums/265757-windows-feature-suggestions/suggestions/6573649-full-posix-support

根据article on How-To Geek,它已从 Windows 8.1 中删除。

在服务器端,它被正式在 Windows Server 2012 R2 中删除

基于 UNIX 的应用程序的子系统

Windows Server 2012:已弃用

Windows Server 2012 R2:已删除

来源:Features Removed or Deprecated in Windows Server 2012 R2

2016 适用于 Linux 的 Windows 子系统

2016 年,宣布了一个名为“Windows Subsystem for Linux”的新的官方类 Linux API。它包括 Linux 系统调用、ELF 运行、/proc 文件系统的一部分、Bash、GCC、(TODO 可能是 glibc?)、apt-get 等等:https://channel9.msdn.com/Events/Build/2016/P488 所以我相信它会让 Windows 运行很多,如果不是的话所有,POSIX。但是,它专注于开发人员/部署而不是最终用户。特别是,没有计划允许访问 Windows GUI。

【讨论】:

感谢您更新 SUA 的状态。我冒昧地添加了 Win 8.1 和 Win Server 2012 的信息。 仅供参考。 “Linux 的 Windows 子系统”没有 Linux 内核。所以你不能在上面运行虚拟机。【参考方案2】:

如果您查看http://technet.microsoft.com/en-us/library/cc772343.aspx,您会发现您可以:

使用 Visual Studio 调试 POSIX 应用程序 在 64 位 Windows 版本上运行 32 位 POSIX 应用程序 运行 BSD 应用程序,因为 BSD 支持包含在 Windows 的 POSIX 实现中

请阅读https://en.wikipedia.org/wiki/Windows_Services_for_UNIX

【讨论】:

【参考方案3】:

SUA,以前称为 INTERIX,现在 100% 兼容 POSIX。有很多移植的应用程序。甚至像 Debian 这样的整个 Linux 发行版也已被移植。 SUA/Interix 随附于 Windows 2003R2 及更高版本(包括具有最新 6.1 的 Win7)。在没有直接支持 SUA 的情况下,我也成功编译了 BASH。

以前只实现了 POSIX 的一部分。最新版本完全符合 POSIX,并且 (iirc) 比以前更直接地映射到 Windows 内核,从而提高了速度。

但请注意,当我将 BASH 保持打开数天时,我(就个人而言)会遇到内存问题。这些问题似乎影响了整个 SUA 系统。我不知道这是什么原因,因此可能与我的设置有关,但在考虑将其用于生产之前值得测试。

链接: Wikipedia article on Interix Debian interix port SUA Community with bundles of apps/utils

【讨论】:

我猜现在它被称为 SUA(基于 UNIX 的应用程序的子系统)。

以上是关于Microsoft Windows 的 7 POSIX 实施目前处于啥位置?的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Windows 的 7 POSIX 实施目前处于啥位置?

驱动开发利器Microsoft Windows Driver Kit 7.1.0下载

无法在 Windows 7 机器上的 Microsoft Visual C++ 2010 中运行 OpenCV

Microsoft Windows 7 Pro 上的实时应用程序

素材|Microsoft ends Windows 7 support: What should you do?|BBC专题

所有引用子项目的项目都必须安装 NuGet 包 Microsoft.Bcl.Build (C#/Windows Phone 7)?