微軟今天發布了 Windows 10 build 18917 Insider 版本,其中最引人關注的是內核採用 Linux 重構的 WSL 2(Windows Subsystem for Linux)現在已經可用。
WSL 2 是上個月微軟在 Build 2019 上宣布推出的,相比第一代,新的 WSL 重新設計了架構,使用真正的 Linux 內核,可以在 Windows 上運行 ELF64 Linux 二進位文件。
Linux 二進位文件使用系統調用來執行許多功能,例如訪問文件、請求內存與創建進程等。WSL 1 創建了一個轉換層,對這些系統調用進行翻譯,以允許它們在 Windows NT 內核上工作。但是,實現所有這些系統調用很有挑戰性,導致某些應用程序無法在 WSL 1 中運行。現在 WSL 2 包含自己的 Linux 內核,它具有完整的系統調用兼容性,這引入了一組可以在 WSL 中運行的全新應用程序,比如 Linux 版本的 Docker。
微軟在博客中介紹了 WSL 2 的使用方式,其中指出了 WSL 1 與 2 兩點最大的不同:
將 Linux 文件放在 Linux 根文件系統中
過去三年,WSL 1 的文件一直需要放在 C 盤,WSL 2 的新架構已經沒有了這個問題,現在可以將 Linux 應用中經常訪問的文件放在 Linux 根文件系統中,以享受文件性能優勢,這樣會帶來更快的文件系統訪問能力。
同時 Windows 應用現在也可以直接訪問 Linux 根文件系統,比如文件資源管理器。可以在 bash shell 中運行`explorer.exe /` 測試一下效果。
在初始構建中使用動態 IP 地址訪問 Linux 網路應用
WSL 2 包含使用虛擬化技術的巨大架構變更,網路支持仍在改進中。WSL 2 現在在虛擬機中運行,因此需要使用該 VM 的 IP 地址從 Windows 訪問 Linux 網路應用;同樣的,需要 Windows 主機的 IP 地址才能從 Linux 訪問 Windows 網路應用。微軟的目標是儘可能讓 WSL 2 能夠使用 localhost 訪問網路應用。
新 WSL 命令
新的 WSL 還添加了一些命令來幫助用戶控制和查看 WSL 版本和相關信息。
目前 Insider 版本測試中如果有發現問題可以向微軟提交,地址:
https://github.com/microsoft/WSL
Windows 10 Insider Preview Build 18917 更新說明可以查看:
[admin
]