Left Up Right Betriebssysteme

Kern eines Betriebssystems

Der Kern bezeichnet den Teil des Betriebssysteme, der die gemeinsame und erzwungene Basis der restlichen Software ist. Bei der μ-Kernarchitektur wird dieser Teil minimiert [Liedtke1995]

Der Kern implementiert die Grundabstraktionen, die das Betriebssystem bietet, also z.B bei UNIX Dateien und Prozesse und bietet ein Sicherheitsmodell.

Der Kern hat direkten Zugriff auf die Hardware, schirmt diese aber von den Anwendungen ab. Anwendungsprozesse rufen über Systemcalls Dienste des Kerns ab.

Wir unterscheiden:

Userlevel
System/Kern-Level
Kernprogrammierung ist sehr aufwendig, und fehleranfällig, da Aus diesem Grunde versucht man den Kern möglichst klein zu halten.

Linux

Sonstiges

Moderne Entwicklung

Die Trennung zwischen Kern- und Userlevel kostet natürlich Performance, da bei einem Systemaufruf ein Kontextwechsel zwischen diesen Adressräumen gemacht werden muß.

Andererseits ist die Kernprogrammierung schwierig (Nebenläufigkeiten, keine Abstraktionen, Werkzeugnutzung erschwert, bei einem Fehler kommt das System komplett zu erliegen) und dazu sicherheitsproblematisch, daher versucht man die Kerne klein zu halten.

Moderne Betriebssyteme teilen sich in 3 Gruppen auf:

monolitische Systeme
der Kern ist groß aber performant
Exo-Kern-Systeme
Verscheidene Nutzer bekommen einen virtuellen Clone des Rechners,
aber nur einen Teil der Betriebsmittel. Der Exokern teilt den Rechner auf und kontrolliert die korrekte Nutzung.
Klein/Microkern-Systeme
Der Kern ist auf ein Minimum begrenzt. Möglichst viel wird von User-level-Servern erledigt.
Nach Flops gibt es wieder Hoffnung.

Baukasten für Kerne

OsKit
Es besteht auch mit einer tollen Bibliothek die Möglichkeit, spezielle Anwendungen zu bauen, die gar keinen Kern haben (oder natürlich Kerne zu bauen). Man kann auch damit virtuelle Maschinen bauen, die das Laufzeitsystem einer Programmiersprache darstellen. Java ist ein Kandidat dafür oder auch eine Funktionale Sprache
THINK
Think-OSkit-Vergleich IMMDIV Uni Erlangen

Ideen zur Kernentwicklung

Kerne im User-Mode starten


Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber