當微軟將把Ubuntu引入Windows 10的消息傳出時,官方的理由是它只是針對將Bash移植到Windows之中。筆者曾經預言,Linux Bash是偉大的,我們很快就會看到“人們試圖將包括桌面在內的所有Linux用戶空間程序移植到Windows之上。”
在Windows Subsystem for Linux(WSL)發(fā)布的幾天之后,黑客們就將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 產品和戰(zhàn)略執(zhí)行團隊成員Dustin Kirkland對我表示這些不受支持的Linux應用程序的出現顯示了“開放源代碼社區(qū)的力量!” Kirkland繼續(xù)表示,這也就是說,“Canonical和微軟目前側重于Windows上的Ubuntu的命令行和開發(fā)者工具。”
所以,是否將所有的Linux桌面應用程序以及最終把Linux桌面放到Windows Ubuntu中完全取決于用戶自己。這一幕會出現的。我對于開放源代碼黑客非常有信心。而且,有一位程序員已經想方設法用cygwin讓xfce Linux桌面運行在Windows 10之上了。這樣看,讓更多的Linux圖形程序運行在WSL上只是一個時間問題。