Betriebssysteme · Institut für Systemarchitektur · Fakultät Informatik · TU Dresden

Sichere mikrokernbasierte Systemarchitektur (µSINA)




Mikro-SINA FAQ

Christian Helmuth, Norman Feske


1 FAQ

1.1 Was ist ein Mikrokern?

Im Vergleich zu monolithischen Betriebssystemkernen sind Mikrokerne hinsichtlich ihrer Komplexität minimiert und implementieren nur Mechanismen, die zwingend im Kernmodus ausgeführt werden müssen. Alle weiteren Funktionen werden in Server außerhalb des Kerns ausgelagert.

1.2 Was ist ein Mikrokern 2. Generation?

Mikrokerne der 1. Generation wurden mit Ziel entwickelt UNIX durch einen flexibleren Ansatz zu ersetzen. Sie wurden von den damals bestehenden monolithischen Kernen abgeleitet, sollten aber eine kompatible Schnittstelle bieten.

Die Leistung der ersten Entwicklungen war aber weitaus schlechter als erwartet. Da man annahm, die Auslagerung von Diensten in Server sei dafür verantwortlich, wurden immer mehr Funktionen in den Kern reintegriert. Der Mikrokernansatz setzte sich aufgrund schlechter Leistung nicht durch.

Eine genaue Analyse der Gründe für die Leistungseinbußen zeigte, dass die Nutzer/Kernmodus- und Adressraum-Umschaltung nicht für diese verantwortlich sind. Es zeigte sich, dass vielmehr Fehler im Design der Kerne besonders durch die Ableitung von bestehenden monolithischen Systemen für ... verantwortlich sind.

Enscheidende Faktoren für die Leistung sind der Kommunikationsmechanismus (IPC) und der Verzicht auf Policy im Mikrokern, so dass feingranulare IPC verwendet werden kann und eine auf das aktuelle System zugeschnittene Politik unabhängig vom Kern implementiert werden kann.

Mikrokerne der 2. Generation wie L4 und Exokernel bieten ein Minimum nötiger Abstraktionen.

1.3 Was ist L4?

L4 ist eine Mikrokern-Schnittstelle eines Mikrokerns der zweiten Generation

Die L4-Kernschnittstelle besteht aus nur 7 Systemaufrufen

  • zum Erzeugen von Aktivitäten,

  • zum Verwalten von Adressräumen und

  • zur Inter-Adressraum-Kommunikation

Es gibt mehrere Implementationen der L4 Kernschnittstelle (z.B. Fiasco, Hazelnut, und Pistacio) auf verschiedenen Hardware-Plattformen (z.B. IA32, IA64, MIPS, ARM).

1.4 Was ist Fiasco?

Fiasco ist eine Implementation der L4 Kernschnittstelle auf Standardhardware. Der an der TU Dresden entwickelte Kern bietet durch seine Unterbrechbarkeit sehr gute Echtzeiteigenschaften. Er dient als Grundlage für das Dresden Real-Time Operating System (DROPS) der TU Dresden.

1.5 Was ist VFiasco?

VFiasco steht für "Verified Fiasco" und ist ein Projekt mit dem Ziel, besonders wichtige Eigenschaften des Fiasco-Kerns auf Quelltextebene zu beweisen.

1.6 Was ist ein Mikrokern-Server?

Ein Mikrokern-Server ist ein Task, welcher eine IPC-Schnittstelle anbietet. Alle Systemkomponenten sind auf diese Weise realisiert und kommunizieren über ihre klar definieren IPC Schnittstellen.

1.7 Welche Server werden neben dem Mikrokern für ein minimales System benötigt?

  • rmgr - Verwaltung von physischem Speicher, Interrupts, Tasks und kleinen Adressräumen sowie das Starten des Mikrokerns und Laden weiterer L4-Server.

  • log - Logging-Ausgaben

  • names - Verwaltung eines Namensraumes zur Etablierung von Kommunikationsbeziehungen

  • dm_phys - Speichermanagement

  • l4io - Zugriff auf Geräte

1.8 Was wird an der TU-Dresden entwickelt?

Fiasco Mikrokern

L4 Environment Infrastruktur zur Realisierung von Anwendungen auf L4-Basis

L4Linux eine Portierung des Linux-Kerns auf den L4-Mikrokern

DICE IDL-Compiler zur automatischen Generierung von IPC-Schnittstellen aus IDL (Interface Description Language) Spezifikationen

DDE Linux (Driver Development Environment) Laufzeitumgebung zur Nutzung von Linux-Gerätetreibern unter L4

FLIPS (Flexible IP-Stack) Portierung des IP-Stacks von Linux-2.4 als L4-Task

OshKosh echtzeitfähige Netzwerkgerätetreiber

DOpE echtzeitfähiges und minimalistisches Fenstersystem


1.9 Für welche Anwendungsfelder eignen sich Mikrokerne besonders gut?

Sicherheit

Aufgrund des gegenseitig isolierten Ablaufs aller Systemkomponenten können sich Fehler einer Komponente nicht zerstörerisch auf andere Systemkomponenten auswirken. Alle Teilkomponenten können als abgeschlossene funktionale Einheiten mit klar definierten Schnittstellen betrachtet und evaluiert werden. Da Kommunikation zwischen Systemkomponenten nur explizit durch den Kern vollzogen wird, kann unerlaubte Kommunikation zwischen Komponenten durch den Kern verhindert werden.

Echtzeit

Die gute Unterbrechbarkeit - vor allem des Fiasco Mikrokerns - ermöglicht den gleichzeitigen Ablauf zeitkritischer Anwendungen, denen Zeitzusagen gewährt werden können, und zeitunkritischen Anwendungen zur Nutzung verbleibender Ressourcen.

1.10 Welche Beispiele für den praktischen Einsatz von Mikrokernen gibt es?

  • DROPS auf L4-Basis

  • MacOS X auf der Basis des Mach-Mikrokerns

  • QNX

2 Referenzen

  1. Liedtke, J. "Toward Real Microkernels"

  2. WWW-Seite des Mikro-SINA-Projektes: http://os.inf.tu-dresden.de/mikrosina



Christian Helmuth, Norman Feske
Christian Helmuth, http://os.inf.tu-dresden.de/~ch12/
10. Oct 2003
· Copyright © 2001-2022 Operating Systems Group, TU Dresden | Impressum ·