Monolithischer Kernel: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
*UNIX System V und unixoide Systeme wie z. B.
*UNIX System V und unixoide Systeme wie z. B.
**BSD
**BSD
***macOS, iOS etc. (Hybridkernel)
***macOS, iOS etc.  
***FreeBSD
***FreeBSD
***OpenBSD
***OpenBSD
Zeile 19: Zeile 19:
**GNU/Linux
**GNU/Linux
***Android GNU/Linux-Kernel
***Android GNU/Linux-Kernel
*DOS: MS-DOS (und damit auch alle Endkonsumentenversionen von Windows bis einschließlich Windows ME, da diese MS-DOS als grundlegendes Betriebssystem verwenden), DR-DOS, PC DOS, FreeDOS …
*DOS: MS-DOS, DR-DOS, PC DOS, FreeDOS …
*OS/2
*OS/2
*SkyOS
*SkyOS

Version vom 12. Dezember 2019, 12:10 Uhr

Ein monolithischer Kernel ist ein Kernel, in dem nicht nur Funktionen zu Speicher- und Prozessverwaltung und zur Kommunikation zwischen den Prozessen, sondern auch Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind.

  • Für die Treiber werden keine zusätzlichen Programme benötigt, ein Geschwindigkeitsvorteil gegenüber einem Mikrokernel.
  • Solche Kernel sind aber fehleranfälliger, da Teile die abgestürzt sind nicht einfach neu gestartet werden können, und den Absturz des gesamten Systems verursachen können.

Die Möglichkeit hardwarespezifischen Funktionen von den allgemeinen zu trennt (Durch Module) wird oft durch ein geschicktes internes Abstraktionsmodell umgesetzt um auch in einer monolithischen Kernelarchitektur ein Maximum an Programmübertragbarkeit auf andere Hardwareplattformen zu erreichen.

Vorteile

  • Da die gesamten Betriebssystemfunktionen im Kernel-Modus ablaufen, wird der zeit- und rechenaufwändige Wechsel zwischen den Ringen des Protected Mode minimal gehalten.
  • Die Zuverlässigkeit wichtiger Funktionen des Betriebssystems (wie Speicherverwaltung) ist nicht direkt vom Verhalten der Userprogramme abhängig und muss nicht in diese abgebildet werden (Stichwort: Dynamischer Speicher).
  • Es entfällt eine aufwändige Kommunikation zwischen den einzelnen Teilen des Betriebssystems. Dadurch werden Probleme vermieden, die beim weiteren Aufteilen der Betriebssystemfunktionalitäten entstehen.

Nachteile

  • Das Auswechseln von Funktionalitäten muss durch eine geschickte Verwaltung (beispielsweise durch Module) erfolgen.
  • Bei Änderungen ist es normalerweise notwendig, den ganzen Kernel neu zu übersetzen. Teilweise gibt es jedoch auch Möglichkeiten, nur einzelne Module zu kompilieren.

Betriebssysteme, die auf monolithischen Kernen aufsetzen

  • UNIX System V und unixoide Systeme wie z. B.
    • BSD
      • macOS, iOS etc.
      • FreeBSD
      • OpenBSD
      • NetBSD
    • GNU/Linux
      • Android GNU/Linux-Kernel
  • DOS: MS-DOS, DR-DOS, PC DOS, FreeDOS …
  • OS/2
  • SkyOS
  • OpenVMS
  • Windows CE 6.0