如何在手機上跑Linux系統?你有這幾個方法可以嘗試

想要在手機安裝Linux系統跑電腦上的程式?其實這是二個不同的議題。

PinePhone,圖片來自Pine64官網

所謂手機裝Linux,多半指的是ARM架構的手機跑ARM架構的Linux系統。沒有人在用ARM模擬完整x86系統的,絕對卡死。

就目前的技術而言,想要在手機上跑Linux,有以下二種方法:

  1. 使用APP模擬Linux環境
  2. 刪除手機系統,改刷真Linux系統

讓我們來看看這二個方法的優劣。

1. 使用APP模擬Linux環境

以APP模擬Linux環境。Android手機安裝「Termux」,iOS安裝「iSH」和「UTM」可達到此目的,不需要root也不用越獄,適合大多數裝置使用。

所謂模擬的意思是用APP模擬Linux系統環境。好處是所有手機都能裝,壞處是能做到的事情有限。

1.1. Termux

Android上的Termux是半虛擬化的Linux環境,Termux虛擬出一個類似Linux的環境,再想辦法讓程式以原生效能執行。然而光目錄的FHS就跟一般電腦Linux差異甚大,就算用Proot安裝其他Linux發行版容器,該系統也很難存取硬體,因為Linux跟Android的函式庫根本不一樣。

簡言之,在這樣環境下的Linux系統,是不可能進行3D圖像編輯和玩遊戲的,頂多簡單寫點Python/Java/C++小程式、跑跑文書軟體。又因Termux能存取Android系統的檔案,所以用ffmpeg這類程式轉檔影片也是可以的。所以Termux的用途是混合Android生態系使用的輔助工具。

*如果手機有Root權限,以chroot安裝Linux容器能做的事情會多一些,但仍會被Android裁剪過的Linux核心限制用途,例如Android的核心普遍缺乏cgroups核心模組,所以還是無法執行Docker。那如果用QEMU跑ARM架構的Linux呢?很抱歉沒有KVM核心模組,虛擬機執行效率會很低下。

1.2. iSH和UTM

iOS上的iSH是模擬32位元Alpine Linux的APP,純文字界面適合跑一些指令稿和進行SSH連線。又因為iSH的檔案系統能用檔案APP開啟,你可以將檔案丟進去Linux下處理,例如照片轉檔等。如此一來iSH用途就類似Android上的Termux,是混合iOS生態系使用的Linux環境。

至於UTM則是虛擬機軟體,透過AltStore安裝,再安裝JIT加速後,可以用最高性能跑其他系統的虛擬機(如Windows 10和Linux),適合iPad使用。配合Apple力壓群雄的處理器性能,目前最高階M1晶片的iPad Pro已證實撐的住Windows 10 ARM,但GPU加速短期內難以實現。


由此可見手機上的Linux環境偏輔助混合用途,而且虛擬Linux的方案都不如x86架構的電腦完善,即使如此手機/平板有這樣的程式擴充用途也是不錯的。

2. 刪除手機系統,改刷Linux系統

iOS裝置就算越獄後也不可能刷其他系統,除了iPhone 7有Project Sandcastle這種極少數的例子。那相對開放的Android裝置呢?其實以數量來說能刷Linux的Android手機也是很少數。

這時有人會說Android不算Linux嗎?算,但也不算。Android跟電腦上的GNU/Linux結構其實差異甚大,下面要談的「真Linux手機系統」設計是比較偏向電腦GNU/Linux系統的,而非Google魔改後的結果。比較簡略的說法就是:這些系統預設都保有root使用者,而非Android拔掉不給用。


目前Android以外的「真Linux手機系統」就有十餘個發行版,其中勢力最龐大的要數Ubuntu Touch和postmarketOS這二個系統了,這二個發行版支援的手機數量最多,有被移植到許多Android手機上,甚至有專門為Linux服務的手機「PinePhone」和「Librem 5」出現。

2.1. Ubuntu touch

Ubuntu Touch出現時間最早,2014年,然後沒幾年就被母公司放棄,變成社群維護。

Ubuntu Touch還發展出了Halium混合Android驅動的移植方式,犧牲自由軟體換取相容性。因此Ubutnu touch的UI設計完善,但是系統分區跟Android一樣是唯讀的,就算用root權限存取,下次更新OTA就會被蓋掉,因此跟傳統的GNU/Linux仍有差距,而比較接近Android的作法。

2.2. postmarketOS

2019年前後出現的postmarketOS則比較像電腦的GNU/Linux發行版,系統分區隨便你改動,性能夠的話要跑Docker和虛擬機也行。此外postmarketOS強調移植的機型必須使用最新版的主線Linux核心,驅動程式也必須盡量用開源版,放棄了Ubuntu Touch那種Halium技術的折衷作法,改走真正的GNU/Linux手機路線。

或許因為postmarketOS相較於Ubutnu touch更加自由,所以「Linux手機APP」才有發揮空間,GNOME(Phosh)和KDE社群都相繼開發隨螢幕大小變化的應用程式和SDK,能沿用現有的技術開發Linux手機APP。


真Linux手機看起來很強大,但生態尚未成熟,目前頂多滿足通話與上網,用戶還要有很強的tinker精神才用的下去。開源或許能慢慢補全生態系問題,但會用Linux手機的人多少要對命令行有認識。

3. 總結

要如何讓Linux融入你的生活中都看個人選擇,從Termux這類APP下手會是不錯的開始,或許你能從中體會到自由開源的精神。

等到做好準備,就去玩玩看Linux手機吧。


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要登入Github帳號才能留言。支援markdown語法,方便您張貼程式碼,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus投放的廣告。無論有無登入皆可留言。此處留言只有本站參與者看得到。若您選擇以訪客身份匿名留言,就不會收到後續回覆通知。