想要在手機安裝Linux系統跑電腦上的程式?其實這是二個不同的議題。
所謂手機裝Linux,多半指的是ARM架構的手機跑ARM架構的Linux系統。沒有人在用ARM模擬完整x86系統的,絕對卡死。
就目前的技術而言,想要在手機上跑Linux,有以下二種方法:
- 使用APP模擬Linux環境
- 刪除手機系統,改刷真Linux系統
讓我們來看看這二個方法的優劣。
1. 使用APP模擬Linux環境#
以APP模擬Linux環境。Android手機安裝「Termux」,iOS安裝「iSH」和「UTM」可達到此目的,不需要root也不用越獄,適合大多數裝置使用。
所謂模擬的意思是用APP模擬Linux系統環境。好處是所有手機都能裝,壞處是能做到的事情有限。
1.1. Termux#
- 相關文章: 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#
- 相關文章: 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手機吧。