在 Linux 上執行 macOS 軟體 (★ 139 分)
Darling 是一套讓 Linux 執行 macOS 軟體的開放原始碼轉譯層,定位類似 Wine:Wine 讓 Linux 可執行 Windows 程式,Darling 則嘗試重建 macOS 所依賴的 Darwin 環境。它不使用硬體模擬器,而是直接在 Linux 上執行相容程式,並納入 Mach 核心機制、dyld 動態載入器與 launchd 服務管理等 Darwin 元件。專案採 GNU GPL v3 授權,主要運用 Apple 公開釋出的 Darwin 程式碼,以及 The Cocotron、GNUstep、Apportable Foundation 等開放原始碼成果。
Darling 的目標是讓 macOS 應用程式在 Linux 桌面上具備接近原生程式的外觀與操作感,但目前圖形介面程式僅有基礎實驗性成果,適用範圍以簡單應用程式為主;命令列工具則較具可用性。專案強調未違反 Apple 的終端使用者授權協議,因為只直接採用已完全開放的 Darwin 部分。長期規畫還包括在 ARM 裝置上執行 iOS App,但這需要自行實作 UIKit,難度很高;在 Windows 的 WSL 2(Windows Subsystem for Linux 2,Windows 的 Linux 子系統)環境中也可建置與使用 Darling。
討論串指出,Darling 的實際範圍遠小於「可執行 macOS 軟體」這句宣傳語:它較能處理依賴開放 Darwin 元件的程式,未公開的 macOS 圖形程式框架仍是主要障礙。AppKit(macOS 傳統圖形介面框架)、Quartz 圖形系統等內容並非完整開放,使 Logic Pro、Final Cut Pro、Photoshop 或 Xcode 圖形介面等主流商業軟體短期內難以執行。有人補充,Xcode 的 Clang、LLDB、Git、Swift 與 Metal 編譯器等命令列工具已有部分可用性,但 Xcode 圖形介面尚不可行,`xcodebuild` 也僅能處理極簡單的 XIB 介面專案。
社群普遍認為,Darling 與 Wine 的落差主要來自累積時間、人力與生態規模。Wine 自 1993 年起逐步建立 Windows API(應用程式介面)與 ABI(二進位介面)的相容層,並擁有龐大的測試套件、相容性資料庫與 Valve、Steam 等遊戲市場的實際需求;相較之下,Darling 的 AppKit 進展緩慢,近期更新也不多。部分意見認為 Apple 的軟硬體整合及專有框架讓重建難度更高;也有人反駁,Windows 同樣有龐大且複雜的圖形與系統元件,關鍵差異更在於 Wine 較早起步、取得足夠採用者與開發動能。整體而言,Darling 是具技術價值的基礎建設,但距離讓 Linux 使用者日常執行完整 macOS 商業圖形軟體,仍有很長一段路。
👥 46 則討論、評論 💬
https://news.ycombinator.com/item?id=49515830