Darwin (besturingssysteem)
Darwin | |
---|---|
ontwikkelaar | appel |
Licentie(s) | APSL 2.0 |
Eerste publicatie | 15 november 2000 |
Huidige versie | 20.1.0 van 12 november 2020 (273 dagen geleden) |
Kernel | XNU , hybride kernel ( Mach en FreeBSD ) |
voorgeslacht | 4.3BSD ↳ NeXTSTEP → OPENSTEP ↳ Rhapsody ↳ Darwin 4.4BSD ↳ Darwin GratisBSD ↳ Darwin |
Architectuur(s) | Stroom: x86-64 , ARM64 Historisch gezien: PPC , x86 , ARM32 |
compatibiliteit | POSIX , FreeBSD |
anderen | Basissysteem van macOS , iOS , enz. |
opensource.apple.com |
Darwin is een gratis Unix- besturingssysteem van Apple en de basis voor Apple's eigen besturingssystemen, die voortkwamen uit Mac OS X: macOS voor Mac personal computers, iOS voor iPod en iPhone mobiele apparaten, iPadOS voor iPad , tvOS voor het Apple TV- toestel. topbox en watchOS voor de Apple Watch . Het werd voor het eerst beschikbaar gesteld als Darwin 0.1 op 16 maart 1999 [1] samen met Mac OS X Server 1.0 . [2] [3]
In januari 1997 werd NeXT door Apple overgenomen en daarmee het besturingssysteem OPENSTEP , dat tot versie 3 nog NeXTStep heette en dat net in versie 4.0 was uitgebracht. Dit werd onder de naam Rhapsody uitgebreid met het Macintosh-oppervlak in platina-ontwerp, zoals het ook werd gebruikt in Mac OS 8 , evenals de Blue Box- virtualisatieomgeving, waaronder Mac OS 8.1 gevirtualiseerd kon worden uitgevoerd. NeXTStep, OPENSTEP en Rhapsody gebruiken grote delen van BSD- Unix als basis voor een besturingssysteem dat op meerdere platforms en computerarchitecturen kan draaien - Rhapsody had ook op meerdere platforms moeten draaien, maar in 1998 stopte Apple met de publicatie van de voltooide Rhapsody voor PowerPC Macintosh en x86 pc-systemen, als een multi-platformstrategie, werden op de markt als mislukt beschouwd. Op WWDC 1998 kondigde Apple de samensmelting aan van Mac OS (destijds in versie 8, tot 1997 nog System 7 ) met Rhapsody, dat "Mac OS X" zou gaan heten. Volgens Steve Jobs zou Mac OS X in 1999 uitgebracht moeten worden. Omdat het echter nog niet klaar was in 1999, werd Rhapsody gepubliceerd als een puur Macintosh-serverbesturingssysteem onder de naam "Mac OS X Server 1.0" - en zijn open source BSD-kern als Darwin 0.1.
Op deze basis - Rhapsody en Darwin als open source onderdeel - begon de ontwikkeling van Mac OS X 10.0 en met de publicatie van de Developer Previews en de Public Beta , werden vanaf 1999 ook enkele versies van Darwin gepubliceerd die draaiden op een Macintosh-computer Er kan een draaiend Mac OS zijn geïnstalleerd. Na de voltooide versie van Mac OS X 10.0 "Cheetah" in 2001 verloor Apple echter zijn interesse in een officiële Darwin- distributie en heeft sindsdien alleen de broncode voor Darwin verstrekt, die de basis vormt van de respectieve versie van het eigen besturingssysteem . De verdere ontwikkeling van Darwin in deze vorm is nauw verweven met de ontwikkeling van de besturingssystemen van Apple.
Omdat integrale delen van macOS en iOS niet openlijk beschikbaar zijn, mist Darwin de grafische gebruikersinterface Aqua evenals Quartz , OpenGL , QuickTime en de programmeerinterfaces Cocoa en Carbon , waardoor programma's voor Mac OS X / OS X / macOS niet kunnen worden uitgevoerd ofwel. Daarom gebruikten de weinige beschikbare Darwin-distributies gratis ( FreeBSD- compatibele) desktopomgevingen . B. door middel van MacPorts kan ook zonder veel moeite een groot aantal gratis software op Darwin gebruikt worden. [4]
Architectuur, functionele beschrijving en systeemvereisten
De broncodebasis van Darwin gaat terug naar 4.4BSD-Lite , dat werd ontdaan van de laatst overgebleven originele System V -bronregels na het geschil over de rechten op de UNIX- code, dat eindigde in 1994. Het valt onder een gratis licentie, de APSL . Tegelijkertijd is Darwin een afstammeling van het NeXTStep-besturingssysteem ontwikkeld door NeXT , dat in 1996 werd omgedoopt tot OPENSTEP en nog steeds gebaseerd was op 4.3BSD. Apple kocht NeXT eind 1996 en ontwikkelde het gekochte systeem vervolgens verder tot Rhapsody . Het BSD-basissysteem is overgezet van 4.3BSD naar 4.4BSD Lite-broncode en de kernel van Mach 2.5 naar Mach 3. Met de release van de Mac OS X Developer Preview 1 was deze kernel voor het eerst bekend onder de naam XNU en werd gepubliceerd als onderdeel van de Darwin-broncode. Mach 3 is echter niet volledig geïmplementeerd, maar wordt aangevuld met delen van de FreeBSD- kernel om een hybride kernel te vormen, zodat het de voordelen van een monolithische kernel combineert met de voordelen van een microkernel . Delen van de Mach-implementatie van MkLinux , waar ook Apple bij betrokken was, werden hergebruikt.
Darwin kan in verschillende versies draaien op PowerPC- processors, x86-processors en op ARM- processors. Hoewel alle programma's voor Darwin op Mac OS X zullen werken, werken programma's die op maat zijn gemaakt voor Mac OS X / OS X / macOS niet noodzakelijkerwijs op Darwin. De mobiele besturingssystemen iOS voor de iPhone , iPadOS voor de iPad , tvOS voor de Apple TV en watchOS voor de Apple Watch zijn eveneens gebaseerd op Darwin, maar de gebruiker heeft noch toegang tot het bestandssysteem noch tot de opdrachtregel . In sommige gevallen kan deze beperking worden opgeheven door te jailbreaken .
Licenties en marketing
Darwin wordt in de broncode gepubliceerd onder de Apple Public Source License , die vanaf versie 2.0 door de Free Software Foundation wordt erkend als een licentie voor vrije software . [5] De mascotte van Darwin is Hexley, het vogelbekdier . [6] [7]
Darwin is de open source kern van Apple's eigen op Mac OS X en Rhapsody gebaseerde besturingssystemen. De binaire versies van Darwin liepen uiteen van Apple tot en met Darwin 8.0, waarop Mac OS X Tiger , versie 10.4 uit 2004, is gebaseerd.
Beschikbaarheid
Apple publiceert zelf alleen de broncode voor de onderdelen die nodig zijn om een Darwin-besturingssysteem te maken. [8] [9] Door het interne bouwsysteem van Apple, dat niet publiekelijk beschikbaar is, zijn de bronnen niet zo eenvoudig te compileren. [10] In projecten als OpenDarwin en PureDarwin was de eerste taak om de brontekst vertaalbaar te maken met openbaar beschikbare compilers . De bronteksten zijn ook specifiek aangepast aan de Apple hardware en zijn ook niet erg goed gedocumenteerd, wat aanpassing moeilijk maakt. Met de XNU-kernel heeft Apple bijvoorbeeld alleen de onderdelen gepubliceerd die nodig zijn voor de processorarchitectuur die wordt gebruikt door de huidige Macs voor macOS, maar niet die voor iOS. Sinds de ondersteuning voor PowerPC werd stopgezet met Mac OS X Snow Leopard (10.6, 2009), is PowerPC-ondersteuning niet langer te vinden in de XNU-kernel voor Darwin 10.0 en nieuwer. Op enkele uitzonderingen na zijn bronteksten van iOS niet beschikbaar. [11]
Aanvankelijk bracht Apple een pakket uit met de naam "Darwin OS" voor Mac OS , waarmee Darwin op een Mac kon worden geïnstalleerd. Onafhankelijke distributies werden gedeeltelijk aangeboden door externe ontwikkelaars. Vanaf 2002 werd deze taak om het besturingssysteem Darwin als distributie beschikbaar te stellen overgedragen aan het OpenDarwin-project. Toen dit werd stopgezet, waren er onafhankelijke pogingen om een op Darwin gebaseerde distributie van een volwaardig Unix-besturingssysteem uit te brengen, maar deze waren slechts matig succesvol.
Darwin OS (1999-2002)
Vanaf 1999 begon Apple met het leveren van de eerste Mac OS X- ontwikkelaarsvoorbeelden aan een beperkt aantal ontwikkelaars. De kern was gebaseerd op de door NeXT ontwikkelde OPENSTEP (NeXTStep of NeXTSTEP tot 1995) en werd na de overname eind 1996 door Apple verder ontwikkeld als opvolger van System 7 . Nadat het Rhapsody- project (dat kan worden gezien als versie 5.x van OPENSTEP) in 1998 was stopgezet, bracht Apple in 1999 een daarop gebaseerde versie uit als Mac OS X Server 1.0 . De kern van dit eerste besturingssysteem genaamd " Mac OS X " werd de basis van Mac OS X 10.0 (2001, alfa- en bètaversies 1999-2000) Ontwikkelaars aanmoedigen. Sinds Apple in 1997 besloot de multi-platformstrategie te beëindigen (en de voor Macs en pc's ontwikkelde Rhapsody een mislukking noemde), concentreerde de verdere ontwikkeling zich puur op de PowerPC-architectuur. De release van de broncode maakte echter backporting naar de Intel x86-architectuur door gratis ontwikkelaars mogelijk. [12]
Darwin OS 0.3 (1999) had dezelfde hardwarevereisten als Mac OS X Server 1.0 (1999, Rhapsody 5.3-5.6) [13] en, aangezien het verder werd ontwikkeld met Mac OS X, al snel de vereisten en systeemcompatibiliteit. Darwin 1.2.1 (2000) draait op alle Macintosh-systemen waarop de Mac OS X Public Beta ook draait [14] en op sommige Intel x86-pc's. Ondersteuning voor de x86-versie ("Darwin x86") werd echter niet actief nagestreefd door Apple. [15]
Het door Apple gepubliceerde pakket kon aanvankelijk alleen vanaf Mac OS worden geïnstalleerd, maar er waren externe bronnen voor een soort Darwin-distributie als opstartbare installatie-cd. [14] Met Darwin 1.3.1 / x86 en 1.4.1 (later Darwin versie 5) publiceerde Apple zelf voor het eerst opstartbare Darwin ISO-images als onderdeel van de Developer Connection .
Net als NeXTStep en OPENSTEP profiteerde ook Darwin (en dus ook Mac OS X of OS X of macOS) van een groot aantal open source-projecten. [16] Apple maakt dus deel uit van de wereldwijde open source- gemeenschap, aangezien verdere ontwikkelingen vaak moeten worden gepubliceerd vanwege licentievereisten (zoals WebKit ).
Darwin 8.0.1 was de laatste door Apple uitgebrachte versie van een binaire Darwin op installatiemedia. [17]
geschiedenis
De publicatie van Darwin is in de eerste plaats alleen als brontekst . In sommige gevallen heeft Apple binaire installatie-images, ISO-images , beschikbaar gesteld voor individuele versies van Darwin als onderdeel van de Apple Developer Connection (ADC). Omdat de broncode die nodig is voor bepaalde hardwarestuurprogramma 's ontbreekt, moeten ze als binaire pakketten worden geïnstalleerd. [18]
Welke versie er op een systeem draait is af te lezen met uname -v
als er toegang is tot een commandoregel , wat bij iOS zonder jailbreak over het algemeen niet het geval is. Op Mac OS X Lion 10.7.2 geeft uname -v
Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64
van.
Versie van | ||
---|---|---|
Darwin | macOS (OS X, Mac OS X) en iOS | ADC- publicatie 1) |
2) | 0.1Mac OS X Developer Preview ("DP" of "DP1" in het kort; Alpha-versie van Mac OS X 10.0) | - |
2) | 0.2Mac OS X Developer Preview 2 ("DP2" in het kort; alfaversie van Mac OS X 10.0) | - |
1.0 | Mac OS X Developer Preview 3 ("DP3" in het kort; Alpha-versie van Mac OS X 10.0) | 1.0.2: Installatiepakket voor PowerPC [19] |
1.1 | Mac OS X Developer Preview 4 ("DP4" in het kort; alfaversie van Mac OS X 10.0) | - |
1.2.1 | Mac OS X openbare bèta "Kodiak" ( bètaversie van Mac OS X 10.0) | 1.2.1: Installatiepakket voor PowerPC [20] |
1.3.1 | Mac OS X 10.0.x "Cheetah" | 1.3.1: Installatiepakket voor PowerPC; ISO voor x86 [21] |
1.4.1 | Mac OS X 10.1.0 "Puma" | 1.4.1: ISO voor PowerPC en x86 [17] |
5.1-5.5 | Mac OS X 10.1.1-10.1.5 "Puma" | |
6.x | Mac OS X 10.2.x "Jaguar" | 6.0.2: ISO voor PowerPC en x86 [17] |
7.x | Mac OS X Panter (10.3.x) | 7.0.1: ISO voor PowerPC en x86 [17] |
8.x | Mac OS X Tijger (10.4.x) 3) | 8.0.1: ISO voor PowerPC en x86 [17] |
4) | 9.xMac OS X Leopard (10.5.x); iOS 1.x en 2.x; 5) | - |
10.x | Mac OS X Snow Leopard (10.6.x); iOS 3.x en 4.0-4.2.1 5) | - |
11.x | Mac OS X Lion (10.7.x); iOS 4.3-4.3.5 en 5.x | - |
12.x | OS X Mountain Lion (10.8.x) | - |
13.x | OS X Mavericks (10.9.x); iOS 6.x | - |
14.x | OS X Yosemite (10.10.x); iOS 7.x en 8.x | - |
15.x | OS X El Capitan (10.11.x); iOS en tvOS 9.x | - |
16.x | macOS Sierra (10.12.x); iOS en tvOS 10.x | - |
17.x | macOS High Sierra (10.13.x); iOS en tvOS 11.x | - |
18.x | macOS Mojave (10.14.x); iOS en tvOS 12.x | - |
19.x | macOS Catalina (10.15.x); iOS , tvOS en iPadOS 13.x | - |
20.x | macOS Big Sur (11.x); iOS , tvOS en iPadOS 14.x | - |
Legende: Oudere versie; Niet langer gesteund Oudere versie; nog steeds ondersteund Huidige versie |
Darwin-distributies en poorten
Darwin op ARM
Met het Darwin on ARM-project is er sinds 2013 een op Darwin 12.x ( OS X Mountain Lion , 10.8, 2012) gebaseerd project door een enkele ontwikkelaar dat de Darwin-kernel XNU gebruikt - en al het andere dat daarvoor nodig is - moet het mogelijk maken om op ARM- apparaten (AArch64, ARMv7, ARMv6-A) te draaien. [24] De laatste operatie was echter in oktober 2017
OpenDarwin
OpenDarwin (2002-2006) werd in april 2002 opgericht door ISC en Apple. Iedereen was vrij om bij te dragen aan het project. Het doel was een onafhankelijke Darwin-distributie, het platform zou zowel PowerPC- als x86- architecturen moeten ondersteunen. Hiermee werd OpenDarwin een belichaming van het Darwin-besturingssysteem, dat het ook mogelijk maakte voor externe ontwikkelaars om direct bij te dragen aan de broncode zonder Apple-medewerker te zijn of zich bij Apple te hoeven registreren. Net als bij Darwin OS (vanaf 1999), was het de enige mogelijkheid voor externe ontwikkelaars om aan de kerncomponenten zoals de systeemkernel te kunnen werken, aangezien sommige delen van de CVS-boom altijd gebaseerd waren op de live Darwin CVS. Andere onderdelen werden slechts periodiek door Apple geüpdatet, wat bijdragen buiten Apple nog moeilijker maakte. [25] [10] OpenDarwin is beschikbaar gesteld op basis van de huidige CVS- boom.
In plaats van de verhoopte openheid van een onafhankelijke distributie , werd het echter steeds moeilijker om de door Apple beschikbaar gestelde bronnen te compileren zonder een Apple-computer met Mac OS X. Apple gebruikte een build-systeem dat alleen intern beschikbaar was en paste alleen de bronnen aan zijn eigen hardware aan, terwijl grotere bijdragen van onafhankelijke ontwikkelaars in de meeste gevallen niet in Darwin waren geïntegreerd. Integendeel, Apple heeft reeds bestaande ondersteuning voor oudere hardware verwijderd, wat de gratis OpenDarwin-ontwikkelaars irriteerde, aangezien een dergelijke procedure als ongebruikelijk wordt beschouwd in de open source-wereld. Met het succes van Mac OS X begon Apple nieuwe versies van de broncode en nieuwe stuurprogramma's steeds meer afhankelijk te maken van het eigen Mac OS X, wat een onafhankelijke Darwin-distributie onmogelijk maakte zonder extra inspanningen zoals interne ontwikkelingen of backports. Uiteindelijk werden de meest actieve OpenDarwin-ontwikkelaars overgenomen door Apple. Aangezien dit een non-disclosure agreement (NDA: n on- d isclosure een greement) teken hadden, konden ze niet langer bijdragen aan het vrije project. Ten slotte kon OpenDarwin niet langer worden onderhouden vanwege een gebrek aan actieve ontwikkelaars. [15]
Op 26 juli 2006 werd het project "OpenDarwin" stopgezet. [26] Apple was blijkbaar niet geïnteresseerd in het ondersteunen van OpenDarwin volgens de principes van een open source gemeenschap , maar gebruikte Darwin alleen als basis voor het propriëtaire Mac OS X. In dit licht lijken de open source besturingssysteemcomponenten slechts een middel , Mac OS X met meer succes op de markt. [15] Op de officiële website, die tot 28 juni 2007 beschikbaar was, verklaarden de beheerders voor het laatst dat de reden voor het einde van OpenDarwin was dat de doelstellingen van het project in vier jaar niet waren bereikt. [25]
PureDarwin
Met PureDarwin is er sinds eind 2007 een vervolgproject na het stopzetten van OpenDarwin. Het doel van het project is om een opstartbare Darwin ISO te produceren. De ontwikkeling is relatief onstabiel, dus er waren geen significante inspanningen tussen 2012 en 2015, en de versie bleef op PureDarwin 1.3 Beta, op het niveau van Darwin 9.8 (analoog aan Mac OS X Leopard 10.5.8 van 2007-2009). [27] De huidige versie is "PureDarwin 17.4 Beta OS" [28] uit 2017, die is gebaseerd op Darwin 17.4 (analoog aan macOS High Sierra 10.13.3). [29]
Zie ook
web links
- GNU Darwin Vrije Software Collectie voor Darwin
- PureDarwin , een live- distributie gebaseerd op de Darwin-broncode gepubliceerd door Apple
Individueel bewijs
- ↑ Interne onderdelen van Mac OS X: wat is Mac OS X? , Amit Singh (Engels); geraadpleegd op 17 augustus 2016.
- ↑ kernelthread.com: Op weg naar Mac OS X , Amit Singh (Engels); Ontvangen 18 augustus 2016.
- ↑ Mac OS X (Engels); Ontvangen 18 augustus 2016.
- ↑ PureDarwin ( Memento 17 augustus 2016 in het internetarchief ) Versie 9: “ MacPorts draait op PureDarwin 9, wat ons mogelijk duizenden open source-softwaretitels oplevert. "; Ontvangen 18 augustus 2016.
- ↑ Apple werkt zijn Public Source-licentie bij. In: heise online . 7 augustus 2003, geraadpleegd op 30 juni 2008 .
- ↑ Over Hexley. Gearchiveerd van het origineel op 13 december 2006 ; geraadpleegd op 18 december 2015 .
- ↑ http://www.hexley.com/
- ↑ Apple Source Browser : tarballs
- ↑ Apple- bronbrowser
- ^ Een b Rob Braun: Een korte geschiedenis van Apple's Open Source inspanningen. Gearchiveerd van het origineel op 13 oktober 2006 ; geraadpleegd op 18 december 2015 .
- ↑ De iPhone Wiki - Kernel : “ Het is vermeldenswaard dat Apple XNU niet vermeldt als een open source-component van iOS. Dit is te zien door opensource.apple.com te bekijken en een iOS-versie te selecteren. Voor zover bekend is, is geen van de versies van XNU beschikbaar in de bronversie. "En" Het lijkt er niet op dat Apple ervan uitgaat dat wat je op de OS X- pagina's ziet ook op iOS staat, aangezien JavaScriptCore, WebCore, onder andere, worden vermeld op zowel OS X (10.8) als iOS (6.0), zij het in verschillende versies. ”
- ↑ Darwin voor Intel. Darwinfo.org, 1999, gearchiveerd van het origineel op 10 november 2000 ; geopend op 21 februari 2016 .
- ^ Darwin OS-installatie. Darwin OS 0.3. Apple Computer, Inc. , 1999, gearchiveerd van het origineel op 7 oktober 1999 ; geopend op 21 februari 2016 .
- ↑ a b Darwin - Installatie vrijgeven. Darwin 1.2.1. Apple Computer, Inc. , 2000, gearchiveerd van het origineel op 6 februari 2001 ; geopend op 21 februari 2016 .
- ↑ a b c Waarom Darwin faalde. Rob Braun, 23 februari 2006, gearchiveerd van het origineel op 1 juni 2015 ; Ontvangen 21 februari 2016 (Engels, Rob Brown was de initiatiefnemer van Darwinfo.org en vanaf 2002 mede-oprichter van OpenDarwin.org.).
- ^ Darwin-bijdragers. Apple Computer, Inc. , 2001, gearchiveerd van het origineel op 2 februari 2002 ; geopend op 21 februari 2016 .
- ↑ a b c d e Darwin Releases. (Niet langer online beschikbaar.) In: Developer Connection. Apple, 2000, gearchiveerd van het origineel op 6 september 2008 .
- ↑ Darwin 1.4.1 Release-opmerkingen. : “De inhoud van deze cd kan niet volledig worden gereproduceerd vanaf de bron in anoncvs.opensource.apple.com. Het bevat binaire versies van bepaalde niet-open source-stuurprogramma's."
- ↑ Darwin - Installatie vrijgeven. (Niet meer online beschikbaar.) In: ADC. Apple, 2001, gearchiveerd van het origineel op 23 oktober 2002 .
- ↑ Darwin - Installatie vrijgeven. (Niet meer online beschikbaar.) In: ADC. Apple, 2001, gearchiveerd van het origineel op 3 oktober 2002 .
- ↑ Darwin - Release Installation. (Nicht mehr online verfügbar.) In: Open Source. Apple, 2000, archiviert vom Original am 5. August 2001 (englisch).
- ↑ Source Browser. (Nicht mehr online verfügbar.) Apple, archiviert vom Original am 3. September 2009 (englisch).
- ↑ GitHub: oisc-logger/mac_os_agents.txt listet diverse Darwin-Versionen mit den zugehörigen OS-X-Versionen auf; abgerufen am 24. Dezember 2015
- ↑ GitHub : Darwin on ARM Project , abgerufen am 18. Dezember 2015
- ↑ a b OpenDarwin Shutting Down. 25. Juli 2006, archiviert vom Original am 31. Dezember 2006 ; abgerufen am 18. Dezember 2015 (englisch).
- ↑ OpenDarwin schließt die Pforten. In: heise online . 26. Juli 2006, abgerufen am 6. April 2013 .
- ↑ New PureDarwin 1.3 beta release ( Memento vom 18. Dezember 2015 im Internet Archive ) (englisch), 15. Dezember 2012, abgerufen am 18. Dezember 2015
- ↑ https://github.com/PureDarwin/PD-17.4-Beta
- ↑ https://www.puredarwin.org/