当微软将把Ubuntu引入Windows 10的消息传出时,官方的理由是它只是针对将Bash移植到Windows之中。笔者曾经预言,Linux Bash是伟大的,我们很快就会看到“人们试图将包括桌面在内的所有Linux用户空间程序移植到Windows之上。”

在Windows Subsystem for Linux(WSL)发布的几天之后,黑客们就将Linux图形程序运行在了Windows Ubuntu之中。

方法很简单,安装了WSL和Ubuntu之后,你要做的第一件事就是为Windows增加一个X Window服务器。笔者使用的是Xming X Server for Windows。Windows上的Ubuntu现在没有附带原生的X服务器或者Ubuntu自己的X替代品Mir。Xming是一个基于针对微软Windows 的X.org代码的Linux交叉编译服务器,它主要是为了通过SSH实现安全运行,远程Linux和Unix X Window应用程序,但是它也能够很好地作为本地X服务器工作。

接下来,需要让WSL和Ubuntu运行起来。运行起来之后,用Bash命令“apt-get update”更新Ubuntu的高级打包工具(Advanced Packaging Tool,APT)资料库。由于WSL上的Ubuntu在启动的时候自动运行,因此客户不需要在命令中增加sudo运行它了。

一旦资料库完成了更新,你就可以安装Linux GUI应用程序了。笔者和其他人一样选择了安装Firefox,当然也可以尝试任何不需要特定Linux GUI工具包,例如GTK+、Tck/Tk或Qt支持的应用程序。运行Bash命令“apt-get install firefox”安装Firefox之后,再用“DISPLAY=:0 firefox”命令运行。然后,如果一切都顺利的话,你将可以在Windows桌面上运行Linux桌面应用程序了。

当然,它可能不会运行得很好,毕竟这是在测试平台上运行一个图形程序,而这个测试平台的目标并不是运行带有图形用户界面的软件。笔者进行了尝试,但是结果却并不怎么好:Firefox经常崩溃,而且不止一人遇到这个问题,现在唯一能够运行正常的Linux桌面应用程序是Vim文本编辑器。

这些程序不会运行得那么快,即便它们能够运行的话。这是因为X服务器不会缓冲或者直接渲染图形。毕竟X11协议是一个针对图形的网络协议。它被用于Unix和Linux之上的图形已经很多年了,但是如果没有其他帮助,它对于图形并不够有效。因此,Wayland作为X Window服务器的替代品兴起了。

Canonical——在任何情况下都能帮助Mir支持显示服务器——在近期都不会帮助把图形程序移植到WSL。Canonical 的Ubuntu 产品和战略执行团队成员Dustin Kirkland对我表示这些不受支持的Linux应用程序的出现显示了“开放源代码社区的力量!” Kirkland继续表示,这也就是说,“Canonical和微软目前侧重于Windows上的Ubuntu的命令行和开发者工具。”

所以,是否将所有的Linux桌面应用程序以及最终把Linux桌面放到Windows Ubuntu中完全取决于用户自己。这一幕会出现的。我对于开放源代码黑客非常有信心。而且,有一位程序员已经想方设法用cygwin让xfce Linux桌面运行在Windows 10之上了。这样看,让更多的Linux图形程序运行在WSL上只是一个时间问题。



本文作者:作者:赵东