- Mikrokern
-
Ein Mikrokernel bezeichnet einen Betriebssystemkern. Der Mikrokernel verfügt im Gegensatz zu einem monolithischen Kernel nur über grundlegende Funktionen – in der Regel lediglich Funktionen zur Speicher- und Prozessverwaltung, sowie Grundfunktionen zur Synchronisation und Kommunikation. Alle weiteren Funktionen werden als eigene Prozesse (Server), die mit den nachfragenden Programmen (Client) kommunizieren, oder als Programmbibliothek, welche von den nachfragenden Programmen eingebunden wird, im Benutzer-Modus implementiert.
Mikrokernel sind besonders geeignet zur Implementierung verteilter Betriebssysteme, da die Betriebssystem-Komponenten ausgelagert werden können.
Inhaltsverzeichnis
Entwicklung
Durch die schlechte Leistung einiger früherer Implementierungen haben Mikrokernel den Ruf, eher langsam und unübersichtlich zu sein.
Jedoch gibt es inzwischen Kernel, die durch Abbau weiterer Funktionalität, aber auch durch starke Optimierung (z. T. mit Verlust der Portabilität) einen hohen Datendurchsatz erreichen und so an Interesse gewinnen. So arbeitet L4 lediglich mit zehn Befehlen.
Auf der PowerPC-Architektur sind extrem leistungsfähige Mikrokernel realisierbar, da hier die Kontextwechsel wesentlich schneller durchgeführt werden können als auf älteren Architekturen wie etwa x86.
Vorteile
- Separierte Komponenten
- Einzelne Bestandteile des Betriebssystems können beliebig ausgetauscht werden, ohne dass dadurch andere Teile beeinträchtigt werden. Ein klares Schnittstellen-Design hilft dabei. Der Absturz einer einzelnen Komponente führt nicht zwangsläufig zum Zusammenbruch des gesamten Systems.
- Treiber im Benutzer-Modus
- Die Gerätetreiber laufen zusammen mit einem Anwendungsprogramm im Benutzer-Modus – im Gegensatz zu Monolithischen Kerneln, bei denen alle Treiber im privilegierten Modus laufen. Dies hat den Vorteil, dass die Zugriffsrechte der Treiber einzeln bestimmt werden können.
- Gerätetreiber müssen nicht im Kernel sein und sind meist so konzipiert, dass sie auch mit Benutzerrechten (im Gegensatz zu root oder gar im Kernel) ausgeführt werden können. Gleiches gilt für Dateisystem-Treiber etc., sodass z. B. FTP und WebDAV direkt auf Dateisystem-Ebene implementiert werden können, ohne das Sicherheitsrisiko zu erhöhen, d. h. ein Server lässt sich genauso benutzen wie ein lokales Verzeichnis, von allen Anwendungen aus.
- Zur Treiber-Verwendung genügt es, als normaler Benutzer mit Zugriffsrechten auf die benötigte Hardware angemeldet zu sein. Es ist keine Änderung von Systemdateien oder ein Neustart des Systems nötig. Auch können problemlos Services laufen gelassen werden, die z. B. unter Linux eine Installation in den Kernel, mit root-Rechten und speziell für diesen Kernel kompiliert, erfordern würden.
- kleine Trusted Computing Base
- Der Kern-Code, dem ein Nutzer vertrauen muss, ist im Vergleich zu monolithischen Betriebssystemen relativ klein und somit einfacher zu verifizieren.
Nachteile
- Geschwindigkeit
- Da das auf dem Mikrokern laufende Betriebssystem aus vielen einzelnen Nutzer-Prozessen besteht, sind wesentlich mehr Kontextwechsel nötig als bei monolithischen Betriebssystemen.
- Dadurch ist ein Mikrokern in der Regel langsamer als ein monolithischer. Für L4 wurde allerdings nachgewiesen, dass L4Linux nur geringfügig langsamer ist als Linux.
- Synchronisation
- Für die Leistung eines Mikrokern-Systems ist die Synchronisation der vielen Nutzer-Prozesse von zentraler Bedeutung. Die koordinierenden Kernel-Prozesse sind komplex und verhältnismäßig schwierig zu optimieren.
- Hardware-Zugriff
- Einige Betriebssystemaufrufe, wie etwa physischer I/O-Zugriff, sind ohne privilegierten Kernel-Modus schwierig zu realisieren. Um das zu umgehen, können ausgewählte Module wie der I/O-Treiber im Kernel-Modus betrieben werden. Alternativ kann der Mikrokernel um elementare I/O-Funktionen erweitert werden, die den Kernel-Modus erfordern. Auf diese Funktionen darf nur der I/O-Treiber zugreifen, der im Benutzer-Modus Mechanismen wie Authorisation implementiert. Beide Lösungen weichen das Mikrokernel-Konzept auf.
Bekannte Mikrokernel
- Mach
- Kernschnittstelle L4, Implementierungen:
- Fiasco
- L4Ka::Pistachio
- L4Ka::Hazelnut
- Quark
- KeyKOS, EROS, Coyotos
- Minix
- Nucleus
Betriebssysteme, die auf Mikrokerneln aufsetzen
- AmigaOS
- Amoeba
- ChorusOS
- GNU/Hurd
- L4Linux
- Minix
- MkLinux
- MorphOS
- Mona
- PC/GEOS
- PikeOS
- QNX Neutrino
- Singularity
- Symbian OS
- Symobi (verwendet den Sphere Mikrokern)
- Tru64
- ThreadX
Windows NT ist, auch wenn dies oftmals fälschlicherweise behauptet wird, kein Microkernelsystem. Es gehört zur Gruppe der Hybridkernel. Andrew Tanenbaum schreibt hierzu: „Windows NT 3.1 war ein halbherziger Versuch eines Microkernelsystems, aber es wurde nicht richtig gemacht und die Leistung war nicht gut genug auf der Hardware der frühen 1990er Jahre, darum gab man die Idee für eine Weile auf.“[1]
Auch der Darwin-Kernel von OSX ist ein Hybridkernel.
Einzelnachweise
- ↑ „Windows NT 3.1 was a half-hearted attempt at a microkernel system, but it wasn’t done right and the performance wasn't good enough on the hardware of the early 1990s, so it gave up on the idea for a while.“ http://www.cs.vu.nl/~ast/reliable-os/
Schlagen Sie auch in anderen Wörterbüchern nach:
Mikrokern — ⇒ Kerndualismus … Deutsch wörterbuch der biologie
Mikrokern-Test — Der Mikrokern Test ist ein Test zum Aufdecken von Chromosomenschäden (Chromosomenbruch bzw. klastogener Effekt) und Schäden des Spindelapparates (aneugener Effekt) an sich teilenden Säugetierzellen, der an den lebenden Zellen (in vivo)… … Deutsch Wikipedia
L4 (Mikrokern) — L4 ist der Name einer Familie von Mikrokernen, basierend auf Konzepten und ersten erfolgreichen Implementierungen von Jochen Liedtke (daher L4). Inhaltsverzeichnis 1 Entwicklung 2 Applikationen 3 Besondere Merkmale … Deutsch Wikipedia
Microkernel — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Ein Mikrokernel (oder auch Mikrokern) bezeichnet einen… … Deutsch Wikipedia
Mikrokernel — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Ein Mikrokernel (oder auch Mikrokern) bezeichnet einen… … Deutsch Wikipedia
Kerndimorphismus — Kerndimorphismus, Kerndualismus, gleichzeitige Ausbildung von Mikrokern und Makrokern bei Ciliaten und einigen Foraminiferen. Bei Ciliaten steuert der polyploide Makrokern (somatischer Kern) den Zellstoffwechsel, während im diploiden Mikrokern… … Deutsch wörterbuch der biologie
Exokernel — Ein Exokernel, auch als vertikal strukturiertes Betriebssystem bezeichnet, ist eine Art von Kernel und damit der zentrale Bestandteil eines Betriebssystems. Seine Hauptfunktion besteht darin, Ressourcenkonflikte zu verhindern und Zugriffsrechte… … Deutsch Wikipedia
GNU Hurd — Bildschirmfoto … Deutsch Wikipedia
Hybridkernel — Ein Hybridkernel (oder auch Makrokernel) ist ein Kompromiss zwischen einem Mikrokernel und einem monolithischen Kernel, bei dem aus Geschwindigkeitsgründen einige Teile von monolithischen Kerneln in den Kern integriert und deswegen kein reiner… … Deutsch Wikipedia
L3 (Microkernel) — L3 ist ein Mikrokernel Betriebssystem auf Intel x86 Basis. Entworfen wurde es als very lean and features fast, message based, synchronous IPC, simple to use external paging mechanisms and a security mechanism based on secure domains (tasks, clans … Deutsch Wikipedia