想在手機上跑Linux系統?

Ivon Huang
·
·
IPFS
·

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

手機刷Linux跑Steam遊戲

所謂手機裝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系統環境。好處是所有手機都能裝,壞處是能做到的事情有限。

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核心模組,虛擬機執行效率會很低下。


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

Ubuntu Touch出現時間最早,2014年,然後沒幾年就被母公司放棄,變成社群維護。Ubuntu Touch還發展出了Halium混合Android驅動的移植方式,犧牲自由軟體換取相容性。因此Ubutnu touch的UI設計完善,但是系統分區跟Android一樣是唯讀的,就算用root權限存取,下次更新OTA就會被蓋掉,因此跟傳統的GNU/Linux仍有差距,而比較接近Android的作法。

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手機吧。

CC BY-NC-ND 2.0

Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!

Ivon Huang自由軟體、航空、20世紀歷史愛好者。 這裡記載的東西究竟會成為未來的碎片,在那最果之處,反射出匯集各處思念的光芒。 My Blog: https://ivonblog.com
  • Author
  • More

將suckless.org極簡網頁設計哲學付諸實現

Linux電腦好用的必裝軟體,從文書處理到玩遊戲一次滿足

半回憶錄形式的2022年Matters回顧問卷