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

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

Inhaltsverzeichnis

Kernel von macOS

Im Jahr 1985 verließ Steve Jobs Apple aufgrund von Meinungsverschiedenheiten mit dem CEO John Sculley und dem Vorstand von Apple. Er gründete daraufhin eine neue Computerfirma namens NeXT. Jobs wollte einen neuen Computer (mit einem neuen Betriebssystem), der schnell auf den Markt kommen sollte. Um Zeit zu sparen, nutzte das NeXT-Team den Carnegie Mellon Mach-Kernel und Teile der BSD-Codebasis, um das NeXTSTEP-Betriebssystem zu entwickeln.

NeXTSTEP-Desktop-Betriebssystem

NeXT wurde nie ein finanzieller Erfolg, was zum Teil an Jobs‘ Angewohnheit lag, Geld auszugeben, als ob er noch bei Apple wäre. In der Zwischenzeit versuchte Apple mehrmals erfolglos, sein Betriebssystem zu aktualisieren, und ging sogar eine Partnerschaft mit IBM ein. Im Jahr 1997 kaufte Apple NeXT für 429 Millionen Dollar. Als Teil des Geschäfts kehrte Steve Jobs zu Apple zurück, und NeXTSTEP wurde zur Grundlage von macOS und iOS.

Linux-Kernel

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

Linus stellte den Code für seinen neuen Kernel im August 1991 ins Internet. Bald erhielt er weltweit Code- und Ressourcenvorschläge. Im darauffolgenden Jahr portierte Orest Zborowski das X Windows System auf Linux und gab ihm die Fähigkeit, 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 Hybrid-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ützten Speicher, virtuelle Speicherverwaltung, Kernel-Debugging-Unterstützung und Konsolen-E/A zuständig.

Macos-Kernel-Ressourcen

Map von MacOS: Das Herzstück von allem heißt Darwin; und darin haben wir separate System-Dienstprogramme und den XNU-Kernel, der sich teilweise aus dem Mach-Kernel und dem BSD-Kernel zusammensetzt.

Im Gegensatz zu Linux ist dieser Kernel in einen so genannten Hybrid-Kernel aufgeteilt, der es ermöglicht, einen Teil für Wartungsarbeiten anzuhalten, während ein anderer weiterarbeitet. In mehreren Debatten wurde damit auch die Frage aufgeworfen, ob ein hybrider Kernel stabiler ist; wenn einer seiner Teile ausfällt, kann der andere ihn wieder starten.

Linux-Kernel-Ressourcen

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

Dies hat natürlich schon für viel Diskussionsstoff gesorgt, auch bei Linus selbst und anderen Entwicklern, die behaupten, dass ein monolithischer Kernel nicht nur langsamer, sondern auch fehleranfälliger ist; aber Linux ist jedes Jahr das Gegenteil davon und kann als Hybrid-Kernel optimiert werden. Außerdem enthält der Kernel mit Hilfe von RedHat jetzt einen Live-Patch, der eine Echtzeit-Wartung ohne Neustart ermöglicht.

Unterschiede zwischen MacOS-Kernel (XNU) und Linux

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

Im Systemumfang haben wir keinen Paketmanager über die Kommandozeile 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 unterstützt nicht und installiert nicht. Sie können einen Befehl äquivalent zu apt in macOS haben, unter 2 Optionen:

Installation von Homebrewoder MacPorts. Am Ende haben Sie folgende Syntax:$ brew install PACKAGE

$ port install PACKAGE

Erinnern Sie sich daran, dass nicht alle Programme/Pakete, die für Linux oder BSD verfügbar sind, in MacOS Ports enthalten sind.

Kompatibilität

In Bezug auf die 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. Treiber, die für Linux geschrieben wurden, laufen nicht unter macOS und andersherum. Sie müssen vorher kompiliert werden; kurioserweise hat Linux eine Reihe von macOS-Daemons, einschließlich des CUPS-Druckservers!

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

Fazit

macOS und Linux haben ihre Ähnlichkeiten und Unterschiede, genau wie BSD im Vergleich zu Linux. Aber da sie auf UNIX basieren, haben sie gemeinsame Muster, die sie für die Umgebung vertraut machen. Diejenigen, die Linux verwenden und auf macOS umsteigen oder umgekehrt, werden mit einer Reihe von Befehlen und Funktionen vertraut sein.

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


Das Hosting von LinuxAndUbuntu wird von massiveGRID gesponsert