Darling是一个开源兼容层项目,可在Linux系统中无缝运行macOS应用程序,它通过动态二进制转换和API转译技术实现跨平台兼容性,支持命令行工具及图形界面程序,为开发者提供便捷的跨平台开发测试环境,该项目仍处持续开发阶段,部分复杂应用可能出现兼容性问题。
Darling:在Linux上无缝运行macOS应用程序的开源方案
对于许多从macOS转向Linux的用户来说,最大的痛点之一是某些macOS专属的应用程序无法在Linux上使用,虽然Wine项目实现了Windows应用程序在Linux上的兼容运行,但macOS生态的兼容工具却鲜为人知,而Darling(全称Darling Environment)正是填补这一空白的前沿技术——它让Linux用户能够直接运行未经修改的macOS二进制程序,无需虚拟机或双系统。
Darling的核心功能与原理
Darling是一个开源兼容层(Compatibility Layer),通过模拟macOS的底层API(如Cocoa、CoreFoundation、Objective-C运行时等),将macOS应用程序的调用“翻译”成Linux内核能理解的指令,其核心技术包括:
- Mach-O二进制加载器:解析并加载macOS的可执行文件格式(Mach-O)。
- 动态链接器(dyld)模拟:支持加载macOS的动态库(如
libSystem.dylib
)。 - BSD系统调用转换:将macOS的BSD系统调用映射到Linux内核的POSIX接口。
- 框架兼容层:实现部分macOS专属框架(如AppKit、Foundation)的功能。
与Wine类似,Darling并非通过逆向工程实现,而是基于开源代码重新实现macOS的API,确保合法性和可持续性。
Darling的应用场景
- 开发者跨平台测试:在Linux环境中调试macOS应用程序。
- 工具迁移:运行macOS专有的开发工具(如Xcode CLI工具链)。
- 轻量级替代方案:避免为偶尔使用的macOS软件启动虚拟机。
Darling的优缺点
优势:

- 开源免费:代码托管于GitHub,社区驱动更新。
- 轻量高效:相比虚拟机,资源占用更低。
- 逐步完善:兼容性持续提升,已支持部分GUI程序(如TextEdit、iTunes 7)。
局限性:
- 不兼容图形密集型应用:如Final Cut Pro、Xcode完整版等。
- 依赖社区开发进度:部分API尚未完全实现。
如何安装与使用Darling
步骤1:安装依赖
在Debian/Ubuntu系统上:
sudo apt-get install cmake clang libfuse-dev libxml2-dev libicu-dev libssl-dev tcl
步骤2:克隆源码并编译
git clone --recursive https://github.com/darlinghq/darling.git
cd darling
mkdir build && cd build
cmake ..
make
sudo make install
步骤3:运行macOS程序
darling shell
$ /path/to/macos/executable
Darling的未来发展
项目团队正在推动以下改进:

- Metal API支持:通过MoltenVK将Metal调用转为Vulkan,提升图形性能。
- 更完整的AppKit实现:优化GUI应用的用户体验。
- 与Steam Deck等设备的适配:拓展在游戏掌机上的应用场景。
常见问题解答
Q:Darling能否运行所有macOS程序?
目前仅支持命令行工具和简单GUI程序,复杂应用(如Adobe系列)仍需虚拟机。
Q:Darling与Docker或虚拟机有何区别?
Darling是轻量级兼容层,不虚拟硬件,而是通过API转换实现原生执行。
Q:是否存在法律风险?
Darling本身合法,但需用户确保所运行的macOS程序拥有合法授权。

参考资料
- Darling GitHub仓库:https://github.com/darlinghq/darling
- macOS系统调用文档:https://opensource.apple.com
- Wine项目对比分析:https://wiki.winehq.org
- Mach-O文件格式规范:https://developer.apple.com/library/archive/documentation/Performance/Conceptual/CodeFootprint/Articles/MachOOverview.html