Microkernel: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Ein Mikrokernel, ist ein Betriebssystemkern, der im Gegensatz zu einem monolithischen Kernel nur grundlegende Funktionen erfüllt wie Speicher- und Prozessverwaltung | Ein Mikrokernel, ist ein Betriebssystemkern, der im Gegensatz zu einem monolithischen Kernel nur grundlegende Funktionen erfüllt wie Speicher- und Prozessverwaltung sowie Grundfunktionen zur Synchronisation und Kommunikation. Alle weiteren Funktionen werden als eigene Prozesse im Benutzer-Modus implementiert. | ||
==Vorteile== | |||
== Vorteile == | |||
Separierte Komponenten: | Separierte Komponenten: | ||
*Einzelne Bestandteile des Betriebssystems können beliebig ausgetauscht werden, ohne dass dadurch andere Teile beeinträchtigt werden | * Einzelne Bestandteile des Betriebssystems können beliebig ausgetauscht werden, ohne dass dadurch andere Teile beeinträchtigt werden | ||
*Absturz einer einzelnen Komponente führt nicht Zusammenbruch des Systems | * Absturz einer einzelnen Komponente führt nicht Zusammenbruch des Systems | ||
Treiber im Benutzer-Modus: | Treiber im Benutzer-Modus: | ||
*Die Gerätetreiber laufen zusammen mit einem Anwendungsprogramm im Benutzer-Modus | * Die Gerätetreiber laufen zusammen mit einem Anwendungsprogramm im Benutzer-Modus | ||
*Die Zugriffsrechte der Treiber können einzeln bestimmt werden | * Die Zugriffsrechte der Treiber können einzeln bestimmt werden | ||
*Gerätetreiber brauchen nicht im Kernel zu sein und sind meist so konzipiert, dass sie auch mit Benutzerrechten ausgeführt werden können | * Gerätetreiber brauchen nicht im Kernel zu sein und sind meist so konzipiert, dass sie auch mit Benutzerrechten ausgeführt werden können | ||
*Zur Treiber-Verwendung genügt es, als normaler Benutzer mit Zugriffsrechten auf die benötigte Hardware angemeldet zu sein | * Zur Treiber-Verwendung genügt es, als normaler Benutzer mit Zugriffsrechten auf die benötigte Hardware angemeldet zu sein | ||
*Es ist keine Änderung von Systemdateien oder ein Neustart des Systems nötig | * Es ist keine Änderung von Systemdateien oder ein Neustart des Systems nötig | ||
kleine Trusted Computing Base: | kleine Trusted Computing Base: | ||
*Der Kernel-Code, dem ein Nutzer vertrauen muss, ist im Vergleich zu monolithischen Betriebssystemen relativ klein und somit einfacher zu verifizieren. | * Der Kernel-Code, dem ein Nutzer vertrauen muss, ist im Vergleich zu monolithischen Betriebssystemen relativ klein und somit einfacher zu verifizieren. | ||
==Nachteile== | ==Nachteile== | ||
Geschwindigkeit: | Geschwindigkeit: | ||
*Da das auf dem Mikrokern laufende Betriebssystem aus vielen einzelnen Nutzer-Prozessen besteht, sind wesentlich mehr Kontextwechsel nötig als bei monolithischen Betriebssystemen | * Da das auf dem Mikrokern laufende Betriebssystem aus vielen einzelnen Nutzer-Prozessen besteht, sind wesentlich mehr Kontextwechsel nötig als bei monolithischen Betriebssystemen | ||
*Dadurch ist ein Mikrokern in der Regel langsamer als ein monolithischer | * Dadurch ist ein Mikrokern in der Regel langsamer als ein monolithischer | ||
Synchronisation: | Synchronisation: | ||
*Für die Leistung eines Mikrokern-Systems ist die Synchronisation der vielen Nutzer-Prozesse am wichtigsten | * Für die Leistung eines Mikrokern-Systems ist die Synchronisation der vielen Nutzer-Prozesse am wichtigsten | ||
*Die koordinierenden Kernel-Prozesse sind komplex und schwierig zu optimieren. | * Die koordinierenden Kernel-Prozesse sind komplex und schwierig zu optimieren. | ||
Hardware-Zugriff: | Hardware-Zugriff: | ||
*Betriebssystemaufrufe, wie physischer I/O-Zugriff, diesen ist direkte Zugriffe auf die Hardware aus Sicherheitsgründen untersagt und benötigen dadurch den Kernel-Modus. | * Betriebssystemaufrufe, wie physischer I/O-Zugriff, diesen ist direkte Zugriffe auf die Hardware aus Sicherheitsgründen untersagt und benötigen dadurch den Kernel-Modus. | ||
**Um das zu umgehen, können ausgewählte Module wie der I/O-Treiber im Kernel-Modus betrieben werden. | ** Um das zu umgehen, können ausgewählte Module wie der I/O-Treiber im Kernel-Modus betrieben werden. | ||
**Alternativ kann der Mikrokern um elementare I/O-Funktionen erweitert werden | ** Alternativ kann der Mikrokern um elementare I/O-Funktionen erweitert werden | ||
Beide Lösungen weichen das Mikrokern-Konzept auf. | Beide Lösungen weichen das Mikrokern-Konzept auf. | ||
==Bekannte Microkernel== | |||
*Mach | == Bekannte Microkernel == | ||
**GNU Mach | * Mach | ||
*Kernschnittstelle L4, Implementierungen: | ** GNU Mach | ||
**Fiasco | * Kernschnittstelle L4, Implementierungen: | ||
**L4Ka: :Pistachio | ** Fiasco | ||
**L4Ka: :Hazelnut | ** L4Ka: :Pistachio | ||
*Quark | ** L4Ka: :Hazelnut | ||
*KeyKOS, EROS, Coyotos | * Quark | ||
*Minix | * KeyKOS, EROS, Coyotos | ||
*Nucleus | * Minix | ||
* Nucleus | |||
==Betriebssysteme, die auf Mikrokernen aufsetzen== | ==Betriebssysteme, die auf Mikrokernen aufsetzen== | ||
*AmigaOS | * AmigaOS | ||
*Amoeba | * Amoeba | ||
*ChorusOS | * ChorusOS | ||
*GNU/Hurd | * GNU/Hurd | ||
*Google Fuchsia | * Google Fuchsia | ||
*Harmony OS | * Harmony OS | ||
*L4Linux | * L4Linux | ||
*Minix | * Minix | ||
*MkLinux | * MkLinux | ||
*MorphOS | * MorphOS | ||
*PC/GEOS | * PC/GEOS | ||
*PikeOS | * PikeOS | ||
*QNX Neutrino | * QNX Neutrino | ||
*SCIOPTA | * SCIOPTA | ||
*Singularity | * Singularity | ||
*Symbian OS | * Symbian OS | ||
*Symobi | * Symobi | ||
*Tru64 UNIX | * Tru64 UNIX | ||
*ENEA Ose | * ENEA Ose | ||
*ThreadX | * ThreadX | ||
[[ | [[Kategorie:Kernel/Architketur]] |
Aktuelle Version vom 1. August 2024, 09:31 Uhr
Ein Mikrokernel, ist ein Betriebssystemkern, der im Gegensatz zu einem monolithischen Kernel nur grundlegende Funktionen erfüllt wie Speicher- und Prozessverwaltung sowie Grundfunktionen zur Synchronisation und Kommunikation. Alle weiteren Funktionen werden als eigene Prozesse im Benutzer-Modus implementiert.
Vorteile
Separierte Komponenten:
- Einzelne Bestandteile des Betriebssystems können beliebig ausgetauscht werden, ohne dass dadurch andere Teile beeinträchtigt werden
- Absturz einer einzelnen Komponente führt nicht Zusammenbruch des Systems
Treiber im Benutzer-Modus:
- Die Gerätetreiber laufen zusammen mit einem Anwendungsprogramm im Benutzer-Modus
- Die Zugriffsrechte der Treiber können einzeln bestimmt werden
- Gerätetreiber brauchen nicht im Kernel zu sein und sind meist so konzipiert, dass sie auch mit Benutzerrechten ausgeführt werden können
- Zur Treiber-Verwendung genügt es, als normaler Benutzer mit Zugriffsrechten auf die benötigte Hardware angemeldet zu sein
- Es ist keine Änderung von Systemdateien oder ein Neustart des Systems nötig
kleine Trusted Computing Base:
- Der Kernel-Code, dem ein Nutzer vertrauen muss, ist im Vergleich zu monolithischen Betriebssystemen relativ klein und somit einfacher zu verifizieren.
Nachteile
Geschwindigkeit:
- Da das auf dem Mikrokern laufende Betriebssystem aus vielen einzelnen Nutzer-Prozessen besteht, sind wesentlich mehr Kontextwechsel nötig als bei monolithischen Betriebssystemen
- Dadurch ist ein Mikrokern in der Regel langsamer als ein monolithischer
Synchronisation:
- Für die Leistung eines Mikrokern-Systems ist die Synchronisation der vielen Nutzer-Prozesse am wichtigsten
- Die koordinierenden Kernel-Prozesse sind komplex und schwierig zu optimieren.
Hardware-Zugriff:
- Betriebssystemaufrufe, wie physischer I/O-Zugriff, diesen ist direkte Zugriffe auf die Hardware aus Sicherheitsgründen untersagt und benötigen dadurch den Kernel-Modus.
- Um das zu umgehen, können ausgewählte Module wie der I/O-Treiber im Kernel-Modus betrieben werden.
- Alternativ kann der Mikrokern um elementare I/O-Funktionen erweitert werden
Beide Lösungen weichen das Mikrokern-Konzept auf.
Bekannte Microkernel
- Mach
- GNU Mach
- Kernschnittstelle L4, Implementierungen:
- Fiasco
- L4Ka: :Pistachio
- L4Ka: :Hazelnut
- Quark
- KeyKOS, EROS, Coyotos
- Minix
- Nucleus
Betriebssysteme, die auf Mikrokernen aufsetzen
- AmigaOS
- Amoeba
- ChorusOS
- GNU/Hurd
- Google Fuchsia
- Harmony OS
- L4Linux
- Minix
- MkLinux
- MorphOS
- PC/GEOS
- PikeOS
- QNX Neutrino
- SCIOPTA
- Singularity
- Symbian OS
- Symobi
- Tru64 UNIX
- ENEA Ose
- ThreadX