:::

Chromebook多重作業系統簡介:Chrome OS + Android + Linux的世界 / Chrome OS, Android and Linux on Chromebook

Presentation1

你知道嗎,便宜且硬體等級不高的Chromebook中竟然能夠同時運作Chrome OS、Android和Linux,甚至可以模擬並安裝Windows軟體。這實在是太有趣了,讓我就用這篇來跟大家做個簡單的介紹吧。


Chromebook的多重作業系統 / Various OS in Chromebook

Chromebook雖然大多被視為給學生使用的教育機型,但在一部分開發者的眼中,Chromebook其實就是一臺全功能的Linux,甚至可以執行Windows的軟體。表面上,Chromebook主要執行的是以Chrome為主的Chrome OS和內建的Android,但實際上我個人認為Chromebook最有價值的地方,就是讓它執行完整Linux桌面環境的crouton

這是怎麼回事?讓我們用下面這張圖來說明Chromebook的多重作業系統概念。

image

Chromebook是指安裝了Chrome OS作業系統的特定機型,是對硬體設備的稱呼。而Chrome OS是在Linux核心上運作Chrome瀏覽器的作業系統。因為Chrome OS的核心依然是Linux,所以與Linux相關的各種作業系統,包括Android和Linux,都能與Chrome OS同時共存。而Android和Linux上本來就有很多軟體可以模擬安裝Windows,所以又能透過它們來使用Android的軟體。除了Chrome OS之外,Chromebook也能夠透過多重開機(dual boot)來安裝其他Linux作業系統。

總而言之,現在的Chromebook常常是同時間運作多重個作業系統,對於不熟悉的人來說,應該會覺得非常混亂。讓我們一步一步慢慢來看,在這個多重作業系統的環境中,大多都是以Chrome OS為基底。因此,我們先介紹Chromebook最基本的作業系統:Chrome OS。

先鋒:Chrome OS

image

原始的Chrome OS主要依賴Chrome瀏覽器運作。沒錯,就是你在Windows、Mac上安裝的Google Chrome瀏覽器,操作邏輯都差不多。而且這跟裝在Android手機上的行動版Google Chrome不同,使用者可以在chrome線上應用程式商店中,為Chrome瀏覽器安裝擴充功能

image (1)

早期Chrome OS還提供安裝Web APP的設計。Web APP是指某些網頁被視為獨立可運作的應用程式,例如待辦事項、日曆。但後來Web APP的設計被移除,取而代之的是透過Chrome瀏覽器上的「建立捷徑」功能,把常用的網頁釘選在Chrome OS的應用程式選單中,並讓它可以用單獨視窗運作(也就是Chrome瀏覽器的命令列選項app)。

到目前為止,Chrome OS上的APP基本上都是網頁,這為Chrome OS帶來了一個極大的問題:除非網頁本身支援HTML5離線設計,不然這些APP一定得要連著網際網路才能使用。為了解決這個問題,Google找來了一個強力的幫手:Android。

表界大將:Android

image (2)

直到2016年之後,大部分的Chrome OS都內建了Android作業系統。使用者可以透過Google Play安裝Android APP。使用這些Android APP大多都不需要透過網路,而可以在本機端直接執行。Android的加入大幅提升了Chromebook的實用價值,Google官方和Chromebook的各家廣告都主打安裝Android APP的特色,因此我認為它就像是Chromebook表界風光的大將一樣受人矚目。

crossover-chrome-os-blog-post_1

(圖片來源:code weavers)

有了Android APP,那Chromebook就開啟了許多可能性——包括安裝Windows上的軟體。Android APP中的CrossOver可以讓使用者安裝WIndows上的許多軟體。要注意的是,CrossOver不是允許你安裝任意軟體,而是只有部分的軟體才能夠安裝。還好,你想得到的知名軟體,像是OfficePhotoshop,都能透過CrossOver安裝到Chromebook上。

然而透過模擬的方式安裝Windows軟體,對硬體等級較差的Chromebook來說並不可行。因此像我這臺ASUS C213就直接放棄了這條路,我並沒有實際用Android的CrossOver安裝過Windows的軟體。

image (3)

會這樣想的另一個原因在於,對於生產力作業來說,Android其實有很多地方做得不夠好。Android本身是以觸控螢幕操作為主,很多APP對於滑鼠的選取、拖曳支援並不好。而且Android環境下並沒有滑鼠中鍵的硬體設計,這樣我用Android遠端桌面到Windows時,就不能用中鍵來操作Windows的軟體。雖然微軟在Android上發佈了Microsoft Office的APP,但因為當硬體螢幕大於10.1吋時,Office APP就必須付費才能使用,實際上我們還是不能在Chromebook的Android上直接使用Word或Power Point等工具。

到頭來,雖然Android雖然有豐富的APP,若要進行生產力作業,像是撰寫文稿或製作投影片,它依然不會是主要的選擇。

表界新星:crostini (Linux Beta in container)

image (4)

2018年,Chrome OS引入了crostini計劃。這是讓Chrome OS作業系統中加入了容器虛擬機器(container),並在容器中運作一個獨立的Linux。這種方式Chrome OS稱之為Linux Beta (測試版),但技術上來說,我們大多稱之為crostini。

使用者可以透過crostini安裝Linux上的軟體,例如LibreOffice、Firefox,這些被稱之為Linux APP。而更多程式開發者要的是可以透過crostini安裝並運作python、node.js,或是進行Android編譯之後,直接就能在Chrome OS的Android環境下安裝測試。

image (5)

然而至今為止crostini仍然不夠成熟。容器虛擬機器雖然讓crostini獨立運作,但也難以跟Chrome OS彼此互通。目前在crostini運作的Linux APP,並不能直接使用英文以外的任何輸入法,而crostini的檔案也未能跟Chrome OS的檔案系統彼此互通,現在只能在檔案管理裡面手動移動Chrome OS跟crostini裡面的檔案。此外,crostini還有未支援音效、顯示卡加速等各種問題。這些種種原因,Chromebook的使用者雖然持續關注crostini的發展,但目前主要工作並不會選擇crostini,而是繼續使用Chromebook的裡界之王:crouton。


裡界之王:crouton (Linux in Chroot)

早在Android踏入Chromebook的生態圈之前,一位名為crouton計劃的王者就已經透過chroot的形式,佔領了Chromebook的裡界地位。為什麼說他是裡界呢?因為crouton是以非官方的駭客形式來修改Chrome OS的內部運作系統,使Chrome OS裡面建立了另一種chroot虛擬作業系統,也就是完整的Linux桌面環境。

IMG_20181225_121559

為了達到這個目的,使用者必須透過複雜的手續開啟Chromebook的開發者模式(developer mode),而這模式可能會因為使用者胡攪瞎搞而把系統弄壞,因此這是Google官方和各家廠商表面上都避而不談的禁忌。不過,一旦經過開啟開發者模式與安裝crouton的重重關卡後,我們就可以享受Chromebook裡界之王所帶來的各種好處——甚至比原本的Chrome OS還好用!

用看的最直覺,我們就來看看Liliputing在Acer Chromebook Tab 10上執行crouton的影片吧。

image (6)

crouton的使用者通常會搭配著Linux桌面環境來安裝。雖然Linux的桌面環境選擇很多,但對於硬體等級較差的Chromebook來說,xfce應該是最好的選擇。在crouton中,使用者擁有了一個完整的Linux系統。我們可以直接安裝各種Linux軟體,也能夠安裝慣用的輸入法(例如RIME)和字型,桌面環境也能夠靈活配置(例如安裝Whisker MenuDockbarX)。

image (7)

網路上有許多教大家如何在Linux安裝各種工具的教學,而且Linux大部分軟體也都是免費的自由軟體。從研究者的需求來說,我成功安裝了Google ChromeLibreOfficeWPS遠端桌面rdesktop(出乎意料之外的流暢),當然,還有Zotero。從網頁開發者的需求來說,我也成功安裝了AtomNetBeans (要注意各種Bundles)、以及Node.js環境(要特別注意版本問題),程式運作順暢。

image (8)

在此同時,crouton與Chrome OS兩者是兼容並行地運作。使用者可以隨時從crouton切換回Chrome OS,也可以輕易切換到crouton。這兩個作業系統在運作的程式會持續執行。crouton的Download資料夾與Chrome OS的Download資料夾彼此互通,crouton也能跟Chrome OS一樣存取Micro SD記憶卡裡面的檔案。

img_54c83abee8192

(圖片來源:How-To Geek)

有些人會覺得crouton變成獨立一個桌面環境,跟Chrome OS兩者分離,這樣子很難跟Chrome OS上的Android彼此互動。沒關係,crouton的xiwi方案可能可以解決這個問題。xiwi可以讓crouton以Chrome OS中的一個視窗來呈現,所以你就不用在Chrome OS和crouton之間彼此切換,也許這樣子更能夠跟Android多工作業也說不定。

我不太確定的的原因是我自己並沒有試過這個方法。因為聽說xiwi的輸入法會使用Chrome OS的輸入法,不能讓我們安裝自己喜愛的輸入法。另一方面,在crouton裡面直接就能安裝Google Chrome,這樣就足以取代Chrome OS中的Chrome瀏覽器,不需要為了瀏覽器特地切換回去Chrome OS。現在唯一可能需要這樣做的時候,應該是需要在crouton跟Android APP切換的多工。不過目前還沒有這個需求,也就不急著嘗試xiwi了。

business-woman-showing-crossover-linux-welcome-screen

(圖片來源:CrossOver)

既然crouton是Linux桌面環境,那當然也可以安裝WINELinux版本的CrossOver來安裝Windows軟體,或是用VirtualBoxKVM來安裝整個WIndows作業系統。但這樣的運作方式對硬體等級不足的Chromebook來說過於吃力。我有試著安裝WINE,但最後並沒能順利運作任何Windows程式。

image (9)

在環境配置穩定之後,我們還能備份整個crouton作業系統。上圖是我玩到現在的備份檔案,有1.5GB之多,備份時間大概花了30分鐘有吧。

crouton的缺點 / Drawback of crouton

crouton並不是沒有缺點,真要我說的話,crouton的缺點就是跟Chrome OS不太像,特別是在在快捷鍵、觸控螢幕和電磁筆上做的沒Chrome OS好。

IMG_20181225_120649

crouton的快捷鍵跟Chrome OS有點不一樣。除了切換到crouton的ctrl+alt+shift+forward以及切換到Chrome OS的ctrl+alt+shift+backward之外,home / end / page up / page down必須要用Search鍵(Caps Lock)搭配方向鍵的左右上下。至於context menu key要用shift + f10 (聲量變大鍵)來使用。F1~F12的用法也可以用Search鍵搭配數字鍵使用。整個操作上要習慣一下就是。

image (10)

crouton許多軟體並非為觸控螢幕設計,如果要用觸控螢幕操作,那就得拉捲軸才行。而crouton預設的桌面環境是以滑鼠操作,很多地方不利於粗粗的手指控制。不過Google Chrome瀏覽器本身對於觸控螢幕操作的支援倒是很完整,用手指操作Chrome瀏覽器很順暢。

IMG_20181225_120820

因為crouton很多不易用觸控螢幕操作,能夠較為精準定位的電磁筆就相對好用的多。但是crouton的電磁筆在靠近螢幕一段距離時,就會被當作是用滑鼠移到該位置,進而導致開啟選單的觸發效果。有時候電磁筆點下去也沒有作用,必須多點幾次才會被認為是點擊,還不太確定這是什麼情況。

IMG_20181225_132010

除此之外,目前crouton還有跳回Chrome OS時會發生顏色錯亂的問題,現在最簡單的解決方法是按ctrl + shift + reload鍵(在forward鍵右邊)三次,讓螢幕轉個360度之後,顏色就正常了。

對於上述問題,有些只需要習慣即可,有些可能要等待Chrome OS或crouton的更新。當然,有興趣的人也能夠自行修改,因為crouton帶給Chromebook使用者極大的空間,這就是它最有價值的地方。

跟crostini相比,crouton的優勢非常明顯。crouton是更為完整的Linux作業系統,而crostini目前看起來仍是半殘。crostini雖然有Google官方的支援,而且它原本設計上就能跟Chrome OS有更好的整合,不過crostini因為仍然不是完整的Linux,所以不能像crouton能夠自訂輸入法和字型。兩者之間存在著無法跨越的鴻溝,我想我最後還是會選擇用crouton,在完整Linux環境下工作。這也是我把crouton當作Chromebook裡界之王的原因。


被遺忘的裡界戰士:多重開機 / Dual Boot

最後來聊聊Chromebook使用者中相對較少人選用的方案:多重開機(dual boot)。

這種做法是在原本的Chrome OS之外,安裝額外的作業系統,使用者就能在開機時選擇要啟動的作業系統來進入。額外安裝的作業系統跟原本的Chrome OS沒有直接關係。多重開機的使用者大多是不滿Chrome OS,希望能夠直接使用完整且乾淨的作業系統。

比較有名的多重作業系統為Kali LinuxGalliumOS,兩者都是Linux作業系統。選用多重開機的理由,大多都是因為不滿早期Chrome OS必須仰賴網路連線才能順利運作,又不能安裝Linux APP,所以使用者才會想要一個真正的Linux來用。

然而在crouton和Android蓬勃發展的現在,現在這兩個作業系統雖然還是有使用者,但它們安裝手續複雜,跟crouton相比也沒有明顯的優勢。我個人覺得他們應該會隨著時間被人們遺忘吧。

除了這兩個Linux的作業系統之外,之前有段時間也有傳出Chromebook可能可以搭配Windows 10作業系統多重開機的新聞。不過根據我對Chromebook使用者的觀察來看,很多人其實已經不用Windows許久,也沒有要安裝Windows的意思。

最後,就讓我們來聊聊在Chromebook上安裝Windows軟體的這件事情吧。


關於在Chromebook上安裝Windows軟體 / Windows APP on Chromebook

大部分人需要Windows的理由大致上分成兩種:一種是工作需求,一種是娛樂需求。

許多人工作所需執行的軟體都會綁定Windows環境。例如公文系統、簽到退系統,或是某些工業營運所需要的企業資源管理系統ERM。而對我個人來說,我相當依賴Open Live Writer來寫blog,而它也一樣只能在Windows環境下運作而已。

娛樂需求則是指需要在Windows環境下才能玩的遊戲。很多人對於電腦的主要用途是以遊戲為主,而這些遊戲大多都只為Windows開發,通常都沒Linux的份。

以我個人來說,我必須只能在Windows系統下操作的主要軟體包括了:

  • Open Live Writer:雖然草稿可以在Google Doc撰寫、圖片也可以暫存在Google Photo,但最後上傳到Blog之前的完稿還是要透過Open Live Writer。這點讓我覺得有點困擾。
  • Scan Tailor以及對應的PDF軟體: 我時常會將論文需要的資料數位化成PDF,這之中有一連串各種軟體的交互操作。我不確定Linux環境下有沒有替代的方案,這部分還需要時間研究。
  • SPSS統計工具:我雖然會使用R語言來跑統計,但在用R跑的同時,我通常還是會跟SPSS的結果相互比較、確認自己是否有跑錯。這部分的替代軟體還有PSPP可以使用,不過這也需要花時間研究研究就是了。
在Linux上安裝Windows軟體 / Windows APP in Linux

Linux上有一些虛擬Windows的方案,像是前述的WINECrossOver,而這些虛擬Windows方案大多也都是為了解決工作與娛樂兩種需求而開發。然而,工作需求使得人們離不開Windows的軟體,通常是比較小眾、特殊的系統。虛擬Windows方案通常不會去處理較為小眾的軟體,而是會先處理大眾知名的軟體,像是Microsoft OfficePhotoshop

另一方面,虛擬Windows方案在娛樂需求上的表現其實也不太好。這是因為複雜的遊戲會有更多系統最佳化的設計,虛擬Windows方案大多都是做到「能執行」,但很難達到「流暢執行」的境界。不過我個人比較少在玩遊戲,對這部分的觀察仍不夠深入就是了。

在Chromebook的多重作業系統世界中,使用者通常會把娛樂需求放在Android APP身上。沒錯,Android APP的確有很多遊戲可以玩,我也順利成功地安裝了爐石戰記,但要說Chromebook上可以盡情用Android APP玩遊戲這點,我不太認同。這是因為很多Android APP的遊戲是以手機或平板操控為主,而Chromebook是以鍵盤滑鼠操控為主。儘管大多Chromebook內建了觸控螢幕,甚至可以360翻過來作為平板使用,但一塊11吋、12吋的超大平板,其實是難讓人像手機拿在手上這樣玩遊戲。另一方面,Android APP的遊戲通常需要不少儲存空間,這又讓硬體儲存空間不大的Chromebook捉襟見肘。

到目前為止,在Linux上透過模擬器、WINE安裝Windows APP的做法,很難稱得上完美。真的要用Windows APP的話,大家還是會建議你用真正安裝Windows的電腦,或是遠端桌面遙控Windows來執行這些工作吧。


小結 / In closing

許多Windows使用者應該會覺得奇怪,跨Android或Linux很簡單啊,只要使用Blue Stacks或是VirtualBox就可以了。嗯,我也試過用這些模擬器來安裝其他的作業系統,但他們雖然都可以跑,但稱不上流暢的執行。

在Chromebook上透過crouton運作Linux,你會覺得這就像是一個原生的作業系統,不是模擬器中的感覺。而crouton保有了Chrome OS的省電、輕巧等特性,又能安裝各種Linux APP,直接把Chromebook當作一臺Linux筆電使用,也是沒有任何問題。在同價位和同硬體水準的筆電相比之下,Chromebook運作crouton的Linux桌面環境,我想應該是比Windows更為合適。

當然,如果在工作場合需要進行大量複雜操作和多工任務時,我可能還是會覺得Windows很不錯用。不過,在外面四處移動、沒有夠大且穩定的桌面、我只想要專心做些寫寫blog跟程式的工作時,Chromebook應該是很好的選擇。

然而,有趣的是,許多Windows的使用者常常會因為其他作業系統不能執行Windows軟體而嗤之以鼻。但如果認真想想,我們使用電腦工作的大部分時間,真的是在使用那些Windows上獨佔的軟體嗎?以我個人來說,其實我使用最多的軟體,還是用Chrome瀏覽器來操作網頁。如果Chromebook能夠在提升我大部分工作所需環境下的效率,那比起大部分時候運作都很慢、唯有少數時候才會用到的Windows來說,其實並沒有真的這麼差。對,我就是覺得Windows筆電續航力太差、開個網頁也運作效率緩慢等種種問題,才讓我憤而選用Chromebook來試試看。

至於Chromebook到底是否真的能夠如我預期地能夠派上用場,那就有待未來拿著Chromebook出外工作,才能對它有更進一步的感想。因為上次的螢幕漏光問題,我又把Chromebook送廠維修。下次能夠繼續研究Chromebook的時間,已經是明年的事了。今天就先到這裡為止吧。


那麼這次在對Chromebook的多重作業系統介紹就到這裡了。你知道Chromebook其實真身是Linux嗎?你推薦Linux上安裝什麼軟體?你怎麼配置你的Linux桌面環境呢?歡迎在下面的留言處跟我們分享你的想法。如果你覺得我這篇介紹寫的不錯的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!感謝你的耐心閱讀,讓我們下一篇見。

總共6 則留言, (我要發問)

  1. 繼續研究crouton中

    https://github.com/dnschneid/crouton/wiki/crouton-in-a-Chromium-OS-window-(xiwi)
    crouton有個xiwi模式,可以讓crouton中安裝的Linux APP,在Chrome OS中以視窗或頁籤的方式顯示

    https://lh3.googleusercontent.com/-h3ffc_yP2WU/XDDj1Jt2taI/AAAAAAAD-ME/tBMj1xiy3EweoXa0b-nF3z1K2E2YfTvAQCHMYCw/s0/2019-01-06_01-05-25.png
    但xiwi依然不能打中文啊? (而且截圖也很奇怪

    https://github.com/dnschneid/crouton/issues/1457
    看來目前仍是個無解的問題,還是放棄用xiwi打中文好了

    回覆刪除
  2. 研究了一下,發現了一些有趣的事情。
    Chrome OS跟crouton是同時運作,彼此會互相佔用資源。
    如果Chrome OS中什麼視窗都不開,直接進入crouton,會明顯感受到crouton的運作速度快上許多。

    現在我試著在Atom安裝我之前弄好的套件,不過我很擔心會不會因此導致Atom變得需要大量資源才能運作。
    總之就試試看吧。

    回覆刪除
  3. 原本以為Crostini的Linux APP用處不大。
    今天赫然想到,如果用它來做遠端桌面的話,結果會如何呢?

    嘗試以rdesktop來遠端桌面連線到Windows,整體來說很順,熱鍵也都保留可用。
    唯有alt + tab切換視窗時會變成Chrome OS全域切換視窗,但可用ctrl + alt + tab來取代。

    這樣子就省下需要進入crouton才能rdesktop的手續了。

    回覆刪除
  4. 我在crouton裡面使用Linux時,遇上了些麻煩。

    我使用iBus來輸入中文,但是在某些程式裡面,iBus的中文完全無法運作。
    這些程式似乎都是用Qt來繪製GUI,包括NetBeans、WPS

    底下是WPS中不能輸入中文的樣子。雖然可以打字,但實際上WPS沒辦法放入中文。
    https://lh3.googleusercontent.com/-OuK5f5TPU2E/XDQfYP2I8BI/AAAAAAAD-Wg/gzX1TZMhq_oxKN1dwVZ3Tm0JnasySN5FgCHMYCw/s0/2019-01-08_11-56-15.png

    https://blog.csdn.net/qq_32157851/article/details/84098999
    網路上大部分的教學是說在執行檔或/etc/profile裡面加入設定:
    export XIM="ibus"
    export XIM_PROGRAM="ibus"
    export XMODIFIERS="@im=ibus"
    export GTK_IM_MODULE="ibus"
    export QT_IM_MODULE="ibus"

    我做了,但也沒用
    現在一團混亂中XD

    回覆刪除
    回覆
    1. 如果是debian sid上,我確實也發生過同樣的問題,但是bionic修改環境變量就可以了。
      PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

      LC_CTYPE="zh_CN.UTF-8" LC_ALL="zh_CN.UTF-8"

      export XMODIFIERS=@im=fcitx

      export GTK_IM_MODULE=fcitx
      export QT_IM_MODULE=fcitx
      export QT4_IM_MODULE=fcitx
      export QT5_IM_MODULE=fcitx

      刪除
    2. To 厭世酷兒,

      我試了,但是沒用。
      我推測是因爲我這是chroot,一個虛擬的環境,所以有些東西跟實體機器上的ubuntu不一樣。
      這部分我就認了吧。

      刪除