与使用 Windows 7 Ultimate SUA(基于 UNIX 的应用程序子系统)支持(以前称为 Interix)相比,在 Windows 7 上通过 Cygwin 使用 GNU/Linux 实用程序有哪些优点或缺点。显然,Windows 7 上的 SUA 实现完全符合 POSIX 标准。
我想知道的是:
Windows 7 Ultimate 提供的 POSIX 兼容环境和 Unix 实用程序有多好?
我可以在 Windows 7 Ultimate 上运行 Unix/Linux 可执行文件(例如 ELF 文件)吗,而无需为 Windows 7 重新编译它们?
我读到一些系统(例如 Debian)已移植到此类 Windows 7 Ultimate SUA。我在哪里可以下载此类发行版。
在我的笔记本电脑上,我目前在 VirtualBox 中运行 Windows,通常是通过 Vagrant 配置文件,因为我不需要将笔记本电脑用作服务器,而且有些应用程序只能在 Windows 上运行,以这种方式启动 Linux 似乎比在单独的分区上安装 Linux 并进行双重启动更方便。但是,如果我甚至可以正确运行整个 Linux 发行版,并且使用 Windows 内核的原生支持,而不是通过 Cygwin 提供的用户空间支持,那么这将是更好的选择(甚至不需要等待 Linux 在 VirtualBox 中启动)。
谢谢。
答案1
我仍然觉得你的问题令人困惑,但从提问的方式我可以看出你正试图从 Linux 系统过渡到 Windows,并希望保留类似 Linux/UNIX 的功能。
好吧,这就是赛格威是:
- 为 Windows 提供 Linux 外观环境的工具集合。
- DLL(cygwin1.dll)充当 Linux API 层,提供大量 Linux API 功能。
... 而事实并非如此:
- 在 Windows 上运行原生 Linux 应用的一种方法。如果希望应用程序在 Windows 上运行,则必须从源代码重建应用程序。
- 一种让本机 Windows 应用程序神奇地了解 UNIX® 功能(如信号、ptys 等)的方法。同样,如果您想利用 Cygwin 功能,则需要从源代码构建应用程序。
使用 Cygwin 的优点和缺点都取决于您要比较的产品或用途。从描述来看,Cygwin 本质上是一个工具集,您将获得 Cygwin 内置工具的优势。主要坏处,如果你可以这样称呼的话,磁盘会变得更满一些,因为你已经安装了一套工具集。
虽然我从未广泛使用过 Cygwin,因为它不会卸载任何东西,cmd
并且bash
包含在 Cygwin 中应该单独操作。因此,您可以bash
与一起使用cmd
,但您应该坚持使用单个命令行。
几乎不可能(除非考虑虚拟化)在不使第一个操作系统失效的情况下将一个操作系统安装到另一个操作系统上。因此,从操作系统的角度来看,没有一个 GNU 系统可以与其他操作系统一起工作。话虽如此,Cygwin 却很接近,因为它在 Windows 环境中向您证明了 Unix 提供的大多数工具。
(顺便说一句,我仍然认为你的问题令人困惑,特别是 POSIX 部分。Windows(不是 NTFS)和某些版本的 Linux 并不完全兼容 POSIX,而且由于你没有提到你想要使用 POSIX 的哪些特定功能,我在这方面感到很困惑)