|
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
-
Liedtke, J. "Toward Real Microkernels"
-
WWW-Seite des Mikro-SINA-Projektes:
http://os.inf.tu-dresden.de/mikrosina
Christian Helmuth, Norman Feske
|
|