Windows Linux子系统(WSL):我不能使用适用于Microsoft Windows的Ubuntu应用程序做什么?


23

众所周知,在Microsoft Store中,有三个版本的Ubuntu。这意味着在Windows上,我可以模拟Ubuntu,并直接在Windows上使用Ubuntu命令行。

问题很容易:在Windows上模拟的Ubuntu命令行中,我不能在基于Linux的适当Ubuntu上做什么?下载此Ubuntu应用程序,进行安装并与其一起使用,而不是与实际操作系统一起使用是否有用?是否可以安装所有开发库?我可以编写(或不编写)设备驱动程序吗?换句话说:有什么限制?

Windows上的Ubuntu缺少基于Ubuntu Linux的哪些功能?

欢迎提供新的答案:我知道每种软件都会通过改进特性来不断变化!


如果您已经启动Windows,也许是为了游戏而启动的,最好是在微中断时在其中安装Ubuntu 16.04,在这里阅读Ubuntu Q&A,并希望快速检出某些命令而无需重新启动。如果您想在Windows上使用Ubuntu,则最好的选择是访问Microsoft网站并阅读用户发布的所有新功能请求或错误:docs.microsoft.com/zh-cn/windows/wsl/faq
WinEunuuchs2Unix

1
即使与Windows上运行的Linux虚拟机相比,WSL 在I / O(磁盘操作)方面仍然要慢很多。但是,这似乎是Microsoft致力于的领域。
liori

@jpaugh,正是,谢谢!我也刚刚再次更新了问题:)
Leos313 '18

Answers:


19

在Linux的Windows 10子系统下运行的Ubuntu并非完整发行版。实际上,它根本不是Linux,它没有Linux内核。因此,由于您未运行Linux,因此无法测试或尝试内核扩展,包括驱动程序。

如果您想做这样的事情,请在VM中安装Ubuntu(Win10包含Hyper-V,但就我个人而言,我更喜欢VirtualBox,它是免费的),或者在Ubuntu在裸机上运行双重引导您的计算机。几乎可以肯定,您会发现后者比运行Windows更快-我在所有机器上都这样做。部分原因是因为在运行Windows时需要防病毒保护,这会降低性能,尤其是磁盘性能。并且由于您需要它,Win10包含内置的防病毒软件。

使用Linux,您不需要任何资源,因此对性能的影响较小。


20
为什么您认为在Linux上不需要防病毒软件?

7
@SeligkeitIstInGott不是模拟器。这是一个兼容性层,就像Linux上的Wine一样。
埃里克·杜米尼尔

6
“使用Linux,您不需要任何[防病毒],因此对性能的影响较小。” -Linux 无法抵抗病毒/恶意软件/等。防病毒软件在Linux中非常有用,既可以保护自己,也可以防止不良信息传播到其他环境(例如Windows)。我知道它通常不被使用,但这并不意味着威胁不存在。
丹尼尔(Daniel)

4
我对此有疑问。1.运行Windows不需要“防病毒”。Windows操作系统将在没有防病毒软件的情况下运行。它还带有一个防病毒软件,导致第2点:选择随机软件指向“放慢操作系统速度”似乎是任意的-如果我认为ubuntu速度较慢,因为我需要大量额外的软件才能使应用正常运行,该怎么办?仅适用于Windows?(例如VM,这样我就可以玩AAA游戏?)。3.您没有提供任何证据来支持此主张。
Caleb Jay

6
@ Hack-R没有欺骗。从一开始他们就很清楚这不是真正的Linux内核。它从“运行Linux工具,尤其是Bash”开始到“运行Linux环境/发行版/应用程序”。如果其中任何一种具有欺骗性,那么WINE也会具有欺骗性。
鲍勃

7

在Linux的Windows子系统(WSL)下,您不容易做的一件事就是运行Linux GUI应用程序。

为此,您必须安装不受支持的X11服务器,例如VcXsrv或Xming。

启用WSL比较容易。作为Linux命令行用户区,它看起来相当不错。


我不会打电话给VcXsrv不支持的人。自从我使用它们(2017年10月)以来,他们已经发布了大约10个更新。
WinEunuuchs2Unix

1
@ WinEunuuchs2Unix:我的意思是不受Miscrosoft的支持,从某种意义上说,它们通过实现内核API,分发Ubuntu用户域,提供安装/启用WSl等工具来支持WSL。
RedGrittyBrick

7

关于以上每个答案,都有许多有用的信息。我在这里总结每个概念的主要概念。

2019年5月更新:正如最新答案之一所指出的那样,WSL正在使用真正的Linux内核并提供更多选择来发展。我已经阅读了这份文件,如果得到确认,它将向前迈出一大步。在这里,您可以找到有关“ W10上的真实Linux内核”主题的精彩文章。

总结: “在Windows上,Ubuntu是Linux兼容模式下Windows内核之上的完整Ubuntu用户域”,如评论之一所指出。

我不能做的:

  • 到目前为止,正式不支持图形界面。这也意味着无法执行图形应用程序。此外,出于这个原因,不支持基于经典Ubuntu Linux的标准GUI。
  • Linus开发的Linux内核不是Windows Linux子系统(WSL)的一部分。这意味着您无法开发驱动程序并直接尝试。
  • 并非每个命令行都能工作。

我可以做什么:

  • 使用命令行和基本的Bash shell。可以编写和执行脚本。
  • 开发应用程序(编译或交叉编译并执行它们),但到目前为止还没有图形。
  • 使用“ apt-get”安装/删除新的/旧的数据包。

附加信息:

  • 正式支持其他发行版(例如Debian和Kali)
  • 这些应用程序是免费的,可以从Windows应用商店下载,在这里您可以找到安装和使用它的说明。

  • 博客的另一个问题中,关于如何为WSL使用GUI的一些建议(非官方的第三方)

2019年8月更新:释放了新的WSL 2(更多信息请阅读此处)。看来您可以使用真正的linux内核和Linux文件系统。到目前为止,到目前为止,我还没有尝试过新版本(它在我的TODO列表中)。


4

操作方法野人

[它]尚不支持后台服务器软件,并且不能正式用于图形化Linux桌面应用程序。并非每个命令行应用程序都可以正常运行,因为该功能并不完善。

allquixotic的评论更新:

从Windows 10 v1803开始支持后台任务。


6
从Windows 10 v1803开始支持后台任务。
allquixotic

指出“后台任务” = crontab和其他守护程序可能会有所帮助。这是crontabWindows启动时加载的实际示例。然后,使用rsync每2天备份Windows数据库:blog.snowme34.com/post/...
WinEunuuchs2Unix

2

截至2019年5月,WSL 2正在开发中

戏剧性的文件系统性能提高,以及完全的系统调用兼容性,这意味着您可以在WSL 2中运行更多Linux应用程序,例如Docker。

...

WSL 2使用了全新的体系结构,该体系结构使用了真正的Linux内核

...

WSL 2的初始版本将于2019年6月底通过Windows Insider程序提供。

(强调我的)

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.