# darlinghq/darling

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/darlinghq-darling).**

12,606 stars · 485 forks · Objective-C · gpl-3.0

## Links

- GitHub: https://github.com/darlinghq/darling
- Homepage: http://www.darlinghq.org
- awesome-repositories: https://awesome-repositories.com/repository/darlinghq-darling.md

## Description

Darling is a translation layer that enables the native execution of unmodified macOS binaries on Linux systems. It functions as a compatibility environment that maps macOS-specific system calls and environment variables to the host Linux kernel, allowing desktop applications to run without the need for full hardware virtualization or emulation.

The project achieves this by implementing a user-space kernel emulation environment that intercepts and translates kernel traps into their Linux equivalents. It includes a custom loader for binary files that resolves dependencies against open-source implementations of Apple system frameworks, while managing the translation of thread-specific memory structures and inter-process communication mechanisms required by macOS applications.

This environment bridges the gap between operating systems by providing the necessary infrastructure to execute proprietary software designed for Apple hardware directly on Linux distributions. The project is distributed as source code intended for compilation on Linux systems.

## Tags

### Operating Systems & Systems Programming

- [Compatibility Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/compatibility-layers.md) — Executes unmodified binaries on Linux by mapping system calls and environment variables to the host kernel.
- [Binary Translation Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/virtualization-platforms/virtualization-platforms/cross-architecture-virtualization/binary-translation-layers.md) — Enables the use of binaries on different operating systems without needing a virtual machine.
- [Native Binary Runtimes](https://awesome-repositories.com/f/operating-systems-systems-programming/instruction-translation-accelerators/dynamic-binary-translators/native-binary-runtimes.md) — Provides a runtime environment that enables native execution of binaries on Linux systems.
- [Kernel Emulation Environments](https://awesome-repositories.com/f/operating-systems-systems-programming/user-space-containers/kernel-emulation-environments.md) — Provides a virtualized environment that simulates the kernel interface within a standard process.
- [System Call Interceptors](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-calls/system-call-interceptors.md) — Intercepts and maps kernel traps to equivalent system calls to allow native execution of binary code.
- [Desktop Applications](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-applications.md) — Enables running unmodified desktop applications on different operating systems. ([source](https://docs.darlinghq.org/))
- [Binary Loaders](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-primitives/file-system-i-o/binary-loaders.md) — Loads and parses executable files into memory while resolving dependencies against system libraries.

### Development Tools & Productivity

- [Compatibility Environments](https://awesome-repositories.com/f/development-tools-productivity/macos-utilities/compatibility-environments.md) — Runs unmodified desktop applications directly on a Linux system by translating system calls.

### System Administration & Monitoring

- [Cross-Platform Interoperability Layers](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/cross-platform-interoperability-layers.md) — Bridges the gap between operating systems to allow execution of proprietary software on Linux.

### Software Engineering & Architecture

- [Inter-Process Communication Emulators](https://awesome-repositories.com/f/software-engineering-architecture/message-passing-systems/inter-process-communication-emulators.md) — Implements a message-passing mechanism that mimics the inter-process communication architecture required by macOS system services.

### Web Development

- [System Framework Redirectors](https://awesome-repositories.com/f/web-development/dynamic-redirect-managers/export-redirection-trackers/system-framework-redirectors.md) — Intercepts and redirects system framework calls to compatible open-source implementations.
