Microkernel: Unterschied zwischen den Versionen

Aus Foxwiki
KKeine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(5 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, sowie Grundfunktionen zur Synchronisation und Kommunikation. Alle weiteren Funktionen werden als eigene Prozesse im Benutzer-Modus implementiert.
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


[[Category:Betriebssysteme]]
[[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