Answers:
如果您想完全生活在Windows中并希望使用bash脚本驱动/自动化Windows任务,则Cygwin是一个很好的工具。但是,Cygwin无法运行未修改的Linux二进制文件。
这就是WSL介入的地方:
Windows Linux子系统(WSL)是Windows内核的新层,旨在提供与Linux内核ABI的高度兼容性。这允许未经修改的本机Linux ELF64二进制文件在WSL上运行。
这就是WSL如何运行正版的Ubuntu用户土地发行版,以及您从apt-get下载的任何软件包或从其他位置下载的.deb软件包的方式,而无需进行任何更改。
WSL的目的是使在Windows上工作的开发人员能够运行许多工具,并可以在许多项目上工作,这取决于Linux二进制文件,功能,行为,文件系统布局,过程模型等。
虽然WSL尚处于实施初期,但我们仍在努力提高syscall实施的广度和深度,以稳步提高WSL运行更多工具的能力,并支持数量迅速增长的Ruby,Java,节点等软件包和项目。
自编写以上内容以来,我们已经发布了Windows 10 Creators Update,该更新极大地提高了WSL与您想要/需要运行的许多工具的兼容性。
开发工作仍在继续,并且在过去的几个月中一直在交付Win10 Insiders版本,并于2017年10月交付Fall Creators Update(FCU)。
在FCU中,我们增加了并排安装和运行多个发行版的功能:Ubuntu,openSUSE和SLES当前可用,而Fedora和其他版本也正在使用。WSL现在还支持USB串行通信,以及USB存储和网络共享的安装,以及对我们的syscall的进一步改进,从而改进了与更多工具的兼容性。
自从宣布并发布WSL,然后通过商店添加对多个发行版的支持,以及宣布WSL v1.0 HTH以来,已经有两年了。
在Build 2019上,我们宣布了新的Windows Terminal(此处为Terminal会话视频)和WSL 2(此处为WSL 2会话视频),它们介绍了一种在Windows上运行Linux的全新方法。
有关更多详细信息和将来的更新,请确保每隔两周访问Windows命令行博客,我们在其中发布许多相关新闻。
我已经在Windows 10下使用WSL大约几个月了。最后,我可以启动Windows进行游戏,并且仍然可以访问bash提示符并运行CLI和许多GUI程序。存在局限性,例如没有一个熟悉的Linux内核虚拟目录。需要计划在双引导计算机上的Ubuntu和WSL之间共享相同的Bash脚本。
我希望看到很多东西可以改善,但是我可以将其原样使用一年左右。
要记住的一件事是,Microsoft是一个封闭的系统,您不会像在Linux上那样奔忙地第三方编写更新。但是所有事情都考虑到您购买了一台新笔记本电脑,并且无论如何它都带有Windows 10,因此您至少可以说它是“免费的” :)
Cygwin由Red Hat Linux控制,Red Hat Linux也不因免费提供东西而闻名。他们的“免费” Linux发行版Fedora在某些情况下似乎是“试验场”。
Cygwin有15年的更新。值得注意的是,自2003年以来一直任职同一项目经理。有很多全职维护人员,还有更多的志愿人员。
WSL每年春季和秋季每年两次提供重大更新。开发人员订阅列表上的人员可获得每周的次要更新。尽管Microsoft有足够的资源将数千人投入到WSL开发中,但您似乎可以用手指指望团队成员。
您会看到许多有关WSL速度的抱怨。例如,与Ubuntu 16.04相比,Windows 10中的屏幕绘画时间要长很多倍,也就是说,您实际上可以在Windows 10中看到光标移动:
WSL Bash初始屏幕绘制大约需要5秒钟。相比之下,在Ubuntu 16.04中,相同的启动屏幕大约需要1 1/2秒:
答案是一岁,所以我认为需要一点更新。对于Windows 10 Home,如果是32位Windows,则表示它不会运行Microsoft告诉我们的64位Ubuntu / Windows子系统:(win10 HOME BASIC中的Windows Linux子系统)。
在Windows上运行Ubuntu并提供对Nvidia的出色游戏支持,这就像实现梦想一样,但是在用完并购买新的(或二手的)笔记本电脑之前,请确保它具有Windows 10 64位而不是32位家庭版。您想在Windows下本地运行Ubuntu / Linux。在Microsoft网站上,他们实际上将Windows Anniversary版本称为运行Windows Subsystem for Linux的先决条件。
但是,如果您不想为Windows 10掏出200美元以上的价格,并且像我一样拥有一台运行Windows 8.1 64位的旧笔记本电脑,并且像我一样拥有一台运行Windows Vista 64位的旧笔记本电脑,那么Cygwin是答案。
Cygwin 在其网站列表中支持更多版本的Windows :
Cygwin有望在所有现代发行版Windows上运行。2016年1月状态包括Windows Vista,Windows Server 2008以及Windows 10和Windows Server 2016之前的所有更高版本的Windows。Cygwin的32位版本还可以在WOW64 32位环境中的64位版本Windows(64位)上运行。当然,仅在64位Windows上才可以使用bit版本。
请记住,Cygwin只能完成基础操作系统支持的工作。因此,Cygwin在各种版本的Windows上将表现不同,并表现出不同的限制。