Darwin (sistem de operare)
Darwin sistem de operare | |
---|---|
OpenDarwin cu mediul desktop GNOME | |
Dezvoltator | măr |
Familie | BSD |
Eliberarea inițială | 0,1 (16 martie 1999 ) |
Lansare curentă | 19.0.0 (17 octombrie 2019 ) |
Tipul de nucleu | XNU |
Platforme acceptate | x86 , PowerPC , ARM |
Tipul licenței | Software gratuit |
Licență | APSL |
Etapă de dezvoltare | in productie |
Predecesor | Urmatorul pas |
Site-ul web | lists.apple.com/mailman/listinfo/darwin-kernel |
În informatică, Darwin este un sistem de operare gratuit care utilizează nucleul XNU . Împreună cu alte componente, cum ar fi cadrele de bază, cadrele de aplicații ( Cocoa , Carbon și Java ) și interfața grafică Aqua proprietară, formează sistemul de operare macOS . Darwin este implementat și în sistemul de operare mobil Apple, iOS . Cu toate acestea, versiunea utilizată pentru iOS diferă de versiunea utilizată pentru OS X. În plus, versiunea mobilă este o sursă închisă .
Istorie
NeXT Computer , o companie fondată în 1985 de Steve Jobs cu scopul de a crea o nouă revoluție în domeniul tehnologiei informației , a examinat noile tehnologii dezvoltate de universități și companii de calculatoare pentru a crea cel mai bun computer personal care nu a existat niciodată [ fără sursă ] . Au fost identificate mai multe proiecte, inclusiv:
- Sistemul BSD ( Berkeley Software Distribution ), varianta originală a Unix dezvoltată la Universitatea din California, Berkeley .
- Kernel-ul Mach , un nucleu dezvoltat de Universitatea Carnegie Mellon .
Din aceste fundații a fost dezvoltat sistemul NeXTSTEP care, odată ce a evoluat în OpenSTEP , a fost folosit de Apple ca bază pentru macOS după achiziționarea NeXT de către însăși Apple. Prima versiune a fost prezentată în 2000 . Numele care își ia reperul de la omologul evoluționist omonim , a fost ales pentru a reprezenta caracteristica acestui sistem ca evoluție a BSD / Unix. Darwin este inima sistemului de operare macOS , precum și baza BSD, ceea ce îl face Unix cu kernel-ul XNU implementat . XNU este un nucleu hibrid, bazat pe o uniune a codului de microkernel Mach și a nucleului monolitic FreeBSD . (XNU este un acronim recursiv pentru XNU's Not Unix = "XNU Isn't Unix")
Darwin este un sistem de operare gratuit pe deplin , deoarece este distribuit publicului sub licența Apple Public Source pentru a-l face open source . Apple dezvoltă încă Darwin, punând la dispoziție lansări ale instalațiilor Darwin pe pagina de lansare, mai întâi în colaborare cu dezvoltatorii care au aderat la proiectul OpenDarwin mult abandonat, acum într-un mod solitar în timp ce pun la dispoziție sursele pe pagina sa sursă. A fost inițial dezvoltat doar de Apple, cu compatibilitate POSIX UNIX completă, sub numele de Rhapsody (niciodată distribuit în afara mediilor Apple) și, ulterior, din aceasta a fost creată o adevărată furcă în 2000 după prezentarea sa, din care s-au născut patru distribuții cunoscute până acum, dintre care două nu au legătură oficială cu Apple și din acest motiv vorbim despre Darwin OS ca o familie de sisteme de operare derivate din FreeBSD .
Descriere
Modelul nucleului
La fel ca multe nuclee moderne, Darwin urmează o abordare hibridă, care conține trăsături atât ale unui microkernel, cât și ale unui nucleu monolitic . De fapt, urmează o abordare a microkernelului în ceea ce privește gestionarea serviciilor, dar integrează porțiuni mari din sistemul de operare în același microkernel pentru a reduce timpul de nefuncționare din cauza comutării de context. Această abordare mixtă face sistemul de operare mai receptiv și mai rapid, dar în același timp îl face mai sensibil la erorile de programare ale nucleului.
Majoritatea codului este executat în afara nucleului pentru a face dezvoltarea rapidă și ușoară. Componentele individuale sunt scrise și testate independent, de fapt este mai ușor să testați o porțiune mică de cod decât să analizați funcționarea unui modul scufundat în sute de mii de linii de cod aparținând altor module. În plus, această abordare face ca sistemul de operare să fie mai puțin sensibil la defecțiunile individuale ale driverului.
Nucleul se numește XNU și poate fi considerat o derivare a nucleului Mach 3.0 cu adăugări relevante din FreeBSD 5.x.
Mach
Nucleul kernel-ului XNU, Mach oferă gestionarea proceselor , transmiterea mesajelor (utilizate în comunicarea interprocesată ), memorie virtuală și protecție a memoriei , gestionarea proceselor de sistem în timp real , suport pentru depanarea kernelului și I / O de la consolă. Mach gestionează, de asemenea, prezența mai multor binare, astfel încât să poată gestiona în mod nativ prezența mai multor arhitecturi hardware, cum ar fi procesoarele PowerPC sau procesoarele X86 .
BSD
Porțiunile de cod BSD integrate oferă API POSIX (apeluri de sistem BSD) modelul de gestionare a proceselor, nivelurile de securitate de bază și politicile conexe, ID-ul utilizatorului, gestionarea permisiunilor , gestionarea rețelei , sistemul de fișiere virtual (inclusiv stratul de jurnalizare ), criptografie , IPC-uri UNIX System V și multe primitive.
Kit I / O
Este un cadru pentru scrierea driverelor proiectat cu un subset de C ++ . Acesta a fost conceput urmând instrucțiunile programării orientate pe obiecte, pentru a permite scrierea driverelor rapid și cu puțin cod. Acest model este unic în felul său, nu este prezent în alte sisteme de operare de tip UNIX, care permit scrierea driverelor doar în C pur, fără ajutorul OOP . Posibilitatea de a importa și utiliza un driver deja scris ca superclasă facilitează, în primul rând, crearea driverului în sine, îl face mai puțin predispus la erori și reduce spațiul pe care îl ocupă driverul în zona kernelului. Cadrul gestionează SMP , multi-threading, gestionează securitatea, permite încărcarea dinamică a driverelor și gestionează periferice hot-plug și autoconfigurabile . Majoritatea driverelor sunt scrise pentru a rula în spațiul utilizatorului pentru a îmbunătăți securitatea sistemului. Eșecul unui driver care rulează în spațiul utilizatorului nu poate bloca nucleul.
Protecție partajată a resurselor
Pentru a permite o funcționare sigură pe mașinile multiprocesor, accesul la resursele partajate (fișiere, structuri de date etc.) este serializat pentru a preveni ca procesele să schimbe aceeași resursă în același timp. Operațiile atomice, blocările , secțiunile critice, sistemele de excludere reciprocă și gestionarea serializată sunt metodele posibile pentru a preveni accesul periculos la structurile comune. La fel ca Linux și FreeBSD, Darwin implementează sisteme de excludere reciprocă cu granulație fină (mutexes) pentru a obține performanțe ridicate în sistemele multiprocesor.
Procesoare acceptate
Darwin poate folosi în prezent computere bazate pe X86 ( Intel sau AMD ) sau pe computere bazate pe PowerPC în configurații cu un singur procesor sau multiprocesor. De asemenea, acceptă arhitectura ARM64 (atât pe mobil, cât și pe desktop).
Dezvoltare și distribuție
Verificarea calitatii
La fel ca multe sisteme de operare moderne, Darwin folosește un depanator încorporat în nucleu pentru a ajuta dezvoltatorii să găsească erori în cod.
Licență
În iunie 2003, Apple a distribuit Darwin 7.0 sub licența Apple Public Source License , versiunea 2.0 din 6 august 2003 , considerată de FSF drept o licență de software gratuit care nu este compatibilă cu GNU GPL , nerecomandată dacă scrieți un nou program, dar nu vă recomandăm să îl utilizați. de programe sub această licență.
Distribuții
- Apple Darwin , distribuit ca un nucleu macOS pentru dezvoltatori
- OpenDarwin , distribuit ca un sistem de operare complet „independent” (nu mai este în curs de dezvoltare)
- Puredarwin , distribuit ca sistem de operare open source, proiectul dorește să își creeze versiunea „completă și utilizabilă”
- Gnu / Darwin , distribuit pentru unificarea sistemului de operare GNU cu nucleul Darwin
Versiune
Tabelul de mai jos arată data diferitelor versiuni ale Darwin și versiunea relativă a macOS și iOS:
Data | Versiunea Darwin | Versiunea MacOS | Versiunea IOS |
---|---|---|---|
5 aprilie 2000 | Darwin 1.0 | ||
13 aprilie 2000 | Darwin 1.0.2 | ||
13 aprilie 2001 | Darwin 1.3.1 | Mac OS X Cheetah la 10.0.4 | |
2 octombrie 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 septembrie 2002 | Darwin 6.0.1 | Mac OS X Jaguar | |
28 octombrie 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 octombrie 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 aprilie 2005 | Darwin 7.9 | Mac OS X 10.3.9 | |
29 aprilie 2005 | Darwin 8.0 | Mac OS X Tiger | |
16 mai 2005 | Darwin 8.1 | Mac OS X 10.4.1 | |
12 iunie 2005 | Darwin 8.2 | Mac OS X 10.4.2 | |
31 octombrie 2005 | Darwin 8.3 | ||
10 ianuarie 2006 | Darwin 8.4 | Mac OS X 10.4.4 | |
14 februarie 2006 | Darwin 8.5 | Mac OS X 10.4.5 | |
3 aprilie 2006 | Darwin 8.5 | Mac OS X 10.4.6 | |
8 august 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 octombrie 2007 | Darwin 9.0 | Mac OS X Leopard | IPhone OS 1 |
15 noiembrie 2007 | Darwin 9.1 | Mac OS X 10.5.1 | IPhone OS 2 |
11 februarie 2008 | Darwin 9.2 | Mac OS X 10.5.2 | |
19 martie 2008 | Darwin 9.2.2 | Time Machine și AirPort Update v 1.0 (Mac OS X 10.5.2) | |
28 mai 2008 | Darwin 9.3 | Mac OS X 10.5.3 | |
30 iunie 2008 | Darwin 9.4 | Mac OS X 10.5.4 | |
15 septembrie 2008 | Darwin 9.5 | Mac OS X 10.5.5 | |
15 decembrie 2008 | Darwin 9.6 | Mac OS X 10.5.6 | |
28 august 2009 | Darwin 10.0 | OS X Snow Leopard | iOS 4 |
20 iulie 2011 | Darwin 11.0 | OS X Lion | iOS 5 |
25 iulie 2012 | Darwin 12.0 | OS X Mountain Lion | iOS 6 |
22 octombrie 2013 | Darwin 13.0 | OS X Mavericks | iOS 7 |
1 noiembrie 2014 | Darwin 14.0 | OS X Yosemite | iOS 8 |
16 septembrie 2015 | Darwin 15.0 | OS X El Capitan | iOS 9 |
13 iunie 2016 | Darwin 16.0 | macOS Sierra | iOS 10 |
25 septembrie 2017 | Darwin 17.0 | macOS High Sierra | iOS 11 |
24 septembrie 2018 | Darwin 18.0 | macOS Mojave | iOS 12 |
17 octombrie 2019 | Darwin 19.0 | macOS Catalina | iOS 13 |
3 septembrie 2020 | Darwin 20.1 | macOS Big Sur | iOS 14 |
Rețineți că versiunile trec de la 1.4.1 la 5.1. Se presupune că acest lucru a fost făcut pentru a continua numerotarea NEXTSTEP (NEXTSTEP a urcat la versiunea 3.3 în timp ce OPENSTEP este considerat a fi versiunea 4.0).
linkuri externe
Informații generale
- ( EN ) Site-ul dezvoltatorului Darwin al Apple , la developer.apple.com .
- ( EN ) Lansări Apple Darwin (conține surse de nucleu) , la opensource.apple.com . Adus la 8 decembrie 2005 (arhivat din original la 6 iulie 2006) .
- (EN) Dezvoltarea site-ului comunității Mac OS Forge , a macosforge.org.
- (EN) Hexley, mascota Darwin , pe hexley.com.
- ( EN ) Site-ul proiectului GNU-Darwin , pe gnu-darwin.org . Adus la 27 august 2018 (arhivat din original la 2 ianuarie 2006) .
Documentație
- (RO) Diferențe între Mac OS X și BSD pe developer.apple.com.
- (EN)Darwin Reference Library , pe developer.apple.com.