GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Kernel vs. Mac-Kernel

Sowohl der Linux-Kernel und der macOS-Kernel sind UNIX-basiert. Einige Leute sagen, dass macOS „Linux“ ist, andere sagen, dass beide aufgrund von Ähnlichkeiten zwischen Befehlen und Dateisystemhierarchie kompatibel sind.

Heute möchte ich ein wenig von beidem zeigen, die Unterschiede und Ähnlichkeiten zwischen dem Linux-Kernel und dem Mac-Kernel zeigen, wie ich es in früheren Linux-Kernel-Artikeln erwähnt habe.

Kernel von macOS

1985 verließ Steve Jobs Apple aufgrund einer Meinungsverschiedenheit mit CEO John Sculley und dem Vorstand von Apple. Anschließend gründete er eine neue Computerfirma namens NeXT. Jobs wollte, dass ein neuer Computer (mit einem neuen Betriebssystem) schnell herausgebracht wird. Um Zeit zu sparen, verwendete das NeXT-Team den Carnegie Mellon Mach-Kernel und Teile der BSD-Codebasis, um das NeXTSTEP-Betriebssystem zu erstellen .

NeXT wurde nie zu einem finanziellen Erfolg, teilweise aufgrund von Jobs’ Angewohnheit, Geld auszugeben, als wäre er immer noch bei Apple. In der Zwischenzeit hat Apple mehrfach erfolglos versucht, sein Betriebssystem zu aktualisieren, sogar in Zusammenarbeit mit IBM. 1997 kaufte Apple NeXT für 429 Millionen $ . Als Teil des Deals, Steve Jobs kehrte zu Apple zurück und NeXTSTEP wurde zur Grundlage von macOS und iOS.

Linux-Kernel

Im Gegensatz zu macOS Kernel wurde Linux nicht als Teil eines kommerziellen Unternehmens entwickelt. Stattdessen wurde es 1991 von dem Computerstudenten Linus Torvalds erstellt. Ursprünglich wurde der Kernel nach den Spezifikationen von Linus’ Computer geschrieben, weil er die Vorteile seines neuen 80386-Prozessors nutzen wollte.

Linus veröffentlichte den Code für seinen neuen Kernel im August 1991 im Internet. Bald erhielt er Code- und Ressourcenvorschläge weltweit. Im folgenden Jahr portierte Orest Zborowski das X-Windows-System auf Linux und gab ihm die Möglichkeit, eine grafische Benutzeroberfläche zu unterstützen.

MacOS-Kernel-Ressourcen

Der macOS-Kernel ist offiziell als XNU bekannt. Das Akronym steht für „XNU is Not Unix“. Laut Apples offizieller Github-Seite ist XNU „ein hybrider Kernel, der den an der Carnegie Mellon University entwickelten Mach-Kernel mit FreeBSD- und C++-Komponenten für die Treiber kombiniert“.

Der BSD-Subsystemteil des Codes ist „normalerweise als Userspace-Server in Mikrokernel-Systemen implementiert“. Der Mach-Teil ist für Low-Level-Arbeiten wie Multitasking, geschützter Speicher, virtuelle Speicherverwaltung, Kernel-Debugging-Unterstützung und Konsolen-I/O verantwortlich.

Karte von MacOS:Das Herzstück von allem heißt Darwin; und darin haben wir separate Systemdienstprogramme und den XNU-Kernel, der in Teilen aus dem Mach-Kernel und dem BSD-Kernel besteht.

Im Gegensatz zu Linux ist dieser Kernel in den sogenannten Hybrid-Kernel aufgeteilt, sodass ein Teil davon zur Wartung angehalten werden kann, während ein anderer weiterarbeitet. In mehreren Debatten hat dies auch die Frage aufgeworfen, ob ein hybrider Kernel stabiler ist; wenn einer seiner Teile stoppt, kann der andere ihn wieder starten.

Linux-Kernel-Ressourcen

Während der macOS-Kernel die Fähigkeiten eines Mikrokernels mit Mach und einem monolithischen Kernel wie BSD kombiniert, ist Linux nur ein monolithischer Kernel. Ein monolithischer Kernel ist für die Verwaltung von CPU, Speicher, Kommunikation zwischen Prozessen, Gerätetreibern, Dateisystem und Systemdienstaufrufen verantwortlich. Das heißt, er macht alles ohne Unterteilungen.

Offensichtlich hat dies bereits viele Diskussionen ausgelöst, sogar mit Linus selbst und anderen Entwicklern, die behaupten, dass ein monolithischer Kernel nicht nur langsamer, sondern auch fehleranfälliger sei; aber Linux ist jedes Jahr das Gegenteil davon und kann als hybrider Kernel optimiert werden. Außerdem mit Hilfe von RedHat enthält der Kernel jetzt einen Live-Patch, der Echtzeit-Wartung ohne erforderlichen Neustart ermöglicht.

Unterschiede zwischen MacOS Kernel (XNU) und Linux

  1. Der macOS-Kernel (XNU) existiert schon länger als Linux und basierte auf einer Kombination aus zwei noch älteren Codebasen. Dies spricht für Stabilität und Geschichte.
  2. Andererseits ist Linux neuer, von Grund auf neu geschrieben und auf vielen anderen Geräten verwendet; so sehr, dass es in allen 500 besten unter den besten Supercomputern und in dem kürzlich eingeweihten nordamerikanischen Supercomputer vorhanden ist.

​Im Systembereich haben wir keinen Paketmanager über die Befehlszeile im macOS-Terminal.

Die Installation der Pakete im .pkg-Format – wie BSD – erfolgt über diese Kommandozeile, wenn nicht über die GUI:

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

HINWEIS: MacOS .pkg ist völlig anders als BSD .pkg!

Denken Sie nicht, dass macOS BSD-Programme unterstützt und umgekehrt. Es wird nicht unterstützt und nicht installiert. Sie können unter 2 Optionen einen Befehl haben, der apt in macOS entspricht: 

Installation von Homebrew oder MacPorts.   Am Ende haben Sie die folgende Syntax:$ brew install PACKAGE

$ port install PACKAGE

Denken Sie daran, dass nicht alle Programme/Pakete, die für Linux oder BSD verfügbar sind, in MacOS-Ports vorhanden sein werden .

Kompatibilität

Zur Kompatibilität gibt es nicht viel zu sagen; der Darwin-Kern und der Linux-Kernel sind so unterschiedlich wie der Vergleich des Windows-NT-Kernels mit dem BSD-Kernel. Für Linux geschriebene Treiber laufen nicht auf macOS und umgekehrt. Sie müssen vorher kompiliert werden; Seltsamerweise hat Linux eine Reihe von macOS-Daemons, einschließlich des CUPS-Druckservers!

Was wir gemeinsam haben, sind Terminal-Tools wie GNU Utils-Pakete oder Busybox, also haben wir nicht nur Kompatibilität BASH, aber auch gcc, rm, dd, top, nano, vim usw. Und das ist allen UNIX-basierten Anwendungen eigen. Darüber hinaus haben wir die Architektur der Dateisystemordner, gemeinsame Ordner für Root in /, /lib, /var, /etc, /dev und so weiter .

Schlussfolgerung

macOS und Linux haben ihre Gemeinsamkeiten und Unterschiede, genau wie BSD im Vergleich zu Linux. Da sie jedoch auf UNIX basieren, teilen sie Muster, die sie mit der Umgebung vertraut machen. Wer Linux nutzt und pro macOS migriert oder umgekehrt, wird mit einer Reihe von Befehlen und Features vertraut sein.

Der auffälligste Unterschied wäre die grafische Oberfläche, deren Problem eine Frage der persönlichen Anpassung wäre.


Linux
  1. Der Lebenszyklus des Linux-Kernel-Testens

  2. So aktualisieren Sie den Kernel auf dem Linux-Desktop

  3. Linux – Kernel-IP-Weiterleitung?

  4. Linux – Mac OS X-Anwendungen unter Linux ausführen?

  5. Linux – Ein verdorbener Kernel in Linux?

Linux-Kernel und seine Funktionen

sysctl-Befehl unter Linux

Was tun bei einer Linux-Kernel-Panik?

So ändern Sie die MAC-Adresse in Linux

Aktualisieren Sie den Linux-Kernel von CentOS 8

Vollständiges Handbuch zur Linux-Protokollierung