Darling 是什麼:給 Linux 的「macOS 翻譯層」
Darling 是 2012 年由 Luboš Doležel 發起的開源專案,目標只有一句話:讓 macOS 軟體直接跑在 Linux 上,不用虛擬機、不用 Apple 硬體。它走的是與 WINE 相同路線——不是模擬整台電腦,而是重新實作 macOS 呼叫的函式庫與框架,讓 Mach-O 二進位檔以原生 ABI 在 Linux 行程內執行。
專案名稱是 Darwin + Linux 的縮寫,因為 Darwin 正是 macOS 與 iOS 的核心作業系統。Darling 的低階元件(XNU、libSystem、Security)直接取自 Apple 在 opensource.apple.com 開源的釋出版本;高階框架如 Foundation、AppKit(基於 Cocotron)、CoreAudio、CoreFoundation 則從頭重寫。CLI 工具大多能跑了,GUI 應用仍在積極開發中,目前由 AppKit 實作與一個跑在 Vulkan 之上的 Metal 翻譯層支撐。
編按:本文綜合整理自 Darling 官方網站、Wikipedia:Darling (software) 與 GitHub README,並加入 Siami 編輯部觀點。
為什麼這件事重要:WINE 的 macOS 版本等了 14 年
WINE 專案從 1993 年開始,已經讓無數 Windows 商業軟體在 Linux、macOS、ChromeOS 上復活。但 macOS 對應的「WINE」——Darling——從 2012 年動工,至今 14 年過去,仍然卡在三個關鍵瓶頸:
- 只支援 x86_64:完全無法跑 Apple Silicon 原生 ARM64 app。HN 留言區
anon_linux_user提到:「他們的 AppKit 實作五年才 20-30 個 commit,與其等 Darling 不如等廠商自己出 ARM64 Linux 版本再讓 FEX-Emu 補洞。」 - AppKit 進展緩慢:macOS GUI 應用主要依賴的 AppKit 框架,Darling 是用 Cocotron 為基礎重建,commit 速度與社群投入度遠不及 WINE 對 Win32 的覆蓋。
- Apple 沒有動機合作:WINE 在歐洲有 CodeWeavers 商業化支持,歐盟對 Microsoft 有反壟斷壓力;macOS 不存在類似壓力,Apple 自然不會釋出 GUI 框架源碼。
但故事沒那麼絕望。2026 年 6 月 Darling 釋出 0.1.20260608 preview 版,意味著專案仍在維護;同時 darlingserver(userspace kernel server)重新架構,把 Mach IPC、POSIX 與 Darwin syscall 都接到 Linux 核心之上,為未來 ARM64 支援留了空間。
技術拆解:Mach-O 載入器 + darlingserver + 框架重寫
Darling 的架構分三層:
- Mach-O 載入器:macOS 與 iOS 的執行檔格式。Linux 的 ELF 載入器讀不懂,Darling 自己寫一個,能解析 LC_SEGMENT_64、LC_LOAD_DYLIB、LC_CODE_SIGNATURE 等結構。
- darlingserver:userspace 的「迷你 macOS 核心」,實作 Mach IPC(port、message queue)、POSIX syscall(fork、exec、open 等)、Darwin 特有的 kqueue、launchd 等。在 Linux 上以單一 process 模擬整個 macOS userspace。
- 框架重寫:Foundation(字串、集合、檔案 IO)、AppKit(Cocoa GUI)、CoreAudio(音訊)、CoreFoundation(C 層 API)——四個最常用的框架各自重寫。Apple 開源的 libdispatch(GCD)也被納入。
實際操作類似這樣(截錄自官方 README):
$ darling shell
Darling [~]$ uname
Darwin
DPREFIX 機制類似 WINE 的 WINEPREFIX:在 ~/.darling 開一個 chroot 風格的虛擬檔案系統,把 .app 與 .pkg 安裝進去,與主系統隔離。底層用 overlayfs 實作,所以不能放在 NFS 或 eCryptfs 上。
目前已被驗證能跑的軟體包括:
- 命令列工具:Midnight Commander、The Unarchiver、Python、bash、git
- GUI 軟體:基本 Cocoa 應用(示範用 HelloWorld),尚不支援商業軟體如 Final Cut Pro、Logic Pro
- 套件格式:
.pkg安裝器部分支援;.mpkg與.dmg部分支援
Siami 觀點:Darling 對 Linux 桌面的實際意義
對終端使用者而言,Darling 目前無法取代 Parallels 或 UTM 跑 macOS 虛擬機——後者跑的是真的 macOS,相容性 100%;Darling 只能算「能在 Linux 跑少數 macOS CLI 與開源 Cocoa 玩具」。但對開發者社群,Darling 的真正價值有三層:
第一,它是少數合法取得 macOS 內部行為的文件化教材。Apple 不開源 AppKit 商業實作,Darling 的逆向工程結果等於一份「macOS 內部長什麼樣」的公開筆記,這對安全研究、相容性研究、甚至對 macOS 開發者理解自己的 framework 都有幫助。
第二,為 ARM Linux 跑 macOS app 留下技術儲備。當 darlingserver 與 Mach-O 載入器 ARM64 化完成,未來在 Asahi Linux、Raspberry Pi 5、甚至 ARM 伺服器上跑 macOS app 不再需要 QEMU + macOS 虛擬機這條笨重的路。
第三,對「macOS 軟體 bit-rot」提供唯一公開解方。HN 留言區 bit_rot_skeptic 點出殘酷事實:2002-2012 那批經典 macOS app(昔日的 Cyberduck、Transmission 早期版、舊版 Sketch)已經沒人維護、Apple 也不再提供。Windows 軟體至少能靠 WINE 復活,macOS 軟體若沒有 Darling,會逐漸變成數位黑歷史。
Darling 的開發者社群目前以 OpenCollective 募款維持,主要貢獻者來自歐洲與南美。如果你依賴某個 macOS-only 工具鏈,Darling 值得贊助——不然這條路線只會慢慢死去。
網友熱門留言 (5)