darling

Darwin/macOS emulation layer for Linux

  • Owner: darlinghq/darling
  • Platform:
  • License:: GNU General Public License v3.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Darling

Darling logo

Darling is a runtime environment for OS X applications.

Please note that no GUI applications are supported at the moment.

Download

Packages for some distributions are available for download
under releases.

Build Instructions

For build instructions, visit DarlingHQ Wiki.

Prefixes

Darling has support for DPREFIXes, which are very similar to WINEPREFIXes. They are virtual “chroot” environments with an macOS-like filesystem structure, where you can install software safely. The default DPREFIX location is ~/.darling, but this can be changed by exporting an identically named environment variable. A prefix is automatically created and initialized on first use.

Please note that we use overlayfs for creating prefixes, and so we cannot support putting prefix on a filesystem like NFS or eCryptfs. In particular, the default prefix location won't work if you have an encrypted home directory.

Hello world

Let's start with a Hello world:

$ darling shell echo Hello world
Hello world

Congratulations, you have printed Hello world through Darling's OS X system call emulation and runtime libraries.

Installing software

You can install .pkg packages with the installer tool available inside shell. It is a somewhat limited cousin of OS X's installer:

$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /

You can uninstall and list packages with the uninstaller command.

Working with DMG images

DMG images can be attached and deattached from inside darling shell with hdiutil. This is how you can install Xcode along with its toolchain and SDKs (note that Xcode itself doesn't run yet):

Darling [~]$ hdiutil attach Xcode_7.2.dmg
/Volumes/Xcode_7.2
Darling [~]$ cp -r /Volumes/Xcode_7.2/Xcode.app /Applications
Darling [~]$ export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
Darling [~]$ echo 'void main() { puts("Hello world"); }' > helloworld.c
Darling [~]$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang helloworld.c -o helloworld
Darling [~]$ ./helloworld
Hello world

Congratulations, you have just compiled and run your own Hello world application with Apple's toolchain.

Main metrics

Overview
Name With Ownerdarlinghq/darling
Primary LanguageObjective-C
Program languageShell (Language Count: 16)
Platform
License:GNU General Public License v3.0
所有者活动
Created At2012-12-09 10:31:44
Pushed At2025-07-09 17:05:55
Last Commit At2025-06-16 18:03:08
Release Count11
Last Release Namev0.1.20230310_update_sources_11_5 (Posted on )
First Release Namev0.2019.8 (Posted on )
用户参与
Stargazers Count12k
Watchers Count238
Fork Count453
Commits Count4.3k
Has Issues Enabled
Issues Count1264
Issue Open Count305
Pull Requests Count258
Pull Requests Open Count4
Pull Requests Close Count41
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private