Hybridkern

Struktur des monolithischen Kernels, Mikrokernel und Hybrid-Kernel-basierte Betriebssysteme

A Hybridkern ist ein Betriebssystem Kernel Architektur, die versucht, Aspekte und Vorteile von zu kombinieren Mikrokernel und monolithischer Kernel Architekturen verwendet in Computer Betriebssysteme.[1][2]

Überblick

Die traditionellen Kernelkategorien sind Monolithische Kerne und Mikrokernel (mit Nanokernel und Exokernel als extremere Versionen von Mikrokernel angesehen). Die Kategorie "Hybrid" ist aufgrund der Ähnlichkeit von Hybridkernel und gewöhnlichen monolithischen Kerneln umstritten; Die Laufzeit wurde von entlassen von Linus Torvalds als einfaches Marketing.[3]

Die Idee hinter einem hybriden Kernel besteht darin, eine Kernelstruktur zu haben, die der eines Mikrokernels ähnelt, diese Struktur jedoch in der Art eines monolithischen Kernels implementiert. Im Gegensatz zu einem Mikrokernel sind alle (oder fast alle) Betriebssystemdienste in einem hybriden Kernel noch in Kernelraum. Es gibt keine der Zuverlässigkeitsvorteile von Dienstleistungen in Benutzerraumwie bei a Mikrokernel. Allerdings wie bei einem gewöhnlichen monolithischer KernelEs gibt keinen der Leistungsaufwand für Nachrichtenüberschreitungen und Kontextwechsel zwischen dem Kernel und dem Benutzermodus, der normalerweise mit a geliefert wird Mikrokernel.

Beispiele

NT Kernel

Die Architektur des Windows NT -Betriebssystems besteht aus zwei Schichten (Benutzermodus und Kernelmodus) mit vielen verschiedenen Modulen in beiden Schichten.

Ein herausragendes Beispiel für einen Hybridkern ist das Microsoft Fenster NT Kernel das versorgt alle Betriebssysteme in der Windows NT Familie, bis hin zu und einschließlich Windows 11 und Windows Server 2022und Kräfte Windows Phone 8, Windows Phone 8.1, und Xbox eins.

Windows NT war das erste Windows -Betriebssystem, das auf einem hybriden Kernel basiert. Der Hybridkern wurde als modifiziert gestaltet Mikrokernel, beeinflusst von der Mach Microkernel entwickelt von Richard Rashid an der Carnegie Mellon University, aber ohne alle Kriterien eines reinen Mikrokernels zu erfüllen. NT-basiertes Windows wird als Hybridkern (oder Macrokernel) eingestuft[4]) anstelle eines monolithischen Kernels, weil die Emulationssubsysteme in User-Mode-Serverprozessen ausgeführt werden, anstatt im Kernel-Modus wie in einem monolithischen Kernel und weiter aufgrund der großen Anzahl von Designzielen, die den Designzielen von Mach ähneln (insbesondere der Trennung von OS -Persönlichkeiten aus einem allgemeinen Kerneldesign). Umgekehrt ist der Grund, warum NT kein Mikrokernel -System ist Adressraum Wie der Kernel, wie es bei einem monolithischen Design der Fall wäre (in einem traditionellen monolithischen Design, würde es an sich kein Mikrokernel geben, aber der Kernel würde eine weitgehend ähnliche Funktionalität wie die Subsysteme von NTs Mikrokernel und Kernelmodus implementieren).

Die primäre Betriebssystempersönlichkeit unter Windows ist die Windows -API, was immer vorhanden ist. Das Emulationssubsystem, das die Windows -Persönlichkeit implementiert Client/Server -Laufzeit -Subsystem (csrs.exe). Bei Versionen von NT vor 4.0 enthielt dieser Subsystemprozess auch die Treiber für Fenstermanager, Grafikgeräte und Grafikgeräte. Aus den Leistungsgründen in Version 4.0 und später werden diese Module (die häufig auch auf monolithischen Systemen implementiert werden, insbesondere auf solchen ohne interne Grafikunterstützung) als Kernel-Modus-Subsystem.[4]

Anwendungen, die auf NT ausgeführt werden, werden in eine der OS -Persönlichkeiten (normalerweise die Windows -API) und nicht an die native NT -API geschrieben, für die die Dokumentation nicht öffentlich verfügbar ist (mit Ausnahme der Routinen, die in der Entwicklung von Gerätefahrern verwendet werden). Eine OS-Persönlichkeit wird über eine Reihe von Benutzer-Modi-DLLs implementiert (siehe Dynamische Link Bibliothek), die nach Bedarf in die Adressräume der Anwendungsprozesse zugeordnet werden, zusammen mit einem Emulations -Subsystem -Serverprozess (wie zuvor beschrieben). Anwendungen zugreifen auf Systemdienste zu, indem sie in die OS-Persönlichkeit in ihren Adressräumen aufrufen, die wiederum in die NT-Laufzeitbibliothek (ntdll.dll) aufrufen, ebenfalls in den Prozessadressraum zugeordnet sind. Die NT-Laufzeitbibliotheksdienste Diese Anfragen, indem Sie in den Kernel-Modus einfallen, um entweder Kernel-Mode-Exekutivroutinen aufzurufen oder zu machen Lokale Verfahrensanrufe (LPCS) zu den entsprechenden User-Modus-Subsystem-Serverprozessen, die wiederum die NT-API verwenden, um mit Anwendungsprozessen, den Kernel-Mode-Subsystemen und einander zu kommunizieren.[5]

Der Xnu -Kernel

Xnu Kernel

Xnu ist der Kernel das Apple Inc. erworben und entwickelt für die Verwendung in der Mac OS, iOS, Watchos, und tvos Betriebssysteme und freigegeben als Kostenlose und Open -Source -Software Im Rahmen des Darwin -Betriebssystem. Xnu ist ein Akronym zum X ist nicht Unix.[6]

Ursprünglich entwickelt von Nächste für die Nächster Schritt Das Betriebssystem war XNU ein Hybridkern, der Version 2.5 des Mach Kernel mit Komponenten von 4.3bsd und eine objektorientierte API für das Schreiben von Treibern namens Driver Kit.

Nachdem Apple als nächstes erworben wurde, wurde die Mach -Komponente auf OSFMK 7.3 aktualisiert.[7] Das ist ein Mikrokernel.[8] Apple verwendet ein stark modifiziertes OSFMK 7.3 als Hybridkernel mit Teilen von FreeBSD.[7] (OSFMK 7.3 enthält den geltenden Code von der University of Utah Mach 4 Kernel und den geltenden Code aus den vielen Mach 3.0 -Varianten, die gegabelt Aus dem ursprünglichen Carnegie Mellon University Mach 3.0 Kernel.) Die BSD -Komponenten wurden mit Code aus dem aktualisiert Freebsd Das Projekt und das Treiberkit wurden durch a ersetzt C ++ API Für das Schreiben von Fahrern namens I/O -Kit.

Beschreibung

Wie einige andere moderne Kerne, Xnu ist ein Hybrid, der Merkmale von beidem enthält monolithisch und Mikrokernelund versuchen, beider Technologien wie die beste Verwendung zu nutzen Nachrichtenübergang Fähigkeit von Mikrokernel, die eine größere Modularität und größere Teile des Betriebssystems ermöglichen, um davon zu profitieren geschützter Speichersowie die Geschwindigkeit der monolithischen Kerne bei bestimmten kritischen Aufgaben beibehalten.

Andere

Siehe auch

Anmerkungen

[11]

  1. ^ "Hybrid Kernel - Osdev Wiki". Wiki.osdev.org. Abgerufen 2021-01-11.
  2. ^ "Was ist Hybridkernel? - Definition von Techopedia". Techopedia.com. Abgerufen 2021-01-11.
  3. ^ "Linus Torvalds". Was das ganze "Hybrid -Kernel" -Ding betrifft - es ist nur Marketing.Es ist.
  4. ^ a b "MS Windows NT Kernel-Mode-Benutzer und GDI-Weißpapier". Microsoft Corporation. 2007. Abgerufen 2007-03-01.
  5. ^ Probert, Dave (2005). "Überblick über Windows Architecture". Verwendung von Projekten, die auf internen NT -APIs basieren, um Betriebssystemprinzipien zu vermitteln. Microsoft Research/Asien - Peking. Abgerufen 2007-03-01.
  6. ^ "Portierung von UNIX/Linux -Anwendungen nach OS X: Glossar". Apple Computer. 2005. Abgerufen 2017-06-16.
  7. ^ a b Jim Magee. WWDC 2000 Sitzung 106 - Mac OS X: Kernel. 14 Minuten in.
  8. ^ Douglas M. Wells. "Eine vertrauenswürdige, skalierbare Echtzeit-Betriebssystemumgebung" (PDF). S2CID 5205380. Archiviert von das Original (PDF) Am 2017-08-22. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  9. ^ Drew Major;Greg Minshall;Kyle Powell. "Ein Überblick über das NetWare -Betriebssystem".
  10. ^ "OS/2 Kernel". Abgerufen 2020-09-04.
  11. ^ WWDC 2000 Session 106 - Mac OS X: Kernel, von Jim Magee URL: [1]

Verweise