Darwin (operating system)

Darwin is the core Unix-like operating system of macOS (previously OS X and Mac OS X), iOS, watchOS, tvOS, iPadOS, visionOS, and bridgeOS. It previously existed as an independent open-source operating system, first released by Apple Inc. in 2000. It is composed of code derived from NeXTSTEP, FreeBSD,[3] other BSD operating systems,[6] Mach, and other free software projects' code, as well as code developed by Apple.

DeveloperApple Inc.
Written inC, C++, Objective-C, assembly language
OS familyUnix-like,[1][2] FreeBSD,[3] BSD[4]
Working stateCurrent
Source modelcurrently open source with proprietary components[citation needed], previously open source
Initial releaseNovember 15, 2000; 23 years ago (2000-11-15)
Latest release23.4.0 / March 5, 2024; 3 months ago (2024-03-05)
PlatformsCurrent: x86-64, 64-bit ARM, 32-bit ARM (32-bit ARM support is closed-source)
Historical: PowerPC (32-bit and 64-bit), IA-32
Kernel typeHybrid (XNU)
Influenced byNeXTSTEP, FreeBSD, BSD
user interface
Command-line interface (Unix shell)
LicenseMostly Apple Public Source License (APSL), with closed-source drivers[5]
Official websiteopensource.apple.com

Darwin is mostly POSIX-compatible, but has never, by itself, been certified as compatible with any version of POSIX. Starting with Leopard, macOS has been certified as compatible with the Single UNIX Specification version 3 (SUSv3).[7][8][9]


Simplified history of Unix-like operating systems

The heritage of Darwin began with Unix derivatives supplemented by aspects of NeXT's NeXTSTEP operating system (later, since version 4.0, known as OPENSTEP), first released in 1989. After Apple bought NeXT in 1996, it announced it would base its next operating system on OPENSTEP. This was developed into Rhapsody in 1997, Mac OS X Server 1.0 in 1999, Mac OS X Public Beta in 2000, and Mac OS X 10.0 in 2001.

In 1999, Apple announced it would release the source code for the Mach 2.5 microkernel, BSD Unix 4.4 OS, and the Apache Web server components of Mac OS X Server.[10] At the time, interim CEO Steve Jobs alluded to British naturalist Charles Darwin by announcing "because it's about evolution".[11] In 2000, the core operating system components of Mac OS X were released as open-source software under the Apple Public Source License (APSL) as Darwin; the higher-level components, such as the Cocoa and Carbon frameworks, remained closed-source.

Up to Darwin 8.0.1, released in April 2005, Apple released a binary installer (as an ISO image) after each major Mac OS X release that allowed one to install Darwin on PowerPC and Intel x86 systems as a standalone operating system.[12] Minor updates were released as packages that were installed separately. Darwin is now only available as source code. As of January 2023, Apple no longer mentions Darwin by name on its Open Source website and only publishes an incomplete collection of open-source projects relating to macOS and iOS.


Diagram of macOS architecture



The kernel of Darwin is XNU, a hybrid kernel which uses OSFMK 7.3[13] (Open Software Foundation Mach Kernel) from the OSF, various elements of FreeBSD (including the process model, network stack, and virtual file system),[14] and an object-oriented device driver API called I/O Kit.[15] The hybrid kernel design provides the flexibility of a microkernel[16][failed verificationsee discussion] and the performance of a monolithic kernel.[17]

Hardware and software support


The last bootable full release of Darwin supported 32-bit and 64-bit Apple PowerPC systems and 32-bit Intel PCs.[18]

Darwin currently includes support for the 64-bit x86-64 variant of the Intel x86 processors used in Intel-based Macs and the 64-bit ARM processors used in the iPhone 5S and later, the 6th generation iPod Touch, the 5th generation iPad and later, the iPad Air family, the iPad Mini 2 and later, the iPad Pro family, the fourth generation and later Apple TVs, the HomePod family, and Macs with Apple silicon such as the 2020 Apple M1 Macs, as well as the Raspberry Pi 3B.[19][20] An open-source port of the XNU kernel exists that supports Darwin on Intel and AMD x86 platforms not officially supported by Apple, though it does not appear to have been updated since 2009.[21] An open-source port of the XNU kernel also exists for ARM platforms, though it has not been updated since 2016.[22] Older versions supported some or all of 32-bit PowerPC, 64-bit PowerPC, 32-bit x86, and 32-bit ARM.

It supports the POSIX API by way of its BSD lineage (largely FreeBSD userland), so a large number of programs written for various other UNIX-like systems can be compiled on Darwin with no changes to the source code.

Darwin does not include many of the defining elements of macOS, such as the Carbon and Cocoa APIs or the Quartz Compositor and Aqua user interface, and thus cannot run Mac applications. It does, however, support a number of lesser-known features of macOS, such as mDNSResponder, which is the multicast DNS responder and a core component of the Bonjour networking technology, and launchd, an advanced service management framework.



In July 2003, Apple released Darwin under version 2.0 of the Apple Public Source License (APSL), which the Free Software Foundation (FSF) classifies as a free software license incompatible with the GNU General Public License.[23] Previous versions were released under an earlier version of the APSL license, which did not meet the FSF definition of free software, although it did meet the requirements of the Open Source Definition.[24]

Derived projects


Due to the free software nature of Darwin, there have been projects that aim to modify or enhance the operating system.


GNOME running on GNU-Darwin

OpenDarwin was a community-led operating system based on the Darwin system. It was founded in April 2002 by Apple Inc. and Internet Systems Consortium. Its goal was to increase collaboration between Apple developers and the free software community. Apple benefited from the project because improvements to OpenDarwin would be incorporated into Darwin releases; and the free/open source community benefited from being given complete control over its own operating system, which could then be used in free software distributions such as GNU-Darwin.[25]

On July 25, 2006, the OpenDarwin team announced that the project was shutting down, as they felt OpenDarwin had "become a mere hosting facility for Mac OS X related projects", and that the efforts to create a standalone Darwin operating system had failed.[26] They also state: "Availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community have all contributed to this."[27] The last stable release was version 7.2.1, released on July 16, 2004.[28]



PureDarwin is a project to create a bootable operating system image from Apple's released source code for Darwin.[29] Since the halt of OpenDarwin and the release of bootable images since Darwin 8.x, it has been increasingly difficult to create a full operating system as many components became closed source. In 2015 the project created a preview release based on Darwin 9 with an X11 GUI,[30] followed by a command-line only 17.4 Beta based on Darwin 17.[31]

Other derived projects

Window Maker in XDarwin

See also



  1. ^ "Kernel Architecture Overview". Kernel Programming Guide.
  2. ^ "darwin-xnu/README.md at master". GitHub. Archived from the original on March 31, 2019. Retrieved November 21, 2019.
  3. ^ a b "Apple BSD Overview". Apple. 2002. Retrieved January 1, 2002.
  4. ^ "Apple - Public Source - Darwin FAQ". Archived from the original on November 19, 2004. Retrieved August 9, 2021.
  5. ^ "Binary Drivers required for PureDarwin". Archived from the original on November 18, 2009. Retrieved July 20, 2009.
  6. ^ "1. System Overview". NeXTstep Concepts. NeXT. Archived from the original on November 21, 2021. Retrieved March 26, 2021.
  7. ^ "Mac OS X Leopard - Technology - UNIX". Leopard Technology Overview. Apple Inc. Archived from the original on December 27, 2008. Leopard is now an Open Brand UNIX 03 Registered Product, conforming to the SUSv3 and POSIX 1003.1 specifications for the C API, Shell Utilities, and Threads.
  8. ^ The Open Group (May 18, 2007). "Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers certification". Retrieved February 11, 2013.
  9. ^ "macOS version 10.13 High Sierra on Intel-based Mac computers". The Open Group. Retrieved November 19, 2017.
  10. ^ Walsh, Jeff (March 22, 1999). "Apple goes open source with key OS components". InfoWorld. Vol. 21, no. 12. IDG InfoWorld. p. 40. Retrieved February 17, 2020.
  11. ^ Kahney, Leander. "Apple Opens OS Code". Wired. Condé Nast. Retrieved February 17, 2020.
  12. ^ "Apple ISO download directory". Archived from the original on October 7, 2016.
  13. ^ Jim Magee. WWDC 2000 Session 106 - Mac OS X: Kernel. 14 minutes in. Archived from the original on December 11, 2021.
  14. ^ "Mac Technology Overview: Kernel and Device Drivers Layer". Apple Developer Connection. Retrieved February 11, 2013.
  15. ^ Singh, Amit (January 7, 2004). "XNU: The Kernel". Archived from the original on June 2, 2020. Retrieved February 11, 2013.
  16. ^ Roch, Benjamin. "Monolithic kernel vs. Microkernel". CiteSeerX
  17. ^ "Additional Features". Porting UNIX/Linux Applications to OS X. Apple Inc.
  18. ^ "Darwin 8.0.1 Release Notes". April 29, 2005.
  19. ^ "XNU board config for BCM2837". GitHub. December 16, 2021.
  20. ^ "Raspberry Pi 3 Model B". Quad Core 1.2GHz Broadcom BCM2837
  21. ^ "Voodoo XNU Kernel Source". Requires an Apache SVN client.
  22. ^ "XNU on ARMv7". GitHub. January 25, 2022.
  23. ^ "FSF's Opinion of the Apple Public Source License (APSL) 2.0".
  24. ^ "The Problems with older versions of the Apple Public Source License (APSL)".
  25. ^ "OpenDarwin". OpenDarwin Project. Archived from the original on January 6, 2006.
  26. ^ Schofield, Jack (July 26, 2006). "OpenDarwin Shutting Down". The Guardian. Retrieved March 18, 2023.
  27. ^ OpenDarwin Core Team and Administrators (July 25, 2006). "OpenDarwin Shutting Down". OpenDarwin Project. Archived from the original on August 4, 2006.
  28. ^ "OpenDarwin 7.2.1 Released". August 5, 2004. Archived from the original on August 5, 2004. Retrieved October 7, 2019.
  29. ^ "PureDarwin".
  30. ^ PureDarwin Xmas (2015)
  31. ^ "PureDarwin 17.4 Beta". GitHub. PureDarwin. November 30, 2019. Retrieved January 11, 2020.
  32. ^ "Security Enhanced Darwin". SEDarwin. January 22, 2007. Archived from the original on October 5, 2011.
  33. ^ "What's New In Mac OS X: Mac OS X v10.5". Mac OS X Reference Library. Apple Inc. November 13, 2009. Archived from the original on December 8, 2009.
  34. ^ "L4/Darwin (aka Darbat)". Ertos.nicta.com.au. May 9, 2007. Archived from the original on December 19, 2013.
  35. ^ "Darling: macOS translation layer for Linux". www.darlinghq.org. Retrieved January 11, 2020.
  36. ^ yuriwho (May 5, 2002). "WirelessDriver Home Page". Wirelessdriver.sourceforge.net. Retrieved July 12, 2010.
  37. ^ "iwi2200 Darwin". SourceForge. March 27, 2009. Retrieved June 13, 2010.
  38. ^ "Port BSD tulip driver(s) to Darwin OS | Download Port BSD tulip driver(s) to Darwin OS software for free at". SourceForge.net. Retrieved July 12, 2010.
  39. ^ "RealTek network driver for Mac OS X/Darwin". SourceForge. March 15, 2006. Retrieved June 3, 2010. Project inactive since March 15, 2006.
  40. ^ fansui; et al. (August 1, 2007). "RTL8150LMEthernet". SourceForge. Retrieved June 13, 2010.
  41. ^ "ZyXEL Modem Drivers for OS X/Darwin | Download ZyXEL Modem Drivers for OS X/Darwin software for free at". SourceForge.net. May 14, 2002. Retrieved July 12, 2010.
  42. ^ "Mac OS X PC Card ATA Driver". Pccardata.sourceforge.net. December 20, 2001. Retrieved July 12, 2010.
  43. ^ "Mac OS X Ext2 Filesystem | Download Mac OS X Ext2 Filesystem software for free at". SourceForge.net. October 14, 2002. Retrieved July 12, 2010.
  44. ^ "ext2 filesystem in user space". SourceForge. July 14, 2008. Retrieved June 13, 2010.
  45. ^ "DarwinBSD". darwinbsd.tk. Retrieved April 7, 2023.