Linux中國

「Ubuntu on Windows」 初體驗

據該項目的合作方, Ubnutu 背後的 Canonical 公司的產品與戰略負責人 Dustin Kirkland 說,他在幾個月前聽說這個瘋狂的想法時也懵了,花費了不少工夫才理解這後面發生了什麼。

本文帶你揭開「Ubuntu on Windows」的神秘一角。

首先,讓我們看看發生了什麼?

  1. 首先你得有個 Windows 10
  2. 打開 Windows 開始菜單
  3. 輸入「bash」 (沒有引號),回車
  4. 這會打開一個 cmd.exe 窗口
  5. 運行 Ubuntu 的 /bin/bash
  6. 賓果!你可以完全訪問所有的 Ubuntu 用戶空間了
  7. 沒錯,這包括 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 等等
  8. 以及,Ubuntu 軟體庫中數以萬計的 ELF 二進位程序中的絕大多數!

Bash

「好吧,這是一個運行在虛擬機的 Ubuntu 嗎?」 不!這根本不是一個虛擬機,不用在虛擬機中啟動 Linux 內核,它就是 Ubuntu 的用戶空間。

「哦,那是運行在容器裡面啰?」 不不!這也不是一個容器,這是在 Windows 裡面直接運行原生的 Ubuntu 二進位程序。

「嗯,就像 cygwin 那樣?」不不不!cygwin 所包括的開源程序是以源代碼重新編譯後才能原生運行在 Windows 上。而這裡,我們說的是一個比特都不差、校驗值完全一樣的 Ubuntu 的 ELF 二進位程序可以直接運行在 Windows 下

... ...

「那麼,這就像是模擬器一樣么?」這就比較接近真相了,來自微軟的一些尖端技術人員正在研究一種技術,可以將 Linux 的系統調用實時地轉換為 Windows 的系統調用。你可以把它當成 Wine 的一種反向技術。微軟將其稱之為「 Windows 下的 Linux 子系統 Windows Subsystem for Linux 」,當然現在還沒有開源。(我覺得網友 delectate 說的比較有趣,這個東西不如叫做 mine=microsoft's native emulator 。)

而且,根據 Dustin Kirkland說法,使用跨平台的性能測試工具 sysbench 進行測試的結果發現,在 Windows 下運行這些原生的 ELF 二進位程序和在 Linux 下運行所消耗的 CPU 、內存和 IO 性能相當。對於這個結果,我表示非常的吃驚!

Dustin Kirkland 是該項目組的成員之一,他的體驗可以讓我們感受一下這個「超級神秘」的項目。

由於需要將整個 Ubuntu 的根文件系統打包到一個 Windows 應用軟體包(.appx)中,這位已經十幾年沒有使用過 Windows 的老兄對微軟開發工具十分陌生,在經過幾個小時與 Visual Studio 的痛苦搏鬥,製作了一堆各種尺寸的 png 圖標,編輯了一打以上的 XML 文件後,他簡直忍不住要將咖啡杯扔到該死的屏幕上了。

到最後,他終於尋求他所熟悉的 Linux 經驗解決了這些問題。

按下 Windows 鍵,輸入「bash」,回車!他發現這個要上載的根文件系統的內容放在 /mnt/c/Users/Kirkland/Downloads 下,只需要使用一個 cp -a 複製到目標位置即可,並用 find | xargs |rename 來批量更新文件名,用 grep| xargs | sed 搜索替換路徑,用 convert 工具快速地批量縮放圖標,簡直不要太容易地搞定了這些工作,剩下的就只需要讓 Visual Studio 自己幹了,編譯、上載到 Windows Store。搞定!

嗯,你也許從終端窗口中看到了 /mnt/c ,沒錯,這就是你的 Windows 下的 C: 盤,它們以讀寫模式直接掛載到 /mnt 下了。當然,你也可以在 Windows 下通過類似如下的路徑訪問 Ubuntu 的文件系統:C:UsersKirklandAppDataLocalLxssrootfs 。

文件系統

同時,如果需要 ssh 連接到其它的 Linux 上,你根本不用下載 putty,直接輸入 ssh 即可:

ssh

當然,你也可以使用 apt 來安裝和更新軟體包:

apt

到目前為止,是不是所有的東西都可以完美工作了?還不全是。LTP 測試中的大多數都沒問題,但是有一些則還不行,主要是 tty 相關的部分,比如 byobu、screen、tmux 等還不能很好的工作,不過相信也快了。

另外,順便提一句,當前這個子系統所採用的 Linux 鏡像是 Ubuntu 14.04 LTS,等 16.04 LTS 發布後相信很快就會更新到 Windows Store 上。


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let's Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...