Friday, June 21, 2019

初探WSL


What is WSL?

白話來說就是在Windows上執行Linux啦~ 但是比起一般的虛擬機器來說使用上會更方便,簡單,快速。畢竟這是Windows自己就打算支持的功能嘛。

WSL是微軟與Canonical合作開發並於2016年正式發表,它運作的原理就是在Windows系統裡擔任上層Linux application與Windows NT kernel之間翻譯的橋樑,看下圖不難理解吧?




What can WSL do?

WSL除了可以像虛擬機器讓使用者在Windows上使用Linux外,它主要的賣點應該是可以讓Windows與Linux無縫整合在一起,也就是說在Windows cmd下可以使用Linux的命令,比如:find, awk, sed, grep ....., etc,如果有需要還可以透過package management(apt or yum) 去安裝需要的軟體,更好玩的是你可以在Windows上面運行X window,讓WSL執行運算,然後Windows負責顯示。

Requirements

1. 安裝64 bit的Windows10 (Windows 2019似乎也支援)

2. 版本等於或大於1607


Installing WSL

4個步驟即可安裝跟配置好!
1. Open a new PowerShell as Administrator.

2. At the PowerShell prompt, run the following command:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

3. Reboot Windows.

4. To install Linux distros from Windows Store.



Demonstrate - Getting started Ubuntu 

安裝完後,不用懷疑直接點選Ubuntu的icon就可以運行Linux。


Demonstrate - execute Linux tools 

之前說到在Windows下無縫接軌使用Linux command的方法有三種:
1. wsl [Linux command]

2. bash -c “Linux command”

3. ubuntu1804 run [Linux command]


上面這個例子就是在Windows cmd下使用Linux的ifconfig, grep, awk去過濾出系統的IPv4 addresses.


Demonstrate - X window

簡單三步驟讓你的Windows搖身一變成X window.
1. 下載Xming for Windows10.

2. 開啟Ubuntu並透過apt安裝常用的desktop applications.
$ sudo apt install ubuntu-desktop

3. 在Ubuntu裡把X window display設定成本機127.0.0.1:0
$ export DISPLAY=127.0.0.1:0


以上可以看到我可以在Windows底下透過Ubuntu使用xeyes, Firefox, Thunderbird, GIMP。



WSL2 is coming
剛剛所介紹的都是WLS1,微軟近期將打算推出WLS2並且號稱比WSL1會有更好的效能改進,主要的原因是它真的在Windows上運行Linux kernel! 而且第一個版本的kernel會是4.19!

WSL2可以說是整個架構的翻新( 參考下圖),它不在只是擔任翻譯的角色而是真正的Linux kernel,可以預期有更好的支援性,比如你將有機會在Windows下透過WLS2執行snap, docker, Kubernetes等等。

將來還可以透過Windows update來更新Linux kernel,微軟真的從此愛上了Linux嗎?讓我們繼續看下去~

參考:

No comments: