windows bash和cygwin有什么区别?

windows bash和cygwin有什么区别? 来自带有“linux”bash的windows的新更新是新的,但Cygwin有什么不同之处可能会让你选择一个而不是另一个?

如果你想完全在Windows中生活并希望用bash脚本驱动/自动化Windows任务,Cygwin是一个很棒的工具。 但是,Cygwin无法运行未修改的Linux二进制文件。

这就是WSL介入的地方:

Windows子系统Linux(WSL)是Windows内核的一个新层,旨在提供与Linux内核ABI的高度兼容性。 这允许本机的,未修改的Linux ELF64二进制文件在WSL上运行。

这就是WSL如何运行真正的Ubuntu用户级发行版,以及从其他地方从apt-get或.deb包下载的任何软件包,无需任何更改。

WSL的目的是使在Windows上工作的开发人员能够运行许多工具,并在许多项目上工作,这些项​​目依赖于Linux二进制文件,function,行为,文件系统布局,流程模型等。

虽然WSL还处于早期实施阶段,但我们正在努力改进系统调度实现的广度和深度,以稳步提高WSL运行更大工具集的能力,并支持快速增长的Ruby,Java,节点数量等包和项目。


更新:2017-09-07

自上面编写以来,我们已经发布了Windows 10 Creators Update,它可以提高WSL与您想要/需要运行的许多工具的兼容性。

开发工作也持续不减,我们在2017年10月的秋季创作更新(FCU)发货途中,在过去几个月内一直在运送Win10 Insiders版本。

在FCU中,我们正在添加安装和运行多个发行版的能力:Ubuntu,openSUSE和SLES目前可用,Fedora和其他人正在进行中。 WSL现在还支持USB串行通信,USB存储和网络共享的安装,以及对我们系统调用的进一步改进,从而提高了与更多工具的兼容性。


HTH。

适用于Linux的Windows子系统

我已经在Windows 10下使用WSL大约几个月了。 最后,我可以启动Windows进行游戏,仍然可以访问bash提示符并运行CLI和许多GUI程序。 存在诸如熟悉的Linux内核虚拟目录之类的限制。 需要规划在双引导计算机上在Ubuntu和WSL之间共享相同的bash脚本。

有很多事情我希望看到改进,但我可以忍受它一年左右。

封闭源

有一点需要记住的是,MS是一个封闭的系统,你不会像在Linux上一样喜欢写第三方。 但所有的事情都认为你买了一台新的笔记本电脑,它还配备了Windows 10,所以你可以说它至少是“免费的”:)

Cygwin由Red Hat Linux控制,它也不是以免费赠送东西而闻名。 他们的“免费”Linux发行版Fedora似乎是某些人的“试验场” 。

维护周期

Cygwin有15年的更新。 值得注意的是,自2003年以来,同一个项目经理已经到位。有很多全职维护人员和更多的志愿者贡献者。

每年春季和秋季,WSL每年两次提供重大更新。 开发人员订阅列表上的人员可以每周进行一次小更新。 尽管微软有资源将数千人投入到WSL开发中,但看起来您可以用手指数计算团队成员 。

速度问题

你会看到很多关于WSL速度的抱怨。 例如,在Windows 10中,与Ubuntu 16.04相比,屏幕绘制需要花费很多倍,即您实际上可以在Windows 10中看到光标移动:

WSL bash startup.gif

WSL Bash启动画面需要大约5秒钟来绘制。 相比之下,Ubuntu 16.04中相同的启动画面大约是1 1/2秒:

Ubuntu终端splash.gif

Cygwin 与bash有自己的速度投诉 。


以下原始post供历史参考。

这里的答案是1岁,所以我觉得有点更新。 对于Windows 10 Home, 如果它是32位Windows,则意味着它不会运行64位Ubuntu / Windows子系统,正如微软在这里告诉我们的那样:( win10 HOME BASIC中的Windows Linux子系统 )。

这就像梦想成真在Windows上运行Ubuntu,它具有对nVidia的卓越游戏支持,但在你用完并购买新的(或二手的)笔记本电脑之前,确保它有Windows 10 64位而不是32位家用版本如果你想在Windows下本地运行Ubuntu / Linux。 在MS网站上,他们实际上将Windows周年纪念版称为运行Windows子系统Linux的先决条件。


但是,如果你不想为Windows 10支付200美元以上的费用,并且你有一台运行Windows 8.1 64位的老款笔记本电脑,就像我一样,你有一台比我更老的笔记本电脑运行Windows Vista 64位,那么Cggwin就是答案。

Cygwin支持更多版本的Windows 作为其网站列表 :

Cygwin可以在所有现代发布的Windows版本上运行。 状态2016年1月包括Windows Vista,Windows Server 2008以及Windows 10和Windows Server 2016以后的所有Windows版本.32位版本的Cygwin也在已发布的64位版本Windows上运行WOW64 32位环境,64位位版当然只在64位Windows上。

请记住,Cygwin只能支持底层操作系统。 因此,Cygwin在各种版本的Windows上表现不同,并且表现出不同的限制。