Atât nucleul Linux, cât și nucleul macOS sunt bazate pe UNIX. Unii oameni spun că macOS este „linux”, alții spun că ambele sunt compatibile datorită asemănărilor dintre comenzi și ierarhia sistemului de fișiere.

Astăzi vreau să arăt un pic din amândouă, arătând diferențele și asemănările dintre kernelul Linux & și kernelul macOS, așa cum am menționat în articolele anterioare despre kernelul Linux.

Tabelă de materii

Kernelul macOS

În 1985, Steve Jobs a părăsit Apple din cauza unui dezacord cu directorul general John Sculley și cu consiliul de administrație al Apple. El a fondat apoi o nouă companie de calculatoare numită NeXT. Jobs dorea ca un nou calculator (cu un nou sistem de operare) să fie lansat rapid. Pentru a economisi timp, echipa NeXT a folosit nucleul Carnegie Mellon Mach și părți din baza de cod BSD pentru a crea sistemul de operare NeXTSTEP.

Sistemul de operare desktop NeXTSTEP

NeXT nu a devenit niciodată un succes financiar, în parte datorită obiceiului lui Jobs de a cheltui bani ca și cum ar fi fost încă la Apple. Între timp, Apple a încercat fără succes să își actualizeze sistemul de operare în mai multe rânduri, făcând chiar un parteneriat cu IBM. În 1997, Apple a cumpărat NeXT pentru 429 de milioane de dolari. Ca parte a tranzacției, Steve Jobs s-a întors la Apple, iar NeXTSTEP a devenit baza macOS și iOS.

Kernelul Linux

În mod diferit de kernelul macOS, Linux nu a fost creat ca parte a unei întreprinderi comerciale. În schimb, a fost creat în 1991 de către studentul la informatică Linus Torvalds. Inițial, nucleul a fost scris în conformitate cu specificațiile calculatorului lui Linus, deoarece acesta dorea să profite de noul său procesor 80386.

Linus a postat codul pentru noul său kernel pe web în august 1991. Curând, el a primit sugestii de cod și resurse În toată lumea. În anul următor, Orest Zborowski a portat X Windows System la Linux, oferindu-i capacitatea de a suporta o interfață grafică cu utilizatorul.

Resursele kernelului macOS

Kernelul macOS este cunoscut oficial sub numele de XNU. Acronimul înseamnă „XNU nu este Unix”. Potrivit paginii oficiale Github a Apple, XNU este „un kernel hibrid care combină kernelul Mach dezvoltat la Universitatea Carnegie Mellon cu FreeBSD și componente C++ pentru drivere”.

Partea de subsistem BSD a codului este „implementată în mod normal ca servere userspace în sistemele microkernel”. Partea Mach este responsabilă pentru lucrările de nivel scăzut, cum ar fi multitasking-ul, memoria protejată, gestionarea memoriei virtuale, suportul de depanare a nucleului și I/O de consolă.

resursele nucleului MacOS

Harta MacOS: inima tuturor lucrurilor se numește Darwin; și în cadrul acestuia, avem utilități de sistem separate și nucleul XNU, care este compus în părți din nucleul Mach și din nucleul BSD.

Dincolo de Linux, acest nucleu este împărțit în ceea ce ei numesc nucleu hibrid, permițând ca o parte din el să se oprească pentru întreținere, în timp ce o alta continuă să funcționeze. În mai multe dezbateri, acest lucru a deschis și problema faptului că un nucleu hibrid este mai stabil; dacă una dintre părțile sale se oprește, cealaltă o poate porni din nou.

Resursele nucleului Linux

În timp ce nucleul macOS combină capacitățile unui microkernel cu Mach și ale unui nucleu monolitic precum BSD, Linux este doar un nucleu monolitic. Un nucleu monolitic este responsabil pentru gestionarea CPU, a memoriei, a comunicării între procese, a driverelor de dispozitiv, a sistemului de fișiere și a apelurilor de servicii de sistem. Adică, face totul fără subdiviziuni.

Evident, acest lucru a stârnit deja multe discuții chiar și cu Linus însuși și cu alți dezvoltatori, care susțin că un nucleu monolitic este mai susceptibil la erori, pe lângă faptul că este mai lent; dar Linux este opusul acestui lucru în fiecare an și poate fi optimizat ca un nucleu hibrid. În plus, cu ajutorul RedHat, kernelul include acum un Live Patch care permite mentenanța în timp real, fără a fi necesară repornirea.

Diferențe între kernelul MacOS (XNU) și Linux

  1. Kernelul macOS (XNU) există de mai mult timp decât Linux și s-a bazat pe o combinație a două baze de coduri chiar mai vechi. Acest lucru cântărește în favoarea sa, pentru stabilitate și istorie.
  2. Pe de altă parte, Linux este mai nou, scris de la zero și folosit pe multe alte dispozitive; atât de mult încât este prezent în toate cele mai bune 500 de supercomputere dintre cele mai bune și în recent inauguratul supercomputer nord-american.

În domeniul sistemului, nu avem un manager de pachete prin linia de comandă în terminalul macOS.

Instalarea pachetelor în format .pkg – cum ar fi BSD – se face prin această linie de comandă, dacă nu prin GUI:

$ sudo installer -pkg /path/to/package.pkg -target /

NOTA: MacOS .pkg este total diferit de BSD .pkg!

Nu credeți că macOS suportă programe BSD și invers. Nu suportă și nu instalează. Puteți avea o comandă echivalentă cu apt în macOS, sub 2 opțiuni:

Installing Homebrewor MacPorts. În final, veți avea următoarea sintaxă: $ brew install PACKAGE

$ port install PACKAGE

Rețineți că nu toate programele/pachetele disponibile pentru Linux sau BSD vor fi în MacOS Ports.

Compatibilitate

În termeni de compatibilitate, nu sunt prea multe de spus; nucleul Darwin și nucleul Linux sunt la fel de distincte ca și compararea nucleului Windows NT cu nucleul BSD. Driverele scrise pentru Linux nu funcționează pe macOS și viceversa. Ele trebuie compilate în prealabil; În mod curios, Linux are o serie de daemoni pentru macOS, inclusiv serverul de imprimare CUPS!”

Ce avem în comun în materie de compatibilitate sunt, de fapt, uneltele de terminal precum pachetele GNU Utils sau Busybox, deci nu avem doar BASH, ci și gcc, rm, dd, top, nano, vim etc. Iar acest lucru este intrinsec tuturor aplicațiilor bazate pe UNIX. În plus, avem arhitectura de foldere a sistemului de fișiere, folderele comune comune pentru root în /, / lib, / var, / etc, / dev, și așa mai departe.

Concluzie

macOS și Linux au asemănările și diferențele lor, la fel ca BSD în comparație cu Linux. Dar pentru că se bazează pe UNIX, ele împărtășesc modele care le fac familiare cu mediul. Cei care folosesc Linux și migrează pro macOS sau viceversa vor fi familiarizați cu o serie de comenzi și caracteristici.

Cea mai izbitoare diferență ar fi interfața grafică, a cărei problemă ar fi o chestiune de adaptare personală.


Hostingul LinuxAndUbuntu este sponsorizat de massiveGRID

.