WSL(Windows上的Linux子系統)
WSL(Windows上的Linux子系統)
WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微軟改名部KPI++),在wsl環境下我們可以運行一些Linux程序。
首先要說一句,其實Windows 10在一周年更新(1607,內部版本14393)的時候就加入了wsl,但是直到剛剛更新的秋季創意者更新(1709,內部版本16299),wsl才正式脫離beta,逐漸趨於穩定,所以我選擇這個時候再寫這篇文章。以下內容都是基於秋季創意者更新(1709,內部版本16299.19)。
接下來,我們正式介紹並安裝wsl。
Windows Subsystem for Linux(簡稱WSL)是一個為在Windows 10上能夠原生運行Linux二進制可執行文件(ELF格式)的兼容層。它是由微軟與Canonical公司合作開發,目標是使純正的Ubuntu 14.04 "Trusty Tahr"映像能下載和解壓到用戶的本地計算機,並且映像內的工具和實用工具能在此子系統上原生運行。[1][2][3]
WSL提供了一個微軟開發的Linux兼容內核接口(不包含Linux代碼),來自Ubuntu的用戶模式二進制文件在其上運行。[4]
該子系統不能運行所有Linux軟件,例如那些圖形用戶界面,以及那些需要未實現的Linux內核服務的軟件。[5]
不過,這可以用在外部X服務器上運行的圖形X Window系統緩解。[6]此子系統起源於命運多舛的Astoria項目,其目的是允許Android應用運行在Windows 10 Mobile上。[5]此功能組件從Windows 10 Insider Preview build 14316開始可用。[7]
——維基百科
首先打開設置,進入應用,選擇程序和功能,點擊啟用或關閉Windows功能,勾選適用於Linux的Windows子系統,接下來重啟。
在beta的時候我們需要在powershell裏面輸入bash才能下載wsl,而且沒有國內下載節點,不支持斷點續傳,所以一旦網絡不穩定就廢了。在1709版本的Windows10中,我們可以去商店搜索Ubuntu來下載,現在不但有Ubuntu,還有SUSE和openSUSE。(在Windows商店裏下載Ubuntu是不是感覺很詭異w(?Д?)w
安裝完成之後我們就可以進行折騰了,有人可能會好奇那如何使用windows上的文件呢?其實windows的目錄全部掛載在/mnt這個目錄下,我們可以在/mnt/c目錄下看到c盤的各種文件。好了,先運行一下screenfetch來看看。
作為一個java web developer,常用的大概就是ssh,git,jdk,tomcat,nginx等等。我們一一來測試一下。
SSH
我們可以看到ssh遠程連接可以正常使用,所以嘛putty或者xshell這種東西可以卸載了(逃
Git
git的各種命令也很正常。
JDK
接下來測試jdk,我們來編譯一小段代碼試試看,可以看到jdk也沒什麽問題。
Tomcat&Nginx
我們啟動tomcat,然後在Edge瀏覽器裏面訪問,便可以看到tomcat的默認首頁,是不是很神奇?當然nginx也是沒有問題的。
另外,gcc和clang經過測試也可以使用,這裏就不再展示了。
據說大神們已經可以在wsl上運行圖形化的Linux程序了,這點我沒有測試過,有興趣的小夥伴可以自行折騰。
那如果我們把wsl裏面的環境折騰亂掉怎麽辦?得益於Windows商店的好處,我們只要卸載並重新在商店下載即可。
最後,我認為wsl對windows平臺的開發者絕對是重大利好,一方面,一部分linux上好用的工具也可以在windows平臺上使用了,另一方面,在windows上開發好的程序可以直接部署到wsl上測試,這樣就能保證開發環境和生產環境盡可能的相似。好了,Enjoy it!
(btw,貼幾個wsl的相關資料,感興趣的小夥伴自行閱讀研究。
release notes:
https://msdn.microsoft.com/en-us/commandline/wsl/release_notes
WSL團隊的blog:
https://blogs.msdn.microsoft.com/wsl/
issue tracker:
https://github.com/Microsoft/BashOnWindows/issues
WSL(Windows上的Linux子系統)