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

Was ist der Unterschied zwischen macOS- und Linux-Kernels

Einige Leute denken vielleicht, dass es Ähnlichkeiten zwischen dem macOS- und dem Linux-Kernel gibt, weil sie mit ähnlichen Befehlen und ähnlicher Software umgehen können. Einige Leute denken sogar, dass Apples macOS auf Linux basiert. Die Wahrheit ist, dass beide Kernel sehr unterschiedliche Geschichten und Merkmale haben. Heute werfen wir einen Blick auf den Unterschied zwischen macOS- und Linux-Kernels.

Geschichte des macOS-Kernels

Wir beginnen mit der Geschichte des macOS-Kernels. 1985 verließ Steve Jobs Apple aufgrund eines Streits mit CEO John Sculley und dem Apple-Vorstand. Anschließend gründete er eine neue Computerfirma namens NeXT. Jobs wollte schnell einen neuen Computer (mit einem neuen Betriebssystem) auf den Markt bringen. Um Zeit zu sparen, verwendete das NeXT-Team den Mach-Kernel von Carnegie Mellon 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 noch bei Apple. In der Zwischenzeit hatte Apple mehrfach erfolglos versucht, sein Betriebssystem zu aktualisieren, und ging sogar so weit, eine Partnerschaft mit IBM einzugehen. 1997 kaufte Apple NeXT für 429 Millionen Dollar. Als Teil des Deals kehrte Steve Jobs zu Apple zurück und NeXTSTEP wurde zur Grundlage von macOS und iOS.

Geschichte des Linux-Kernels

Im Gegensatz zum macOS-Kernel wurde Linux nicht als Teil eines kommerziellen Unterfangens entwickelt. Stattdessen wurde es 1991 vom finnischen Informatikstudenten Linus Torvalds erstellt. Ursprünglich wurde der Kernel nach den Spezifikationen von Linus’ Computer geschrieben, weil er dessen neuen 80386-Prozessor nutzen wollte. Linus veröffentlichte den Code für seinen neuen Kernel im August 1991 im Usenet. Bald erhielt er Code- und Feature-Vorschläge aus der ganzen Welt. Im folgenden Jahr portierte Orest Zborowski das X-Window-System auf Linux und gab ihm die Möglichkeit, eine grafische Benutzeroberfläche zu unterstützen.

In den letzten 27 Jahren ist Linux langsam gewachsen und hat an Funktionen gewonnen. Es ist kein studentisches Kleinprojekt mehr. Jetzt betreibt es die meisten Computergeräte der Welt und die Supercomputer der Welt. Nicht zu schäbig.

Funktionen des macOS-Kernels

Der macOS-Kernel ist offiziell als XNU bekannt. Das Akronym steht für „XNU is Not Unix“. Laut Apples Github-Seite ist XNU „ein hybrider Kernel, der den an der Carnegie Mellon University entwickelten Mach-Kernel mit Komponenten von FreeBSD und der C++-API zum Schreiben von Treibern kombiniert“. Der BSD-Subsystemteil des Codes ist „typischerweise als User-Space-Server in Mikrokernel-Systemen implementiert“. Der Mach-Teil ist für Arbeiten auf niedriger Ebene verantwortlich, wie Multitasking, geschützter Speicher, Verwaltung des virtuellen Speichers, Kernel-Debugging-Unterstützung und Konsolen-I/O.

Funktionen des Linux-Kernels

Während der macOS-Kernel die Eigenschaften eines Mikrokernels (Mach) und eines monolithischen Kernels (BSD) kombiniert, ist Linux ausschließlich ein monolithischer Kernel. Ein monolithischer Kernel ist für die Verwaltung von CPU, Speicher, Kommunikation zwischen Prozessen, Gerätetreibern, Dateisystem und Systemserveraufrufen verantwortlich.

Unterschied zwischen Mac- und Linux-Kernel in einer Zeile

Der macOS-Kernel (XNU) gibt es schon länger als Linux und basierte auf einer Kombination aus zwei noch älteren Codebasen. Andererseits ist Linux neuer, von Grund auf neu geschrieben und wird auf viel mehr Geräten verwendet.

Falls Sie diesen Artikel interessant fanden, nehmen Sie sich bitte eine Minute Zeit, um ihn auf Social Media, Hacker News oder Reddit zu teilen.



Linux
  1. Was ist der Unterschied zwischen einem Linux-Container und einem Image?

  2. Linux – Unterschied zwischen User Space und Kernel Space?

  3. Was ist der Unterschied zwischen dem Befehl „locate“ und „find“ in Linux?

  4. Was ist der Unterschied zwischen module_init und init_module in einem Linux-Kernel-Modul?

  5. Was ist der Unterschied zwischen env und set (unter Mac OS X oder Linux)?

Was ist der Unterschied zwischen InnoDB und MyISAM?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Rsync und BTRFS unter Linux?

Was ist der Unterschied zwischen Unix, Linux, BSD und GNU?

Was ist der Unterschied zwischen partx und kpartx?

Was ist der Unterschied zwischen unlink und rm?