Windows

內建Linux子系統,Windows 10將可執行Ubuntu與Bash工具 #更新1

文.圖/小K 2016-03-31 12:00:18
微軟在3月30日於舊金山舉辦為期三天的Build 2016開發者大會。除了發布一些新的產品計畫之外,還公佈了Windows 10的重大更新。這個重大更新,指的就是Windows 10將可以執行Bash on Ubuntu,也就是Ubuntu的應用程式能夠直接在Windows 10下執行,賦予開發者更方便的自由軟體開發環境。

Ubuntu將可以在Windows 10下原生執行!


BASH神功各大OS平台皆膜拜,唯微軟OS不理會

有關於BASH (Bourne-Again SHell),是一種*nix Shell的一種,早在1989年就誕生,原先是計畫在GNU作業系統上,但後來被應用在各種類Unix的作業系統之上,像是Linux家族(如知名的Ubuntu、Fedora等等)以及Apple的Mac OS X 10.4,都把BASH作為預設的Shell。此外,Bash也被移植到Microsoft Windows上的Cygwin與MinGW,或是能直接在MS-DOS上使用的DJGPP專案,就連早期的Novell NetWare,以及現在Android平台上面的Terminal(終端機),也都有BASH的蹤跡。

微軟在Build 2016開發者大會中,宣佈將讓把Bash帶到Windows環境,讓「Windows就是你的家目錄」


由於BASH具有跨平台的特性,在自由開源軟體社群中,許多軟體的安裝程式、Linux的安裝步驟、各式Daemon或service設定與載入過程,幾乎都是以Bash script來撰寫,加上不少軟體工程師在撰寫跨平台軟體時,尤其是手機軟體Apps時,更會接觸到BASH,而不是微軟的PowerShell或DOS Prompt。

為了跨平台App開發,使用Linux幾乎是必備

對於程式設計師來說,要開發跨平台應用程式時,微軟的開發工具大多只能支援自家Windows平台,但Linux的應用程式開源開發環境,不只可以開發Linux跨平台的App,稍微修改一下,就能夠移植到Windows的平台。對蘋果OS X、iOS開發者來說,由於該OS基於BSD系統,其包含了Bash與GNU的各式開發工具,因此程式設計師只要攜帶一台MacBook,就可以開發OS X、iOS、Linux等App。而Google Android OS更是以Linux為根基,必須安裝Ubuntu或其他Linux作業系統來開發其App,因此程式設計師必須在PC安裝雙作業系統,以便能在Windows和Linux平台下通吃。

也就是說,在當今開源、跨平台的行動應用時代,開發軟體選擇微軟的Windows開發工具已不吃香了,選擇在*nix環境開發才是王道。雖說在Windows平台,其實也有所謂的Cygwin、MinGW等類Unix Command Line工具,以及coLinux這類的雙系統模擬環境,能夠讓DOS Prompt也可執行Bash或其他GNU Tools,但這些工具畢竟功能有限,完整開發程式時還是建議使用原生作業系統比較實際!

若選擇在同一機器安裝虛擬機(如VirtualBox或VMware)來跑*nix,其執行速度又不像原生速度那樣快。因此,當今對程式開發者來說,若他主要工作電腦是Windows平台的話,都會另外安裝一套Linux的原生執行環境,以用來編譯、執行與測試開發出來的App。

要在單一電腦執行多作業系統,通常選虛擬機器是最快的,但執行效能總是無法跟原生效能相比。圖為Ubuntu在VMware下執行的狀況


向Linux靠攏,微軟終於支援Bash

為讓程式開發者在設計Apps時,也能直接選擇使用Windows 10來開發,而不是另外安裝一套Linux來開發,微軟在3/30的Build 2016開發者大會中,宣佈正與Canonical (Ubuntu的公司)合作,將把Ubuntu Linux Subsystem引進Windows 10中,使Windows 10也能原生直接執行BASH,以鼓勵程式開發者不用再安裝Linux了,直接在Windows 10的Command Prompt下,就可以執行 bash,然後進入 bash 的開發環境!

微軟在Build 2016開發者大會,示範在Windows 10的Command Prompt下執行bash環境,並秀出其該環境下所屬的Ubuntu 14.04.4 LTS子系統 (目前是Ubuntu 14.04版,不久之後將更新為16.04版)。


在Bash on Windows下,以gcc來組譯一個C語言程式,並以readelf來解譯該執行檔ELF64的檔頭內容,是完全符合Unix – System V的格式。


除了bash之外,微軟也表示將開源軟體下的所有Command-line(命令列)工具,都帶到Windows平台來,包含vi、emacs等文字編輯器。

Ubuntu on Windows誕生:Windows Subsystem for Linux

Canonical也表示,透過與微軟的合作,雙方將就Windows和Ubuntu的核心整併起來,在Windows 10的Kernel端內建Windows Subsystem for Linux,以便與User模式端的Ubuntu做連結,因此不只是可以執行 Bash,其他像是 apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch...等工具都能執行。

將Linux的使用者模式與工具整合進Windows,這樣就可以直接在Windows執行,不用再透過虛擬機了!


Windows Subsystem for Linux的核心架構說明


簡單來說,Windows的Subsystem for Linux,有點像是WINE的相反工具。WINE是嘗試讓Windows的應用程式能夠在Linux環境下執行(例如PlayOnLinux、Crossover就是建構於WINE基礎下的整合性工具,讓Microsoft Office也能在Linux下執行),而這次Ubuntu on Windows則是可以讓Linux下的軟體能夠原生在Windows下執行。

當然,以雙方合作部份,目前僅就Command-line工具做整併,同時也在相容性上做最佳化,以讓各種Bash Tools能夠在Windows Command Prompt下完美運作。至於X Window等GUI執行環境部份,其實微軟本身的Windows GUI很成熟了,似乎沒必要再跑一套X Window,因此這部份是否整併則尚未提及。

目前整合中,當然還是有些相容性問題(例如top就不能執行),微軟還在克服中


多系統平台已是主流,支援越多越有利

Windows能執行Ubuntu的Command-line工具,是否意味著未來的Windows 應用程式,只要是該程式有跨平台的話,在Windows環境下安裝前,就會先要求你先安裝Bash for Windows工具,或者強制幫你安裝。就如同你安裝完遊戲時,Setup工具就會順便安裝DirectX、.NET Runtime等程式套件一樣。

總之,多系統早已是未來電腦的主流。先前蘋果推出Bootcamp讓你的Mac除了既有的OS X,也能安裝Windows;而2014年有不少大陸平板業者,推出了Windows + Android雙作業系統的平板電腦;甚至有些手機可以選擇開機時進入Windows Mobile系統或Android系統;就連NAS產品也開始都要講求能支援雙系統(例如QNAP的Ubuntu + QTS或Android + QTS);而單板電腦早就可以執行多種作業系統的環境(例如Raspberry Pi,只是無法同時執行就是了)。

因此,主作業系統再包含另一套子系統(通常是*nix系統),將成為趨勢。這點我們已從OS X支援BSD Unix這點可以看到,而Android本身就是Linux環境。如今我們可以樂見Windows支援Ubuntu之後,將吸引更多自由軟體作者在Windows平台開發各式軟體,讓Windows的應用程式更多、更壯大。

[UPDATE 1]

自行玩玩看,Build 14316內已提供Beta版測試

為讓程式開發者可以提早使用Bash on Ubuntu on Windows,微軟於4月6日釋出最新的Windows 10 Build 14316預覽版,其內部已加入 Windows Subsystem for Linux (Beta)。只要您有加入Windows Insider的計畫,即可優先下載並升級,然後只要在「開啟或關閉Windows功能」中,打開該項目,就可以在DOS Prompt底下,輸入 bash ,並從Windows Store下載必要的Linux相關檔案,接著就可以進入Linux的命令列世界,而開始功能表內,也會新增一個Bash on Ubuntu on Windows的程式。

目前 Bash on Ubuntu 的版本為 14.04.4 LTS,未來可以透過輸入 lxrun /update 的方式,來更新版本至 16.04 LTS。若不想玩的話,也只要執行 lxrun /uninstall 即可將所有 Linux 子系統的程式與檔案都移除掉。

升級至Windows 10 Build 14316預覽版,並打開Windows Subsystem for Linux(Beta)選項。


此時開啟命令提示字元,輸入bash,即可下載Linux相關檔案,並開啟Linux子系統


在開始功能表內,會新增一個Bash on Ubuntu on Windows的程式


目前 Bash on Ubuntu 的版本為 14.04.4 LTS,未來可以透過輸入 lxrun /update 的方式,來更新版本至 16.04 LTS。若不想玩的話,也只要執行 lxrun /uninstall 即可將所有 Linux 子系統的程式與檔案都移除掉。


參考來源:Dustin Kirkland (Canonical公司) Blog

參考來源:Windows Blog

參考來源:在Windows執行Bash on Ubuntu示範與簡報

→更多的【PCDIY! Windows】: 請見

→更多的【PCDIY!八卦】: 請見

→更多的【PCDIY!軟體玩家】: 請見

→更多的【PCDIY!玩家話題】: 請見

→更多的【PCDIY!開箱文】: 請見

延伸閱讀

(01)Windows XP再戰十年,引爆網友熱議!
(02)Windows XP仍是一尾活龍,東歐還有1/3企業及公眾電腦在使用
(03)9+1個升級到Windows 10的理由
(04)9+1個不要升級到Windows 10的理由
(05)CrystalDiskInfo硬碟健康檢查工具,SSD、HDD、SSHD定期安檢才能永保安康!
(06)研發代號Win7 SP2》 最新的微軟Windows 7更新懶人包推出,系統更新一次搞定!
(07)趨勢PC-cillin 2017雲端版,防範勒索病毒的最佳良藥!
(08)電腦玩雙打不稀奇,現在起作業系統開始要玩一屋三妻 → Windows 7 + Windows 8.1 + Windows 10
(09)Remix OS Player,全新Android 6.0模擬器讓你在Windows玩手機遊戲
(10)終於不用再被嘮叨,Windows 10免費升級優惠仍持續進行!
(11)開啟Windows 10的GodMode(上帝模式)!
(12)Windows 10隨身碟USB 3.0版正式開賣,台灣製造32+64位元二合一版本Win10報到!
(13)老電腦升級Windows 10大作戰
(14)Microsoft Edge瀏覽器,超越IE,速度大躍進
(15)彩蛋哥劉冠宇,隱藏在你Windows 10帳戶裡…
(16)Remix OS for PC完整安裝攻略:讓您電腦可以Windows + Android 雙重開機
(17)Windows XP釘子戶還有多少,引爆網友熱議!
(18)SSD用戶必備》固態硬碟檢測與診斷工具,您裝了嗎?
(19)震撼,Microsoft爆史上最嚴重出包》Windows Vista、7、8與8.1全中獎,安裝更新之後就得要修理或重灌!
(20)震撼!群暉NAS爆史上最嚴重漏洞》Synology NAS年初才爆挾持挖礦,鬼月又出脅迫逼付贖金
(21)原廠檔案都有木馬了,難怪怎樣玩都會被盜帳號!
(22)hao123也是寄生獸會綁架人腦 引爆網友熱議!
(23)200TB資料怎麼儲存,引爆網友熱議!
(24)硬碟故障資料救援報價3萬8 引爆網友熱議!
















發表您的看法

請勿張貼任何涉及冒名、人身攻擊、情緒謾罵、或內容涉及非法的言論。

請勿張貼任何帶有商業或宣傳、廣告用途的垃圾內容及連結。

請勿侵犯個人隱私權,將他人資料公開張貼在留言版內。

請勿重複留言(包括跨版重複留言)或發表與各文章主題無關的文章。

請勿張貼涉及未經證實或明顯傷害個人名譽或企業形象聲譽的文章。

您在留言版發表的內容需自負言論之法律責任,所有言論不代表PCDIY!雜誌立場,違反上述規定之留言,PCDIY!雜誌有權逕行刪除您的留言。