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
2. 開啟Ubuntu並透過apt安裝常用的desktop applications.
$ sudo apt install ubuntu-desktop
剛剛所介紹的都是WLS1,微軟近期將打算推出WLS2並且號稱比WSL1會有更好的效能改進,主要的原因是它真的在Windows上運行Linux kernel! 而且第一個版本的kernel會是4.19!
WSL2可以說是整個架構的翻新( 參考下圖),它不在只是擔任翻譯的角色而是真正的Linux kernel,可以預期有更好的支援性,比如你將有機會在Windows下透過WLS2執行snap, docker, Kubernetes等等。
將來還可以透過Windows update來更新Linux kernel,微軟真的從此愛上了Linux嗎?讓我們繼續看下去~
參考: