Darwin (sistem de operare)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Darwin
sistem de operare
GNOME 2 rulează pe openDarwin (2004) .png
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:

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

Arborele genealogic asemănător Unix născut din UNIX

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

Documentație