首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNUWin32与cygwin的区别

GNUWin32与cygwin的区别
EN

Stack Overflow用户
提问于 2012-05-23 10:03:50
回答 2查看 18.8K关注 0票数 28

我似乎搞不懂这两者之间的区别。

其中一个(GNUWin32)似乎是窗口(如MSYS)之上的一层,而

其他(cygwin)是其他东西(?)

那是什么意思?什么时候我会使用其中一个而不是另一个呢?它们是否都适用于同一件事?

我想把它主要用在git上,但也想保留我的选择,以便学习和做所有事情*nixy。

有没有其他工具可以解决这个问题?msysgit会更适合这方面吗?

有没有什么资源详尽地介绍了所有这些*nix平台的差异?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-23 11:16:57

Cygwin是一个致力于使UNIX程序能够在Windows系统上编译和运行的库,它只需最少的修改或不需要修改,并且是一套全面的打包的UNIX工具和应用程序,使用这个库编译。它几乎是Windows的一个完整的包装器。它包括一个X服务器和大量在Linux发行版中可以找到的程序。对于想要在Windows中学习或使用UNIX命令行的人来说,这是非常棒的。

MSYS主要是使用MinGW编译器在Windows系统上构建GNU风格的包(使用configure等)所必需的UNIX工具的一个端口。它使用Cygwin库的一个变体进行了修改,牺牲了一些兼容性来提高效率,而且对Windows更加友好。

GnuWin32仅仅是一些GNU工具在Windows上的一个移植。与MSYS一样,它使用msvcrt.dll以及一个附加库来提供一些UNIX兼容性功能。它的主要目的似乎是允许Windows程序和批处理文件直接使用一些GNU程序和库。

在大多数情况下,它们都在Windows上提供UNIX程序,但有许多细微的差异,包括:

  • Intent。Cygwin是为那些想在Windows操作系统上使用UNIX的人准备的。MSYS是为那些想要使用GNU/UNIX构建工具构建Windows程序的人准备的。GnuWin32是将单个GNU程序和库移植到Windows.
  • 文本文件,特别是行结尾。Cygwin允许您使用CR/LF或LF。MSYS期望LF行结束。GnuWin32程序需要CR/LF线路endings.
  • Supplied程序。特别是,Cygwin有更多的包,而GnuWin32没有提供任何外壳。

至于git,它可以在Cygwin中使用-这个版本可以在Windows目录下使用(可以在/cygdrive下访问)。另外,正如前面提到的,还有msysgit

票数 43
EN

Stack Overflow用户

发布于 2020-11-18 18:23:28

迈克尔·斯莱德是对的。我想谈谈典型的使用环境。

出于实际原因,我使用gnuwin作为仅与POSIX环境远程相关的内容的轻量级后端,而cygwin更像是一个成熟的POSIX,甚至是一个非常gnuwin的环境。

此外,在安装大量工具时,gnuwin往往会变得臃肿,因为可执行文件经常使用静态链接库。另一方面,Cygwin提供了大量的动态库和相当小的可执行文件。因此,如果你只需要几个可执行文件,那么gnuwin需要更少的资源。如果你需要一个复杂的环境,那么cygwin会更有效率。

gnuwin通常也有点过时,提供的软件很少,没有包/更新管理器。它是一个基本的shell环境。没有ssh,没有gcc,没有vim,没有perl,没有sql --你可以从其他地方得到这些,但它们如何合作很难预测。Cygwin解决了上述所有问题。

换句话说,gnuwin对于偶尔安装的人来说是很棒的,只需在你的$PATH中放置du,查找和排序即可。要执行一些实际的POSIX工作,请使用cygwin。

我曾经有过第二个Linux工作站,然后在我的windows系统旁边运行了一个Linux虚拟机。Cygwin让他们过时了。与专用计算机或虚拟机相比,它在节省大量资源的同时,已经足够好用了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10712550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档