想在手機上跑Linux系統?
想要在手機安裝Linux系統跑電腦上的程式?其實這是二個不同的議題。
所謂手機裝Linux,多半指的是ARM架構的手機跑ARM架構的Linux系統。沒有人在用ARM模擬完整x86系統的,絕對卡死。
就目前的技術而言,想要在手機上跑Linux,有以下二種方法:
- 使用APP模擬Linux環境
- 刪除手機系統,改刷真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手機吧。
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!
- Author
- More