蘋果上周在 WWDC 上公佈了開放原始碼的容器化 (containerization) 框架,允許用戶在 Mac 電腦上建立和執行 Linux 容量映像檔。
軟體容器將應用程式和相依性整合於一個虛擬機器 (virtual machine, VM),以便整合在主機系統上。由於容器是一種符合 OCI (open container initiative) 標準的映像檔,因此可以利用常見的協同工具,像是 Kubernetes 跑在多種伺服器環境和資料中心。
Mac 電腦由於硬體穩定和豐富的開發環境,而受到開發人員喜愛,但是在伺服器端應用則還是撰寫 Linux 應用程式。這些開發人員建立 Linux 容器可讓他們使用 Mac,又能存取伺服器。
使用 Mac 電腦的開發人員之前已經有工具可建立 Linux 容器,像是 Docker 、 Podman 、 Orbstack 和 Lima 等。但 Docker 和 Podman 過去效能不太好。
蘋果希望藉由 Apple Containerization 框架,提供銜接 Swift 程式語言的開原框架,它已為 Apple Silicon 晶片最佳化,而且降低安全風險。 Apple Containerization 並非以單一大型 Linux VM 來處理多個容器,而是使用容器 CLI 來為各個容器分別建立輕量 VM 。
蘋果文件說明,用戶端可以為每個容器建立獨有的 IP 位址,這省去了通訊埠轉發 (port forwarding) 的必要。利用最佳化的 Linux 核心配置及輕量啟動 (init) 系統縮小根檔案系統 (root filesystem),這些容器將能達到不到 1 秒的啟動時間。
縮小檔案系統將可提升蘋果容器安全性,因為它摒棄了大部份核心公用程式和動態函式庫,得以大幅縮小攻擊表面,理論上也減少了維護的工作。
蘋果說,利用其容器化工具建立起的容器需要的記憶體比完整的 VM 來得少,但開機速度又堪比共享 VM 。不過必須強調,這是蘋果自己的願景。目前它還有些限制。本框架使用了目前還未推出的 macOS 26 Taho 的功能。跑在前一版 MacOS 15 Sequoia,效能就沒那麼好了。(是的,macOS 15 下一代為 macOS 26 。)此外,雖然蘋果說 macOS 26 支援記憶體氣球 (memory ballooning),(註:VM 可調整記憶體大小的一種方法),但也只實作了一部份。
但未來幾個月內,Apple Containerization 應該就能讓開發人員和使用者更容易在 Mac 電腦上執 Linux 容器。
來源:The Register
