GNU/Linux >> Znalost Linux >  >> Linux

Linuxové jádro vs. Mac Kernel

Oba jádro Linuxu a jádro macOS jsou založeny na UNIXu. Někteří lidé říkají, že macOS je „linux“, jiní říkají, že oba jsou kompatibilní kvůli podobnosti mezi příkazy a hierarchií souborového systému.

Dnes chci ukázat něco z obojího a ukázat rozdíly a podobnosti mezi jádrem Linuxu a Mac jádrem, jak jsem zmínil v předchozích článcích o jádře Linuxu.

Jádro systému macOS

V roce 1985 Steve Jobs opustil Apple kvůli neshodě s generálním ředitelem Johnem Sculleym a představenstvem společnosti Apple. Poté založil novou počítačovou společnost s názvem NeXT. Jobs chtěl, aby byl rychle uvolněn nový počítač (s novým operačním systémem). Aby tým NeXT ušetřil čas, použil jádro Carnegie Mellon Mach a části základny kódu BSD k vytvoření operačního systému NeXTSTEP .

NeXT se nikdy nestal finančním úspěchem, částečně kvůli Jobsovu zvyku utrácet peníze, jako by byl stále v Applu. Mezitím se Apple při několika příležitostech neúspěšně pokusil aktualizovat svůj operační systém, a to i ve spolupráci s IBM. V roce 1997 Apple koupil NeXT za 429 milionů $ . V rámci dohody Steve Jobs se vrátil k Applu a NeXTSTEP se stal základem macOS a iOS.

Linuxové jádro

Na rozdíl od macOS kernel, Linux nebyl vytvořen jako součást komerčního podniku. Místo toho jej v roce 1991 vytvořil počítačový student Linus Torvalds. Původně bylo jádro napsáno podle specifikací Linusova počítače, protože chtěl využít výhod svého nového procesoru 80386.

Linus zveřejnil kód svého nového jádra na webu v srpnu 1991. Brzy po celém světě dostával návrhy kódu a zdrojů. Následující rok Orest Zborowski portoval X Windows System na Linux, což mu dalo možnost podporovat grafické uživatelské rozhraní.

Zdroje jádra systému MacOS

 jádro macOS je oficiálně známý jako XNU. Zkratka znamená „XNU is Not Unix“. Podle oficiální stránky Apple Github je XNU „hybridní jádro, které kombinuje jádro Mach vyvinuté na Carnegie Mellon University s komponenty FreeBSD a C++ pro ovladače.

Část kódu BSD subsystému je „normálně implementována jako servery uživatelského prostoru v systémech mikrokernelu“. Machova část je zodpovědná za práci na nízké úrovni, jako je multitasking, chráněná paměť, správa virtuální paměti, podpora ladění jádra a I/O konzoly.

Mapa MacOS:srdce všeho se nazývá Darwin; a v jeho rámci máme samostatné systémové nástroje a jádro XNU, které je po částech složeno z jádra Mach a z jádra BSD.

Na rozdíl od Linuxu je toto jádro rozděleno na to, co nazývají hybridní jádro, což umožňuje jedné jeho části zastavit kvůli údržbě, zatímco jiná pokračuje v práci. V několika debatách to také otevřelo otázku, že hybridní jádro je stabilnější; pokud se jedna z jeho částí zastaví, druhá jej může znovu spustit.

Zdroje linuxového jádra

Zatímco jádro macOS kombinuje možnosti mikrojádra s Machem a monolitickým jádrem, jako je BSD, Linux je pouze monolitické jádro. Monolitické jádro je zodpovědné za správu CPU, paměti, meziprocesové komunikace, ovladačů zařízení, souborového systému a volání systémových služeb. To znamená, že dělá vše bez pododdělení.

Je zřejmé, že to již vyvolalo mnoho diskuzí dokonce i u samotného Linuse a dalších vývojářů, kteří tvrdí, že monolitické jádro je kromě toho, že je pomalejší, náchylnější k chybám; ale Linux je každý rok opakem a lze jej optimalizovat jako hybridní jádro. Navíc s pomocí RedHat , jádro nyní obsahuje Live Patch, který umožňuje údržbu v reálném čase bez nutnosti restartu.

Rozdíly mezi jádrem MacOS (XNU) a Linuxem

  1. Jádro macOS (XNU) existuje déle než Linux a bylo založeno na kombinaci dvou ještě starších kódových základen. To váží ve prospěch stability a historie.
  2. Na druhou stranu je Linux novější, napsaný od začátku a používaný na mnoha dalších zařízeních; natolik, že je přítomen ve všech 500 nejlepších mezi nejlepšími superpočítači a v nedávno inaugurovaném severoamerickém superpočítači.

​V rámci systému nemáme správce balíčků přes příkazový řádek v terminálu macOS.

Instalace balíčků ve formátu .pkg – jako je BSD – probíhá přes tento příkazový řádek, pokud ne přes GUI:

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

POZNÁMKA: MacOS .pkg je úplně jiný než BSD .pkg!

Nemyslete si, že macOS podporuje programy BSD a naopak. Nepodporuje a neinstaluje se. V systému macOS můžete mít příkaz ekvivalentní apt, a to ve dvou možnostech: 

Instalace Homebrew nebo MacPorts.   Nakonec budete mít následující syntaxi:$ brew install PACKAGE

$ port install PACKAGE

Nezapomeňte, že ne všechny programy/balíčky dostupné pro Linux nebo BSD budou v portech MacOS .

Kompatibilita

Ohledně kompatibility není moc co vytknout; Darwinovo jádro a linuxové jádro jsou stejně odlišné jako při srovnání jádra Windows NT s jádrem BSD. Ovladače napsané pro Linux neběží na macOS a naopak. Musí být sestaveny předem; Je zajímavé, že Linux má řadu démonů macOS, včetně tiskového serveru CUPS!

Společná kompatibilita je ve skutečnosti terminálové nástroje, jako jsou balíčky GNU Utils nebo Busybox, takže máme nejen BASH, ale také gcc, rm, dd, top, nano, vim atd. A to je vlastní všem aplikacím založeným na UNIXu. Kromě toho máme architekturu složek souborového systému, běžné složky společné pro root v /, / lib, / var, / etc, / dev a tak dále .

Závěr

macOS a Linux mají své podobnosti a rozdíly, stejně jako BSD ve srovnání s Linuxem. Ale protože jsou založeny na UNIXu, sdílejí vzory, díky kterým jsou prostředí známé. Ti, kteří používají Linux a migrují pro macOS nebo naopak, budou obeznámeni s řadou příkazů a funkcí.

Nejmarkantnějším rozdílem by bylo grafické rozhraní, jehož problém by byl otázkou osobního přizpůsobení.


Linux
  1. Životní cyklus testování linuxového jádra

  2. Linux – Kernel IP Forwarding?

  3. Linux – Spouštět aplikace Mac OS X na Linuxu?

  1. Nainstalujte Linux Kernel 4.12 v openSUSE

  2. Linux – poskvrněné jádro v Linuxu?

  3. Linuxové jádro se neaktualizuje na 2.35.25?

  1. Jak upgradovat jádro na ploše Linuxu

  2. Linux – Kernel:Podpora jmenných prostorů?

  3. dd výkon na Mac OS X vs. Linux