Darwin (sistema operatiu)
Darwin sistema operatiu | |
---|---|
OpenDarwin amb l' entorn d' escriptori GNOME | |
Desenvolupador | poma |
Família | BSD |
Llançament inicial | 0,1 (16 de març de 1999 ) |
corrent d'alliberament | 19.0.0 (17 d'octubre de 2019 ) |
Tipus de nucli | XNU |
Plataformes compatibles | x86 , PowerPC , ARM |
Tipus de llicència | Programari lliure |
Llicència | APSL |
Etapa de desenvolupament | en producció |
Predecessor | Següent pas |
Lloc web | lists.apple.com/mailman/listinfo/darwin-kernel |
En informàtica, Darwin és un sistema operatiu gratuït que utilitza el nucli XNU . Juntament amb altres components, com ara els frameworks bàsics, els frameworks d’aplicacions ( Cocoa , Carbon i Java ) i la interfície gràfica propietària Aqua , forma el sistema operatiu macOS . Darwin també s’implementa al sistema operatiu mòbil d’Apple, iOS . Tanmateix, la versió que s’utilitza per a iOS difereix de la versió que s’utilitza per a OS X. A més, la versió per a mòbils és de font tancada .
Història
NeXT Computer , una empresa fundada el 1985 per Steve Jobs amb l'objectiu de crear una nova revolució en el camp de la informàtica , va examinar les noves tecnologies desenvolupades per universitats i empreses informàtiques per tal de crear el millor ordinador personal que mai no va existir. [ sense font ] . Es van identificar diversos projectes, inclosos:
- El sistema BSD ( Berkeley Software Distribution ), la variant original d’ Unix desenvolupada a la Universitat de Califòrnia, Berkeley .
- El nucli Mach , un nucli desenvolupat per la Universitat Carnegie Mellon .
A partir d’aquestes bases es va desenvolupar el sistema NeXTSTEP que, un cop evolucionat a OpenSTEP , va ser utilitzat per Apple com a base per a macOS després de l’adquisició de NeXT pel propi Apple. La primera versió es va presentar el 2000 . El nom que pren la seva referència de l’erudit evolucionista homònim , va ser escollit per representar la característica d’aquest sistema com a evolució de BSD / Unix. Darwin és el cor del sistema operatiu macOS , així com la seva base BSD, que el converteix en Unix amb el nucli XNU implementat . XNU és un nucli híbrid, basat en una unió de l' Mach microkernel i el codi de FreeBSD nucli monolític. (XNU és un acrònim recursiu de XNU's Not Unix = "XNU Is not Unix")
Darwin és un sistema operatiu gratuït complet ja que es distribueix al públic sota la llicència Apple Public Source License per fer-lo de codi obert . Apple encara desenvolupa Darwin fent que les versions d’instal·lacions de Darwin estiguin disponibles a la pàgina de llançament, primer en col·laboració amb els desenvolupadors que s’adheriren al projecte OpenDarwin, abandonat des de fa temps, ara de manera solitària, mentre que les fonts estan disponibles a la seva pàgina d’ origen. Inicialment va ser desenvolupat només per Apple, amb la total compatibilitat POSIX UNIX , amb el nom de Rhapsody (mai distribuït fora dels entorns Apple) i, posteriorment, a partir d’aquí es va crear una forquilla real el 2000 després de la seva presentació, de la qual van néixer quatre distribucions conegudes fins ara, de les quals dues no estan relacionades oficialment amb Apple i per aquest motiu parlem de Darwin OS com una família de sistemes operatius derivats de FreeBSD .
Descripció
Model del nucli

Com molts nuclis moderns, Darwin segueix un enfocament híbrid, que conté trets tant d'un nucli de microcerns com d'un nucli monolític . De fet, segueix un enfocament de microcernel pel que fa a la gestió de serveis, però integra grans porcions del sistema operatiu en el mateix microcernel per reduir el temps d'inactivitat a causa del canvi de context. Aquest enfocament mixt fa que el sistema operatiu sigui més sensible i més ràpid, però al mateix temps el fa més sensible als errors de programació del nucli.
La major part del codi s’executa fora del nucli per tal de facilitar el desenvolupament de manera ràpida i senzilla. Els components individuals s’escriuen i es proven de forma independent, de fet és més fàcil provar una petita porció de codi que analitzar el funcionament d’un mòdul immers en centenars de milers de línies de codi pertanyents a altres mòduls. A més, aquest enfocament fa que el sistema operatiu sigui menys sensible a les fallades dels controladors individuals.
El nucli es diu XNU i es pot considerar una derivació del nucli Mach 3.0 amb addicions rellevants de FreeBSD 5.x.
Mach
Mach, el nucli del nucli XNU, proporciona la gestió de processos , la transmissió de missatges (utilitzada en la comunicació entre processos ), protecció de memòria i memòria virtual , gestió de processos del sistema en temps real , suport de depuració de nuclis i E / S des de la consola. Mach també gestiona la presència de múltiples fitxers binaris perquè pugui gestionar de forma nativa la presència de diverses arquitectures de maquinari com ara processadors PowerPC o processadors X86 .
BSD
Les porcions de codi de BSD integrats proporcionen la POSIX API (crides a sistema BSD) el model de gestió de processos, els nivells de seguretat bàsics i polítiques relacionades, l'ID d'usuari, els permisos de administració, la gestió de la xarxa , el sistema d'arxius virtual (incloent el diari capa), criptografia , IPC UNIX System V i moltes primitives.
Kit d'E / S
És un marc per escriure controladors dissenyat amb un subconjunt de C ++ . S'ha dissenyat seguint els dictats de la programació orientada a objectes per tal de permetre l'escriptura de controladors de forma ràpida i amb poc codi. Aquest model és únic en el seu tipus, no està present en altres sistemes operatius similars a UNIX que permeten escriure controladors només en C pur, sense l'ajut d' OOP . La possibilitat d’importar i utilitzar un controlador ja escrit com a superclasse facilita, en primer lloc, la creació del propi controlador, el fa menys propens a errors i redueix l’espai que ocupa el controlador a la zona del nucli. El framework gestiona SMP , multiprocés, gestiona la seguretat, permet la càrrega dinàmica de controladors i gestiona perifèrics hot-plug i autoconfigurables . La majoria dels controladors s’escriuen per executar-se a l’espai de l’usuari per tal de millorar la seguretat del sistema. L'error d'un controlador que s'executa a l'espai de l'usuari no pot bloquejar el nucli.
Protecció compartida de recursos
Per permetre un funcionament segur en màquines multiprocessador, l'accés als recursos compartits (fitxers, estructures de dades, etc.) es serialitza per evitar que els processos canviïn el mateix recurs al mateix temps. Les operacions atòmiques, els filtres , les seccions crítiques, els sistemes d’exclusió mútua i la gestió serialitzada són els possibles mètodes per evitar l’accés perillós a les estructures compartides. Com Linux i FreeBSD, Darwin implementa sistemes d'exclusió mútua de gra fi (mutexes) per aconseguir un alt rendiment en sistemes multiprocessador.
Processadors compatibles
Darwin pot utilitzar actualment equips basats en X86 ( Intel o AMD ) o basats en PowerPC en configuracions de processador simple o multiprocessador. També és compatible amb l'arquitectura ARM64 (tant per a mòbils com per a ordinadors).
Desenvolupament i distribució
Comprovació de qualitat
Com molts sistemes operatius moderns, Darwin utilitza un depurador integrat al nucli per ajudar els desenvolupadors a trobar errors al codi.
Llicència
Al juny del 2003, Apple va distribuir Darwin 7.0 sota la llicència Apple Public Source License , versió 2.0 del 6 d'agost de 2003 , considerada per la FSF com una llicència de programari lliure no compatible amb la GNU GPL , no recomanable si esteu escrivint un programa nou, però no recomano utilitzar-lo de programes sota aquesta llicència.
Distribucions
- Apple Darwin , distribuït com a nucli de macOS per als desenvolupadors
- OpenDarwin , distribuït com un sistema operatiu complet "independent" (que ja no està en desenvolupament)
- Puredarwin , distribuït com un sistema operatiu de codi obert, el projecte vol crear la seva versió "completa i utilitzable"
- Gnu / Darwin , distribuït per unificar el sistema operatiu GNU amb el nucli Darwin
Versió
La taula següent mostra la data de les diverses versions de Darwin i la versió relativa de macOS i iOS:
Data | Versió de Darwin | Versió de MacOS | Versió iOS |
---|---|---|---|
5 d’abril del 2000 | Darwin 1.0 | ||
13 d’abril del 2000 | Darwin 1.0.2 | ||
13 d’abril de 2001 | Darwin 1.3.1 | Mac OS X Cheetah a la 10.0.4 | |
2 d’octubre de 2001 | Darwin 1.4.1 | Mac OS X Puma | |
Darwin 5.1 | Mac OS X 10.1.1 | ||
Darwin 5.2 | Mac OS X 10.1.2 | ||
Darwin 5.3 | Mac OS X 10.1.3 | ||
Darwin 5.4 | Mac OS X 10.1.4 | ||
Darwin 5.5 | Mac OS X 10.1.5 | ||
23 de setembre de 2002 | Darwin 6.0.1 | Mac OS X Jaguar | |
28 d’octubre de 2002 | Darwin 6.0.2 | Mac OS X 10.2 | |
Darwin 6.1 | Mac OS X 10.2.1 | ||
Darwin 6.2 | Mac OS X 10.2.2 | ||
Darwin 6.3 | Mac OS X 10.2.3 | ||
Darwin 6.4 | Mac OS X 10.2.4 | ||
Darwin 6.5 | Mac OS X 10.2.5 | ||
Darwin 6.6 | Mac OS X 10.2.6 | ||
Darwin 6.7 | Mac OS X 10.2.7 | ||
Darwin 6.8 | Mac OS X 10.2.8 | ||
24 d’octubre de 2003 | Darwin 7.0 | Mac OS X Panther | |
Darwin 7.1 | Mac OS X 10.3.1 | ||
Darwin 7.2 | Mac OS X 10.3.2 | ||
Darwin 7.3 | Mac OS X 10.3.3 | ||
Darwin 7.4 | Mac OS X 10.3.4 | ||
Darwin 7.5 | Mac OS X 10.3.5 | ||
Darwin 7.6 | Mac OS X 10.3.6 | ||
Darwin 7.7 | Mac OS X 10.3.7 | ||
Darwin 7.8 | Mac OS X 10.3.8 | ||
15 d'abril de 2005 | Darwin 7.9 | Mac OS X 10.3.9 | |
29 d’abril de 2005 | Darwin 8.0 | Mac OS X Tiger | |
16 de maig de 2005 | Darwin 8.1 | Mac OS X 10.4.1 | |
12 de juny de 2005 | Darwin 8.2 | Mac OS X 10.4.2 | |
31 d’octubre de 2005 | Darwin 8.3 | ||
10 de gener del 2006 | Darwin 8.4 | Mac OS X 10.4.4 | |
14 de febrer del 2006 | Darwin 8.5 | Mac OS X 10.4.5 | |
3 d'abril de 2006 | Darwin 8.5 | Mac OS X 10.4.6 | |
8 d’agost del 2006 | Darwin 8.6 | Mac OS X 10.4.7 | |
Darwin 8.8 | Mac OS X 10.4.8 | ||
Darwin 8.9 | Mac OS X 10.4.9 | ||
26 d’octubre de 2007 | Darwin 9.0 | Mac OS X Leopard | IPhone OS 1 |
15 de novembre de 2007 | Darwin 9.1 | Mac OS X 10.5.1 | IPhone OS 2 |
11 de febrer de 2008 | Darwin 9.2 | Mac OS X 10.5.2 | |
19 de març de 2008 | Darwin 9.2.2 | Time Machine i AirPort Update v 1.0 (Mac OS X 10.5.2) | |
28 de maig de 2008 | Darwin 9.3 | Mac OS X 10.5.3 | |
30 de juny de 2008 | Darwin 9.4 | Mac OS X 10.5.4 | |
15 de setembre de 2008 | Darwin 9.5 | Mac OS X 10.5.5 | |
15 de desembre de 2008 | Darwin 9.6 | Mac OS X 10.5.6 | |
28 d’agost de 2009 | Darwin 10.0 | OS X Snow Leopard | iOS 4 |
20 de juliol de 2011 | Darwin 11.0 | OS X Lion | iOS 5 |
25 de juliol de 2012 | Darwin 12.0 | OS X Mountain Lion | iOS 6 |
22 d’octubre de 2013 | Darwin 13.0 | OS X Mavericks | iOS 7 |
1 de novembre de 2014 | Darwin 14.0 | OS X Yosemite | iOS 8 |
16 de setembre de 2015 | Darwin 15.0 | OS X El Capitan | iOS 9 |
13 de juny de 2016 | Darwin 16.0 | macOS Sierra | iOS 10 |
25 de setembre de 2017 | Darwin 17.0 | macOS High Sierra | iOS 11 |
24 de setembre de 2018 | Darwin 18.0 | macOS Mojave | iOS 12 |
17 d’octubre de 2019 | Darwin 19.0 | macOS Catalina | iOS 13 |
3 de setembre de 2020 | Darwin 20.1 | macOS Big Sur | iOS 14 |
Tingueu en compte que les versions passen de l’1.4.1 a la 5.1. Se suposa que es va fer per continuar la numeració NEXTSTEP (NEXTSTEP va pujar a la versió 3.3 mentre que OPENSTEP es considera la versió 4.0).
Enllaços externs
Informació general
- ( EN ) Lloc per a desenvolupadors de Darwin d'Apple , a developer.apple.com .
- ( EN ) Versions d'Apple Darwin (conté fonts del nucli) , a opensource.apple.com . Consultat el 8 de desembre de 2005 (arxivat de l' original el 6 de juliol de 2006) .
- (EN) Desenvolupament del lloc de la comunitat Mac OS Forge , de macosforge.org.
- (EN) Hexley, la mascota de Darwin , a hexley.com.
- ( EN ) Lloc del projecte GNU-Darwin , a gnu-darwin.org . Consultat el 27 d'agost de 2018 (arxivat de l' original el 2 de gener de 2006) .
Documentació
- (EN) Diferències entre Mac OS X i BSD a developer.apple.com.
- (EN)Darwin Reference Library , a developer.apple.com.