新的“ Windows 10上的Bash”如何真正起作用?


25

我在网上阅读到Ubuntu和bash即将进入Windows10。我还阅读到它不是在Windows之上运行的模拟器或虚拟机,而是其他东西。那么,这一切究竟如何融合在一起?它真的会像ubuntu中的bash一样稳定和用户友好吗?



它并不能真正提供幕后真实情况的清晰画面。
Maaverik '16

@maaverik从那以后,我们制作了一系列博客文章和附带的视频,解释了WSL的内部原理。请参阅下面的链接我的答案:)
Rich Turner

Answers:


21

它不是模拟器,而WINE不是模拟器。也就是说,他们已经在Windows内核中添加了Linux内核接口。当应用尝试使用Linux内核时,它将转换为Windows本机系统调用,并且来自内核的任何响应都将转换为本机Linux响应。因此,该应用程序认为它运行在Linux内核上,因此不需要进行修改。

但是,这纯粹是Windows技术,因此,如果您需要更多详细信息,则应从Windows支持小组或其他机构获得。Windows仍然是专有操作系统,因此我希望数量有限。

它真的会像ubuntu中的bash一样稳定和用户友好吗?

从Ubuntu的角度来看,我们仅在原始Linux内核上运行,与在原始X服务器上运行现代桌面相当。如果仅使用伪内核支持的功能,那么它将是稳定且用户友好的。如果使用不受支持的功能,它将变得不稳定。

很快它将无法获得完整的Ubuntu体验。


2
“不是模拟器”可能用引号引起来;像Wine一样,它一个模拟器,不仅在硬件级别,而且在API级别。两者都会导致性能下降,具体取决于您正在执行的操作(即正在执行多少个系统调用)。
thomasrutter

2
@thomasrutter对不起,我不同意。您对“模拟器”的定义过于宽松。在这样的解释下,我们也必须称呼代理模拟器(但不是)。根据定义,模拟器可以模拟事物。WSL(和代理)不模仿事物,它们变换并转发事物并返回响应。
Segfault

21

对于那些对Windows Subsystem for Linux(WSL)如何工作以及如何运行本机Linux ELF-64二进制文件感到好奇的人,我们发布了一系列博客文章和随附的视频,解释了WSL体系结构,过程,系统调用和文件系统支持。 。

Scott Hanselman还做了一个很棒的演练视频,内容涉及安装过程以及如何在Windows的Ubuntu上配置Bash:

高温超导


3
第一个链接不再起作用,我认为它已经移到了这里:blogs.msdn.microsoft.com/commandline/…–
dpritch

好收获-谢谢。修复了链接指向我们缩短的链接的问题。
Rich Turner

2

bash部分在WSL中效果很好。

内核部分不存在。例如,/sys/class/backlight/intel_backlight/brightness您无权访问设置屏幕的亮度。如果您不介意COBOL样式很长的字段名称,可以轻松调用其中的Powershell命令。可以从bash中直接调用MS Powershell。因此,可以说bash现在内置了强大的Windows功能。同样,我相信MS Powershell可以调用bash。所以,如果真Powershell的得到像功能的访问grepawkheadtail,等。

Ubuntu桌面(geditnautilus等)的GUI 仅在安装VcXsrv或类似安装后才能工作。

在Linux和Windows WSL之间共享文件设置起来很复杂。当在共享的WSL + Linux NTFS文件夹之间移动文件时,由于我的无知或软件缺陷,我有一些文件许可“怪异”。

WSL中的速度比Ubuntu中慢得多。实际上,你可以看到文字的屏幕漆字符当您运行caltoilet什么是窗口之间的差异bash和Cygwin的?

我认为WSL是一个很好的产品,并且在双重引导进入Windows-World时喜欢修改它。由于MS缺乏资金,它永远不会成为一款出色的产品,而且他们实际上也不想拥有一个出色的Linux Free-Ware Distro。如果您有足够的RAM,您可能会更喜欢VM。由于本人只有8 GB,并且RAM价格一直上涨到2019年中左右,因此我会很乐意坚持使用WSL,暂时放弃32 GB RAM升级。

我已经访问了几个MS论坛,我必须说Rich Turner和他的WSL团队成员是我见过的最好的专业人员。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.