Kernel — Änderungen 5638 → 5791

Zeile 14: Zeile 14:
  
 
=== Monolithischer Kernel ===
 
=== Monolithischer Kernel ===
−
Als monolithischen Kernel bezeichnet man einen Betriebssystemkernel, der nicht nur die typischen Aufgaben eines solchen durchführt, sondern auch gleich [[Treiber]] für [[:Kategorie:Hardware | Hardware]] und andere Funktionen mit sich bringt.
+
Als monolithischen Kernel bezeichnet man einen Betriebssystemkernel, der nicht nur die typischen Aufgaben eines solchen durchführt, sondern auch gleich Treiber für [[:Kategorie:Hardware | Hardware]] und andere Funktionen mit sich bringt.
−
Dadurch müssen nicht erst [[Treiber]] oder Module nachgeladen werden und auch eine Schnittstelle ist nicht erforderlich, was einen deutlichen Geschwindigkeitsvorteil mit sich bringt. Jedoch ist ein solcher Kernel nicht nur unflexibler, sondern auch deutlich fehleranfälliger und abgestürzte Module können nicht ohne weiteres neu gestartet werden. Außerdem macht die fehlende Hardwareabstraktion den Kernel schwieriger zu entwickeln, wenn er nicht Mechanismen wie genormte Treiberinterfaces oder Ähnliches anbietet. Der [[Linux]]kernel ist ein Monolithischer Kernel.
+
Dadurch müssen nicht erst Treiber oder Module nachgeladen werden und auch eine Schnittstelle ist nicht erforderlich, was einen deutlichen Geschwindigkeitsvorteil mit sich bringt. Jedoch ist ein solcher Kernel nicht nur unflexibler, sondern auch deutlich fehleranfälliger und abgestürzte Module können nicht ohne weiteres neu gestartet werden. Außerdem macht die fehlende Hardwareabstraktion den Kernel schwieriger zu entwickeln, wenn er nicht Mechanismen wie genormte Treiberinterfaces oder Ähnliches anbietet. Der Linuxkernel ist ein Monolithischer Kernel.
 
==== Diagramm zum Veranschaulichen ====
 
==== Diagramm zum Veranschaulichen ====
 
Dieses Diagramm zeigt den groben Aufbau eines monolitschen Kernels.<br>
 
Dieses Diagramm zeigt den groben Aufbau eines monolitschen Kernels.<br>
Zeile 28: Zeile 28:
 
http://be59.be.funpic.de/Lowlevel/mikrokernel_klein.png
 
http://be59.be.funpic.de/Lowlevel/mikrokernel_klein.png
 
=== [[Exokernel]] ===
 
=== [[Exokernel]] ===
−
Der Exokernel ist eine Unterart des Mikrokernel. Bei ein Exokernel liegt die [[HAL]] in Biblitoheken, die vom Programm eingebunden werden können. Jedoch kann das Programm genau so gut selbst auf die Hardware zugreifen. Der Vorteil ist damit höhere Flexibilität für den Programmierer, und die bessere Möglichkeit, ein anderes System und dessen API durch eine spezielle Bibliothek zu emulieren.
+
Der Exokernel ist eine Unterart des Mikrokernel. Bei ein Exokernel liegt die HAL in Biblitoheken, die vom Programm eingebunden werden können. Jedoch kann das Programm genau so gut selbst auf die Hardware zugreifen. Der Vorteil ist damit höhere Flexibilität für den Programmierer, und die bessere Möglichkeit, ein anderes System und dessen API durch eine spezielle Bibliothek zu emulieren.
  
 
Ein Beispiel für einen Exokernel ist das [http://pdos.csail.mit.edu/exo/ xok]-System vom MIT.
 
Ein Beispiel für einen Exokernel ist das [http://pdos.csail.mit.edu/exo/ xok]-System vom MIT.