# Darwin (Betriebssystem)

Darwin ist ein freies Unix-Betriebssystem des Unternehmens Apple und die Basis für die proprietären Betriebssysteme von Apple, die aus Mac OS X entstanden sind: macOS für Personal Computer der Marke Mac, iOS für die Mobilgeräte iPod und iPhone, iPadOS für das iPad, tvOS für die Apple-TV-Set-Top-Box, watchOS für die Apple Watch und visionOS für die Apple Vision Pro. Es wurde als Darwin 0.1 am 16. März 1999, gemeinsam mit Mac OS X Server 1.0, erstmals verfügbar gemacht.
Im Januar 1997 wurde NeXT von Apple übernommen und damit auch das bis Version 3 noch NeXTStep genannte Betriebssystem OPENSTEP, das gerade in Version 4.0 veröffentlicht worden war. Dieses wurde unter dem Namen Rhapsody u. a. um die Macintosh-Oberfläche im Platinum-Design, wie es auch in Mac OS 8 verwendet wurde, sowie die Virtualisierungsumgebung Blue Box, unter der Mac OS 8.1 virtualisiert ausgeführt werden konnte, erweitert.
NeXTStep, OPENSTEP und Rhapsody nutzen große Teile von BSD-Unix als Grundlage für ein auf mehreren Plattformen und Rechnerarchitekturen lauffähiges Betriebssystem – auch Rhapsody hätte auf mehreren Plattformen laufen sollen, doch stoppte Apple 1998 die Veröffentlichung des fertiggestellten Rhapsody für PowerPC-Macintosh- und x86-PC-Systeme, da eine Multi-Plattform-Strategie als am Markt gescheitert erkannt worden war.
Auf der WWDC 1998 kündigte Apple die Verschmelzung des klassischen Mac OS (damals aktuell in Version 8, bis 1997 noch System 7) mit Rhapsody an, welches den Namen „Mac OS X“ (gesprochen „Mac OS 10“) tragen sollte. Laut Steve Jobs sollte Mac OS X bereits 1999 erscheinen. Da es jedoch 1999 noch nicht fertig war, wurde Rhapsody als reines Macintosh-Server-Betriebssystem unter dem Namen „Mac OS X Server 1.0“ veröffentlicht – sowie dessen quelloffener BSD-Kern als Darwin 0.1.
Auf dieser Basis – Rhapsody und Darwin als dessen quelloffener Teil – wurde mit der Entwicklung von Mac OS X 10.0 begonnen und mit den Veröffentlichungen der Developer Previews und der Public Beta wurden ab 1999 auch einige Versionen von Darwin veröffentlicht, die auf einem Macintosh-Computer mit laufendem Mac OS installierbar waren. Doch nach der fertigen Version von Mac OS X 10.0 „Cheetah“ 2001 verlor Apple das Interesse an einer offiziellen Darwin-Distribution und stellt seither nur mehr den Quelltext für Darwin, der die Basis der jeweiligen Version des proprietären Betriebssystems bildet, zur Verfügung. Die Weiterentwicklung von Darwin ist in dieser Form eng mit der Entwicklung der Apple-Betriebssysteme verwoben.
Da integrale Teile von macOS und iOS nicht quelloffen verfügbar sind, fehlt Darwin sowohl die grafische Benutzerschnittstelle Aqua als auch Quartz, OpenGL, QuickTime sowie die Programmierschnittstellen Cocoa und Carbon, weshalb Programme für Mac OS X/​OS X/​macOS auch nicht lauffähig sind. Daher nutzten die wenigen verfügbaren Darwin-Distributionen freie (FreeBSD-kompatible) Desktop-Umgebungen, und z. B. mittels MacPorts ist eine Vielzahl freier Software auch auf Darwin ohne großen Aufwand nutzbar.

## Architektur, Funktionsbeschreibung und Systemanforderungen

Die Quelltextbasis von Darwin geht auf 4.4BSD-Lite zurück, das nach dem Streit um Rechte am UNIX-Code, der 1994 endete, von den letzten noch bestehenden originalen System‑V-Quelltextzeilen gesäubert worden war. Es steht unter freier Lizenz, der APSL. Zugleich ist Darwin ein Nachfahre des von NeXT entwickelten Betriebssystems NeXTStep, das 1996 in OPENSTEP umbenannt wurde und noch auf 4.3BSD basierte. Apple kaufte NeXT gegen Ende 1996 auf und entwickelte das eingekaufte System daraufhin zu Rhapsody weiter. Dabei wurde das BSD-Grundsystem von 4.3BSD- auf 4.4BSD-Lite-Quelltext und der Kernel von Mach 2.5 auf Mach 3 portiert. Mit der Veröffentlichung der Mac OS X Developer Preview 1 wurde dieser Kernel erstmals unter dem Namen XNU bekannt und als Teil des Darwin-Quelltextes veröffentlicht. Mach 3 wird jedoch nicht vollständig umgesetzt, sondern um Teile des FreeBSD-Kernels zu einem Hybridkernel ergänzt, sodass er die Vorteile eines monolithischen Kernels mit den Vorteilen eines Microkernels verbindet. Dabei wurden Teile der Mach-Umsetzung aus MkLinux, bei der auch Apple beteiligt war, wiederverwendet.
Darwin ist in verschiedenen Versionen auf PowerPC-Prozessoren, x86-Prozessoren und auf ARM-Prozessoren lauffähig. Während alle Programme für Darwin auch auf Mac OS X laufen, funktionieren auf Mac OS X/​OS X/​macOS zugeschnittene Programme nicht unbedingt auf Darwin. Die Mobilbetriebssysteme iOS für das iPhone, iPadOS für das iPad, tvOS für das Apple TV und watchOS für die Apple Watch basieren ebenfalls auf Darwin, wobei der Nutzer jedoch weder Zugriff auf das Dateisystem noch auf die Kommandozeile hat. Diese Beschränkung lässt sich in einigen Fällen durch einen Jailbreak aufheben.

## Lizenzierung und Marketing

Darwin wird unter der Apple Public Source License im Quelltext veröffentlicht, die ab der Version 2.0 von der Free Software Foundation als Lizenz für freie Software anerkannt wird.
Das Maskottchen von Darwin ist Hexley, das Schnabeltier.
Darwin ist der quelloffene Kern der proprietären auf Mac OS X bzw. Rhapsody basierten Betriebssysteme von Apple. Binäre Veröffentlichungen von Darwin gab es von Apple bis Darwin 8.0, auf dem Mac OS X Tiger, Version 10.4 von 2004, basiert.

## Verfügbarkeit

Von Apple selbst wird nur mehr der Quelltext der zur Erstellung eines Darwin-Betriebssystems nötigen Teile herausgegeben. Aufgrund des von Apple genutzten internen Build-Systems, das nicht öffentlich verfügbar ist, sind die Quellen jedoch nicht so einfach zu kompilieren. Bei Projekten wie OpenDarwin und PureDarwin war es daher die erste Aufgabe, den Quelltext auch mit öffentlich verfügbaren Compilern übersetzbar zu machen. Auch sind die Quelltexte spezifisch auf die Apple-Hardware angepasst und zudem nicht sehr gut dokumentiert, was eine Anpassung schwierig macht. Beim XNU-Kernel beispielsweise veröffentlichte Apple stets nur die für die von den aktuellen Macs genutzte Prozessorarchitektur notwendigen Teile für macOS, nicht aber jene für iOS. Da mit Mac OS X Snow Leopard (10.6, 2009) die Unterstützung für PowerPC eingestellt wurde, ist auch keine PowerPC-Unterstützung mehr im XNU-Kernel für Darwin 10.0 und neuer zu finden. Quelltexte von iOS sind bis auf wenige Ausnahmen nicht verfügbar.
Anfangs wurde von Apple ein als „Darwin OS“ bezeichnetes Paket für Mac OS veröffentlicht, womit Darwin auf einem Mac installiert werden konnte. Eigenständige Distributionen wurden teilweise von externen Entwicklern angeboten. Ab 2002 wurde diese Aufgabe, das Darwin-Betriebssystem als Distribution verfügbar zu machen, an das OpenDarwin-Projekt abgegeben. Als dieses eingestellt wurde, gab es unabhängige Bestrebungen, eine auf Darwin basierende Distribution eines vollwertigen Unix-Betriebssystems zu veröffentlichen, die jedoch nur mäßig erfolgreich waren.

### Darwin OS (1999–2002)

Ab 1999 begann Apple die ersten Developer Previews von Mac OS X an eine begrenzte Anzahl von Entwicklern abzugeben. Dessen Kern basierte auf dem von NeXT entwickelten OPENSTEP (bis 1995 NeXTStep bzw. NeXTSTEP) und wurde nach dessen Übernahme Ende 1996 von Apple als Nachfolge für System 7 weiterentwickelt. Nachdem 1998 das Projekt Rhapsody (das als Version 5.x von OPENSTEP angesehen werden kann) eingestellt worden war, veröffentlichte Apple 1999 eine darauf direkt basierende Version als Mac OS X Server 1.0. Der Kern dieses ersten „Mac OS X“ genannten Betriebssystems wurde die Basis von Mac OS X 10.0 (2001, Alpha- und Beta-Versionen 1999–2000), gleichzeitig wurde der quelloffene Teil jedoch von Apple in der Hoffnung veröffentlicht, die Mitarbeit von freien Entwicklern anzuregen. Da sich Apple ab 1997 für das Ende der Multi-Plattform-Strategie entschied (und das für Macs und PCs entwickelte Rhapsody als gescheitert bezeichnete) konzentrierte sich die weitere Entwicklung rein auf die PowerPC-Architektur. Die Freigabe der Quelltexte ermöglichte jedoch eine Rückportierung auf die Intel-x86-Architektur durch freie Entwickler.
Darwin OS 0.3 (1999) hatte die gleichen Anforderungen an die Hardware wie Mac OS X Server 1.0 (1999, Rhapsody 5.3–5.6) und, da es mit Mac OS X weiterentwickelt wurde, bald dessen Anforderungen und Systemkompatibilität. So läuft Darwin 1.2.1 (2000) auf allen Macintosh-Systemen, auf denen auch die Mac OS X Public Beta läuft und auf einigen Intel-x86-PCs. Allerdings wurde die Unterstützung der x86-Version („Darwin x86“) von Apple nicht gerade aktiv verfolgt.
Das von Apple veröffentlichte Paket ließ sich anfangs nur von Mac OS aus installieren, es gab jedoch externe Quellen für eine Art Darwin-Distribution als startfähige Installations-CD. Mit Darwin 1.3.1/x86 und 1.4.1 (später Darwin Version 5) veröffentlichte Apple selbst erstmals startfähige Darwin-ISO-Abbilder im Rahmen der Developer Connection.
Wie schon NeXTStep und OPENSTEP profitierte auch Darwin (und damit auch Mac OS X bzw. OS X bzw. macOS) von einer Vielzahl quelloffener Projekte. Apple ist damit Teil der weltweiten Open-Source-Gemeinschaft, da Weiterentwicklungen oft lizenzbedingt veröffentlicht werden müssen (wie z. B. WebKit).
Darwin 8.0.1 war die letzte von Apple freigegebene Version eines binären Darwin auf Installationsmedien.

## Versionsgeschichte

Die Veröffentlichung von Darwin erfolgt primär nur als Quelltext. Teilweise hat Apple binäre Installations-Abbilder, ISO-Abbilder, für einzelne Versionen von Darwin im Rahmen der Apple Developer Connection (ADC) verfügbar gemacht. Da im Quelltext einige für die jeweilige Hardware benötigte Treiber fehlen, müssen diese als Binärpakete installiert werden.
Welche Version auf einem System läuft, kann mit uname -v ausgelesen werden, wenn Zugang zu einer Kommandozeile vorhanden ist, was bei iOS ohne Jailbreak grundsätzlich nicht der Fall ist. Unter Mac OS X Lion 10.7.2 gibt uname -v beispielsweise Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 aus. Während man im Okt. 2024 bei Mac OS Sequoia auf einem Apple M1 Max Prozessor die folgende Ausgabe erhält: Darwin Kernel Version 24.0.0: Tue Sep 24 23:39:07 PDT 2024; root:xnu-11215.1.12~1/RELEASE_ARM64_T6000.
Version von :
| Darwin | macOS (OS X, Mac OS X) und iOS | ADC-Veröffentlichung $^{1)}$ |
| Ältere Version; nicht mehr unterstützt: 0.1 $^{2)}$ | Mac OS X Developer Preview (kurz „DP“ oder „DP1“; Alpha-Version von Mac OS X 10.0) | – |
| Ältere Version; nicht mehr unterstützt: 0.2 $^{2)}$ | Mac OS X Developer Preview 2 (kurz „DP2“; Alpha-Version von Mac OS X 10.0) | – |
| Ältere Version; nicht mehr unterstützt: 1.0 | Mac OS X Developer Preview 3 (kurz „DP3“; Alpha-Version von Mac OS X 10.0) | 1.0.2: Installationspaket für PowerPC |
| Ältere Version; nicht mehr unterstützt: 1.1 | Mac OS X Developer Preview 4 (kurz „DP4“; Alpha-Version von Mac OS X 10.0) | – |
| Ältere Version; nicht mehr unterstützt: 1.2.1 | Mac OS X Public Beta „Kodiak“ (Beta-Version von Mac OS X 10.0) | 1.2.1: Installationspaket für PowerPC |
| Ältere Version; nicht mehr unterstützt: 1.3.1 | Mac OS X 10.0.x „Cheetah“ | 1.3.1: Installationspaket für PowerPC; ISO für x86 |
| Ältere Version; nicht mehr unterstützt: 1.4.1 | Mac OS X 10.1.0 „Puma“ | 1.4.1: ISO für PowerPC und x86 |
| Ältere Version; nicht mehr unterstützt: 5.1–5.5 | Mac OS X 10.1.1-10.1.5 „Puma“ | 1.4.1: ISO für PowerPC und x86 |
| Ältere Version; nicht mehr unterstützt: 6.x | Mac OS X 10.2.x „Jaguar“ | 6.0.2: ISO für PowerPC und x86 |
| Ältere Version; nicht mehr unterstützt: 7.x | Mac OS X Panther (10.3.x) | 7.0.1: ISO für PowerPC und x86 |
| Ältere Version; nicht mehr unterstützt: 8.x | Mac OS X Tiger (10.4.x) $^{3)}$ | 8.0.1: ISO für PowerPC und x86 |
| Ältere Version; nicht mehr unterstützt: 9.x $^{4)}$ | Mac OS X Leopard (10.5.x); iOS 1.x und 2.x; $^{5)}$ | – |
| Ältere Version; nicht mehr unterstützt: 10.x | Mac OS X Snow Leopard (10.6.x); iOS 3.x und 4.0-4.2.1 $^{5)}$ | – |
| Ältere Version; nicht mehr unterstützt: 11.x | Mac OS X Lion (10.7.x); iOS 4.3-4.3.5 und 5.x | – |
| Ältere Version; nicht mehr unterstützt: 12.x | OS X Mountain Lion (10.8.x) | – |
| Ältere Version; nicht mehr unterstützt: 13.x | OS X Mavericks (10.9.x); iOS 6.x | – |
| Ältere Version; nicht mehr unterstützt: 14.x | OS X Yosemite (10.10.x); iOS 7.x und 8.x; watchOS 1.x | – |
| Ältere Version; nicht mehr unterstützt: 15.x | OS X El Capitan (10.11.x); iOS und tvOS 9.x; watchOS 2.x | – |
| Ältere Version; nicht mehr unterstützt: 16.x | macOS Sierra (10.12.x); iOS und tvOS 10.x; watchOS 3.x; bridgeOS 1.x | – |
| Ältere Version; nicht mehr unterstützt: 17.x | macOS High Sierra (10.13.x); iOS und tvOS 11.x; watchOS 4.x; bridgeOS 2.x | – |
| Ältere Version; nicht mehr unterstützt: 18.x | macOS Mojave (10.14.x); iOS und tvOS 12.x; watchOS 5.x; bridgeOS 3.x | – |
| Ältere Version; nicht mehr unterstützt: 19.x | macOS Catalina (10.15.x); iOS, tvOS und iPadOS 13.x; watchOS 6.x; bridgeOS 4.x | – |
| Ältere Version; nicht mehr unterstützt: 20.x | macOS Big Sur (11.x); iOS, tvOS und iPadOS 14.x; watchOS 7.x; bridgeOS 5.x | – |
| Ältere Version; noch unterstützt: 21.x | macOS Monterey (12.x); iOS, tvOS und iPadOS 15.x; watchOS 8.x; bridgeOS 6.x | – |
| Ältere Version; noch unterstützt: 22.x | macOS Ventura (13.x); iOS, tvOS und iPadOS 16.x; watchOS 9.x; bridgeOS 7.x | – |
| Ältere Version; noch unterstützt: 23.x | macOS Sonoma (14.x); iOS; tvOS und iPadOS 17.x; watchOS 10.x; bridgeOS 8.x | – |
| Aktuelle Version: 24.x | macOS Sequoia (15.x), iOS, tvOS und iPadOS 18.x, watchOS 11.x; bridgeOS 9.x | – |
| Legende:Ältere Version; nicht mehr unterstütztÄltere Version; noch unterstütztAktuelle VersionAktuelle VorabversionZukünftige Version |||

## Darwin-Distributionen und -Portierungen
### Darwin on ARM

Mit dem Darwin on ARM Project gibt es seit ca. 2013 ein auf Darwin 12.x (OS X Mountain Lion, 10.8, 2012) basierendes Projekt eines einzelnen Entwicklers, das den Darwin-Kernel XNU – und alles andere, was dazu benötigt wird – auf ARM-Geräten lauffähig machen soll (AArch64, ARMv7, ARMv6-A). Die letzte Bearbeitung war jedoch im Oktober 2017.

### OpenDarwin

OpenDarwin (2002–2006) wurde im April 2002 von der ISC und Apple gegründet. Es stand jedermann frei, zum Projekt beizutragen. Das Ziel war eine eigenständige Darwin-Distribution, als Plattform sollten sowohl PowerPC- als auch x86-Architekturen unterstützt werden. Damit war OpenDarwin eine Verkörperung des Darwin-Betriebssystems, die es auch externen Entwicklern möglich machte, am Quelltext direkt beizutragen, ohne Apple-Mitarbeiter zu sein oder sich bei Apple registrieren zu müssen. Wie schon bei Darwin OS (ab 1999) war es die einzige Möglichkeit für externe Entwickler, an den Kernkomponenten wie dem Systemkernel mitarbeiten zu können, da der CVS-Tree in einigen Teilen immer auf dem Live-Darwin-CVS beruhte. Andere Teile wurden von Apple hingegen nur periodisch aktualisiert, was Beiträge außerhalb von Apple zusätzlich erschwerte. OpenDarwin wurde jeweils aufgrund des aktuellen CVS-Tree verfügbar gemacht.
Statt der erhofften Offenheit einer eigenständigen Distribution war es jedoch zunehmend schwieriger, die von Apple zur Verfügung gestellten Quellen ohne einen Computer von Apple, auf dem Mac OS X lief, zu kompilieren. Apple nutzte ein nur intern verfügbares Build-System und passte die Quellen nur an die eigene Hardware an, größere Beiträge von unabhängigen Entwicklern wurden hingegen in den meisten Fällen nicht in Darwin integriert. Im Gegenteil wurde von Apple bereits existierende Unterstützung für ältere Hardware entfernt, was die freien OpenDarwin-Entwickler irritierte, da ein solches Vorgehen als unüblich in der Open-Source-Welt gilt. Mit dem Erfolg von Mac OS X begann Apple in zunehmendem Maße damit, neue Versionen der Quelltexte sowie neue Treiber vom proprietären Mac OS X abhängig zu machen, was eine eigenständige Darwin-Distribution ohne zusätzlichen Aufwand wie Eigenentwicklungen oder Rückportierungen unmöglich machte. Schließlich wurden die aktivsten OpenDarwin-Entwickler von Apple übernommen. Da diese eine Vertraulichkeitsvereinbarung (NDA: non-disclosure agreement) unterzeichnen mussten, konnten sie nichts mehr für das freie Projekt beitragen. OpenDarwin konnte schließlich mangels aktiver Entwickler nicht mehr weiter gepflegt werden.
Am 26. Juli 2006 wurde das Projekt „OpenDarwin“ eingestellt. Apple war offenbar nicht daran interessiert, OpenDarwin nach den Grundsätzen einer Open-Source-Community zu unterstützen, sondern nutzte Darwin lediglich als Basis für das proprietäre Mac OS X. In diesem Licht erscheinen die quelloffenen Betriebssystembestandteile nur noch als Mittel, Mac OS X erfolgreicher zu vermarkten. Auf der offiziellen Webpräsenz, die bis zum 28. Juni 2007 erreichbar war, gaben die Administratoren zuletzt als Grund für das OpenDarwin-Ende an, dass die gesetzten Ziele des Projektes in vier Jahren nicht erreicht wurden.

### PureDarwin

Mit PureDarwin gibt es seit Ende 2007 ein Nachfolgeprojekt, nachdem OpenDarwin eingestellt worden war. Das Ziel des Projekts ist es, ein startfähiges Darwin-ISO herzustellen. Die Entwicklung verläuft relativ unstetig, so gab es zwischen 2012 und 2015 keine wesentlichen Bemühungen, und die Version blieb bei PureDarwin 1.3 Beta, auf dem Stand von Darwin 9.8 (analog Mac OS X Leopard 10.5.8 von 2007–2009), stehen. Die aktuelle Version ist „PureDarwin 17.4 Beta OS“ von 2017, die auf Darwin 17.4 basiert (analog macOS High Sierra 10.13.3).

### XQuartz

XQuartz, vormals X11 (auch X11.app), ist die unabhängige Weiterentwicklung von Apples Umsetzung des X Window System (X11) für macOS (Darwin).

### XDarwin

XDarwin war eine Portierung des X Window Systems für frühe Versionen von Darwin bzw. Mac OS X.

### GNUstep

GNUstep ist eine freie, plattformübergreifende und objektorientierte Programmierschnittstelle, die die OpenStep-Spezifikation von NeXT (seit 1997 Apple) vollständig implementiert und zusätzlich viele der Erweiterungen von Cocoa (aus macOS) eingebaut hat. Sie ist in Objective-C geschrieben.

### Window Maker

Window Maker ist der bevorzugte Fenstermanager für GNUstep. Vom Design ist er an OPENSTEP angelehnt und als Verbesserung von AfterStep gedacht.

### Étoilé

Étoilé ist eine seit 2016 nicht mehr weiter entwickelte freie GNUstep-basierte Desktop-Umgebung.

### WebKit

WebKit ist eine freie Browser-Engine, mit deren Hilfe Webseiten in Webbrowsern dargestellt werden können.

### MacPorts

MacPorts ist eine unter der BSD-Lizenz veröffentlichte Paketverwaltung, welche die Installation anderer freier und quelloffener Software auf macOS bzw. Darwin mit Hilfe von Port-Skripten erleichtern soll.