網名館

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統

最新版的 Windows 10 Insider Preview Build 14316 剛剛發佈,其中最大的亮點莫過於微軟和 Canonical 合作,在其中內置了一個 Ubuntu 的子系統。其運行原理並不是傳統的虛擬機或者 Cygwin,而是Windows有個子系統把Linux的調用都轉成Native的API,直接運行Ubuntu鏡像裏面的二進制執行文件。

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統

Windows 10 insider 鏡像下載:

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第2張
應用名稱:Windows10 紅石RS1鏡像官方下載iso14295 簡體中文版
下載地址:

Windows 10 Insider Preview Build 14316內置 Linux子系統,對廣大開發者來説簡直是福音,從此再也不用羨慕 MacOX等 *nix 等系統順手的命令行了,在 Windows平台也能夠更好的開發和調試了!

最新版 Ubuntu下載:

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第3張
應用名稱:Ubuntu 16.04 Xenial Xerus官方下載16.04 鏡像下載
下載地址:

Cygwin 模擬器下載:

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第4張
應用名稱:Unix模擬器Cygwin2.8.7最新版
下載地址:

開發 Bash 的方法:

用户現在即使不使用Linux系統或Mac電腦就可以在Win10上使用Bash,那麼Win10系統上如何開啟Bash命令行功能呢?

1. 首先將Win10系統升級到最新的Build 14316,然後到系統設置——更新和安全——針對開發人員——選擇開發者模式。

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第5張

2. 然後系統搜索“程序和功能”,選擇“開啟或關閉Windows功能”,開啟Windows Subsystem for Linux (Beta),並重啟系統。

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第6張

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第7張

3. 安裝Bash,需要開啟命令行模式,然後輸入“bash”,第一次需要下載和安裝,安裝好就可以使用了。

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第8張

相關背景:

微軟在官方博客中宣佈,正式向部分用户(Windows Insiders,內部用户)發佈Windows 10 Insider Preview Build 14316(以下簡稱Windows 10 Build 14316)。

根據微軟的説法,Windows Insiders安裝Windows 10 Build 14316後,即可提前體驗即將於今年夏天向全體用户推送的Windows 10週年更新(Windows 10 Anniversary Update)的新功能。

該更新中最引人注目的一項更新就是Windows 10支持原生Linux bash命令行,或者用户可以使用Windows 10的Linux子系統,微軟官方的説法是支持在Windows上運行Ubuntu原生Bash(Run native Bash on Ubuntu on Windows)。

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第9張

微軟稱,如果Windows Insiders想要使用Windows 10的Linux子系統,需要通過“設置”應用將Windows從默認模式設為開發者模式,隨後,用户可以通過Windows Features添加這項功能,並獲得運行環境。

技術細節:

這個並不是通過Hyper-V啟動一個Ubuntu的虛擬機的方式來弄的。

而是Windows有個子系統把Linux的調用都轉成Native的API,直接運行Ubuntu鏡像裏面的二進制執行文件。

所以能使用各種Linux命令(包括Ubuntu的apt-get安裝軟件)。

就像Linux上的wine通過翻譯Windows API來運行Windows程序一樣,Windows的那個子系統就是Windows上的wine。

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第10張

這個系統和以往的方案區別在哪?

1) 不是vm,也不是container,所以性能不受太大的影響。根據上文中Krikland的文章, sysbench的運行結果幾乎相同。

2) 它比cygwin更像Linux,或者説,這本來就是一個完整的user-space Ubuntu,通過類似wine的原理實時把system call翻譯成native windows API。

這意味着你可以直接用apt-get管理軟件包,直接運行Ubuntu的binary,不再需要單獨為Windows重新打包和編譯。

3) 此外,微軟為此改進了這個console,增加了更多vt100的支持。也就意味着Powershell和Native命令行程序也能獲得更好的支持。

Win10開啟Bash的方法 如何在Win10裏運行Ubuntu子系統 第11張

這個特性更多的針對的是需要使用Linux開源工具鏈的Windows開發者。

現在你無需虛擬機就可以很方便的獲得和Ubuntu幾乎相同的軟件環境——而 Ubuntu 是今天雲端Linux系統的事實標準。

同時享受Windows方便廣泛的硬件軟件支持。