Haiku OS 進軍 Apple Silicon
傳統運算與現代硬體之間的交集,往往能產生軟體工程中最引人入勝的實驗。在最近一項引起作業系統愛好者社群關注的進展中,Haiku OS——傳奇 BeOS 的開源延續——已成功進入 ARM64 架構,使其能夠透過 UTM 和 QEMU 等虛擬化工具在 M1 Mac 上啟動。
對於不熟悉其歷史的人來說,BeOS 是為了高性能多媒體與效率而設計的,但隨著 Apple 在 90 年代末選擇了 NeXT(macOS 的基礎)而非 Be Inc.,它最終逐漸淡出。Haiku OS 旨在保持那種精神,提供一個與 BeOS 體驗二進制相容且現代化的實作。對許多人來說,看到它在 Apple Silicon 上運行,感覺就像是一場詩意的圓滿。
通往 ARM64 的技術路徑
將作業系統帶入新架構是一個艱辛的引導(bootstrapping)與硬體抽象化過程。Haiku 的 ARM64 移植版最近的進展已透過社群努力得到記錄,開發者已成功使用 QEMU 和 UTM 啟動該作業系統。
虛擬化與設定
目前,ARM64 移植版主要在虛擬化環境中運作。使用者回報稱,使用 qemu-system-arm64 並搭配特定配置來處理 EFI 實作與輸入裝置是成功的。例如,一位開發者分享了一個可運行的 QEMU 指令,利用 ramfb 作為故障安全顯示器,並使用 usb-tablet 以避免滑鼠擷取(mouse capture)的複雜性:
qemu-system-arm64 -m 512M -bios /path/to/the/arm64/QEMU_EFI.fd -device ramfb -M virt --cpu cortex-a76 -device usb-ehci -device usb-kbd -device usb-tablet -device usb-storage,drive=dska -drive id=dska,file=haiku-arm64-mmc.image,if=none
在 macOS 上,UTM app 也被用於啟動 Haiku,儘管早期報告指出滑鼠移動仍然「慢且不流暢」,這顯示驅動程式優化仍處於起步階段。
引導(Bootstrapping)的挑戰
新架構移植版的主要障礙之一是「引導」過程——在目標硬體上運行一個功能完備的開發環境。目前的 nightly images 是「未引導的」(unbootstrapped),這意味著它們缺乏 git 或 gcc 等整合工具。
開發者必須運用創意來將檔案移入客體作業系統(guest OS)。其中一種方法是透過 macOS Disk Utility 建立一個 FAT32 磁碟映像檔,將其掛載在主機上,放入必要檔案,然後將其作為 USB 儲存裝置連接至 QEMU。這種手動過程是必要的,因為 pkgman(Haiku 的套件管理員)目前面臨問題,這可能是由於初始映像檔中缺乏 OpenSSL 支援,導致出現「operation not supported」錯誤。
社群觀點:實用性 vs. 好奇心
與任何小眾作業系統專案一樣,這項宣布引起了關於此類移植版的實用性辯論。
移植的「為什麼」
一些社群成員質疑,支援 ARM64 或像 PowerPC 這樣的老舊架構是否會分散 Haiku 成為「真正」日常使用作業系統的注意力。然而,其他人則認為,並非每個專案都需要立即的商業實用性。正如一位評論者所言:
"Not everything has to be immediately useful to exist. Kill the capitalist in your head."
從開發角度來看,移植到 ARM64 並不僅僅是為了 M1 Mac;它也為各種單板電腦(SBCs)開啟了門戶,並可能擴展到其他基於 ARM 的行動硬體。
使用者體驗
雖然核心作業系統在舊款 x86 硬體上運行非常快速且穩定——使用者回報 Emacs 和 VLC 在舊款 ThinkPads 上運行「非常順暢」——但轉向高解析度顯示器是個已知的痛點。批評者指出,UI 介面雖然懷舊,但在 HiDPI 螢幕上往往顯價得過時,其漸層與浮雕效果元素看起來更像「DVD 選單」,而非現代介面。
展望未來
移植到 ARM64 是一個重要的里程碑,卻遠非完善的產品。目前 M1 Mac 上的 Haiku OS 狀態是概念驗證:它能啟動,它能運行,且為進一步開發提供了一個平台。n 對於 Haiku OS 是否會成為現代使用者的日常桌面環境,目前仍不確定,但它的存在本身就是對產業中主導的「教科書式 Unix 變體」的一個重要替代方案。就目前而言,能夠在原本競爭對手的繼承硬體上運行一個受 BeOS 啟發的系統,這是一項值得慶祝的技術成就。