Sekä Linux- että macOS-ydin ovat UNIX-pohjaisia. Jotkut sanovat, että macOS on ”linux”, jotkut sanovat, että molemmat ovat yhteensopivia komentojen ja tiedostojärjestelmän hierarkian samankaltaisuuksien vuoksi.
Tänään haluan näyttää hieman molempia, esittelen Linux-ytimen & Mac-ytimen eroja ja yhtäläisyyksiä, kuten mainitsin aiemmissa Linux-ydinartikkeleissa.
Sisällysluettelo
MacOS:n ydin
Steeve Jobs lähti Applelta
Steeve Jobs lähti Applelta
Vuonna 1985, koska hänellä oli erimielisyyksiä yhtiön toimitusjohtajan, John Sculleyn, ja Apple:n hallituksen kanssa. Sen jälkeen hän perusti uuden tietokoneyrityksen nimeltä NeXT. Jobs halusi, että uusi tietokone (uudella käyttöjärjestelmällä) julkaistaisiin nopeasti. Aikaa säästääkseen NeXT-tiimi käytti Carnegie Mellonin Mach-ytimen ja osia BSD:n koodipohjasta luodakseen NeXTSTEP-käyttöjärjestelmän.
NeXT:stä ei koskaan tullut taloudellista menestystä, mikä johtui osittain Jobsin tavasta tuhlata rahaa ikään kuin hän olisi ollut yhä Applella. Samaan aikaan Apple yritti epäonnistuneesti päivittää käyttöjärjestelmäänsä useaan otteeseen, jopa yhteistyössä IBM:n kanssa. Vuonna 1997 Apple osti NeXT:n 429 miljoonalla dollarilla. Osana kauppaa Steve Jobs palasi Appleen, ja NeXTSTEPistä tuli macOS:n ja iOS:n perusta.
Linux-ydin
Toisin kuin macOS-ydintä, Linuxia ei luotu osana kaupallista yritystä. Sen sijaan sen loi vuonna 1991 tietokoneopiskelija Linus Torvalds. Alun perin ydin kirjoitettiin Linuksen tietokoneen spesifikaatioiden mukaan, koska hän halusi hyödyntää uutta 80386-prosessoriaan.
Linus julkaisi uuden ytimensä koodin verkossa elokuussa 1991. Pian hän sai koodi- ja resurssiehdotuksia maailmanlaajuisesti. Seuraavana vuonna Orest Zborowski porttasi X Windows -järjestelmän Linuxiin ja antoi sille mahdollisuuden tukea graafista käyttöliittymää.
MacOS:n ytimen resurssit
MacOS:n ydin tunnetaan virallisesti nimellä XNU. Lyhenne tulee sanoista ”XNU is Not Unix”. Applen virallisen Github-sivun mukaan XNU on ”hybridiydin, joka yhdistää Carnegie Mellonin yliopistossa kehitetyn Mach-ytimen FreeBSD:n ja ajureiden C++-komponenttien kanssa”.
Koodin BSD-alijärjestelmäosa on ”normaalisti toteutettu userpace-palvelimina mikroydinjärjestelmissä”. Mach-osa vastaa matalan tason työstä, kuten moniajoista, suojatusta muistista, virtuaalimuistin hallinnasta, ytimen virheenkorjaustuesta ja konsolin I/O:sta.”
MacOS:n kartta: Kaiken sydän on nimeltään Darwin, ja sen sisällä on erilliset järjestelmäapuohjelmat ja XNU-ydin, joka koostuu osittain Mach-ytimestä ja BSD-ytimestä.
Linuxista poiketen tämä ydin on jaettu niin sanotuksi hybridiytimeksi, joka mahdollistaa sen yhden osan pysähtymisen huollon ajaksi, kun taas toinen osa jatkaa toimintaansa. Useissa keskusteluissa tämä avasi myös kysymyksen siitä, että hybridiydin on vakaampi; jos yksi sen osista pysähtyy, toinen voi aloittaa sen uudelleen.
Linux-ytimen resurssit
Vaikka macOS:n ytimessä yhdistyvät Machin kaltaisen mikroytimen ja BSD:n kaltaisen monoliittisen ytimen kyvykkyydet, Linux on pelkkä monoliittinen ydin. Monoliittinen ydin vastaa suorittimen, muistin, prosessien välisen viestinnän, laiteajurien, tiedostojärjestelmän ja järjestelmän palvelukutsujen hallinnasta. Toisin sanoen se tekee kaiken ilman alajaotteluja.
Tämä on tietysti herättänyt jo paljon keskustelua jopa Linuksen itsensä ja muiden kehittäjien kanssa, jotka väittävät, että monoliittinen ydin on paitsi hitaampi myös alttiimpi virheille; Linux on kuitenkin joka vuosi päinvastainen, ja se voidaan optimoida hybridiytimeksi. Lisäksi RedHatin avulla kernelissä on nyt Live Patch, joka mahdollistaa reaaliaikaisen ylläpidon ilman uudelleenkäynnistystä.
MacOS:n ytimen (XNU) ja Linuxin erot
- MacOS:n ydin (XNU) on ollut olemassa pidempään kuin Linux, ja se perustuu kahden vielä vanhemman koodikannan yhdistelmään. Tämä painaa puolesta, vakauden ja historian vuoksi.
- Toisaalta Linux on uudempi, alusta asti kirjoitettu ja sitä käytetään monissa muissa laitteissa; niin paljon, että se on mukana kaikissa 500 parhaan joukossa olevissa supertietokoneissa ja hiljattain vihityssä Pohjois-Amerikan supertietokoneessa.
Järjestelmän laajuudessa meillä ei ole paketinhallintaa komentorivin kautta macOS:n päätelaitteessa.
.pkg-muodossa olevien pakettien – kuten BSD:n – asentaminen tapahtuu tämän komentorivin kautta, jos ei graafisen käyttöliittymän kautta:
$ sudo installer -pkg /path/to/package.pkg -target /
Huomautus: MacOS:n .pkg-muotoinen .pkg-muotoinen paketti on täysin erilainen kuin BSD:n .pkg-muotoinen .pkg-muotoinen paketti!”
Älä luulekaan MacOS:n tukevan BSD:n ohjelmia, ja toisin päin. Se ei tue eikä asenna. Sinulla on macOS:ssä apt:tä vastaava komento, alla 2 vaihtoehtoa:
Installing Homebrewor MacPorts. Lopulta saat seuraavan syntaksin: $ brew install PACKAGE
$ port install PACKAGE
Muista, että kaikki Linuxille tai BSD:lle saatavilla olevat ohjelmat/paketit eivät ole MacOS Portsissa.
Yhteensopivuus
Yhteensopivuuden suhteen ei ole paljon sanottavaa; Darwin-ydin ja Linux-ydin ovat yhtä erilaiset kuin verrattaessa Windows NT:n ydintä BSD-ytimeen. Linuxille kirjoitetut ajurit eivät toimi macOS:ssä ja päinvastoin. Ne on käännettävä etukäteen; kummallista kyllä, Linuxissa on joukko macOS:n daemoneja, mukaan lukien CUPS-tulostuspalvelin!
Yhteensopivuuden kannalta yhteisiä ovat itse asiassa terminaalityökalut, kuten GNU Utils -paketit tai Busybox, joten BASH:n lisäksi meillä on myös gcc, rm, dd, top, nano, vim jne. Ja tämä on luontaista kaikille UNIX-pohjaisille sovelluksille. Lisäksi meillä on tiedostojärjestelmän kansioiden arkkitehtuuri, rootille yhteiset kansiot /, / lib, / var, / etc, / dev ja niin edelleen.
Johtopäätökset
macOS:lla ja Linuxilla on yhtäläisyytensä ja eroavaisuutensa, aivan kuten BSD:llä Linuxiin verrattuna. Mutta koska ne perustuvat UNIXiin, niillä on yhteisiä malleja, jotka tekevät niistä tuttuja ympäristölle. Ne, jotka käyttävät Linuxia ja siirtyvät pro macOS:ään tai päinvastoin, tuntevat useita komentoja ja ominaisuuksia.
Silmiinpistävin ero olisi graafinen käyttöliittymä, jonka ongelma olisi henkilökohtainen sopeutumiskysymys.
LinuxAndUbuntu -hostingia sponsoroi massiveGRID
.
Vastaa