Monolithischer Kernel: Unterschied zwischen den Versionen

Aus Foxwiki
Jeremyehmke (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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.
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.
* Für die Treiber werden keine zusätzlichen Programme benötigt, ein Geschwindigkeitsvorteil gegenüber einem Mikrokernel.
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.
* 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==
==Vorteile==
*Da die gesamten Betriebssystemfunktionen im Kernel-Modus ablaufen, wird der zeit- und rechenaufwändige Wechsel zwischen den Ringen des Protected Mode minimal gehalten.
*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).
*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.
*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==
==Nachteile==
*Das Auswechseln von Funktionalitäten muss durch eine geschickte Verwaltung (beispielsweise durch Module) erfolgen.
*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.
*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==
==Betriebssysteme, die auf monolithischen Kernen aufsetzen==
*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 24:
**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
*OpenVMS
*OpenVMS
*Windows CE 6.0
*Windows CE 6.0
[[ Category : Linux ]]
 
[[ Category : LPIC101 ]]
[[Kategorie:Kernel/Architketur]]

Aktuelle Version vom 1. August 2024, 09:31 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