L4 (Mikrokernel) - LinkFang.de





L4 (Mikrokernel)


L4 ist der Name einer Familie von Mikrokerneln, basierend auf Konzepten und ersten erfolgreichen Implementierungen von Jochen Liedtke (daher L4).

Entwicklung

Der erste L4-Kernel wurde von Liedtke am GMD-Forschungszentrum Informationstechnik (GMD) entwickelt, bezeichnet als "Schnittstellenversion 2". Während seines Aufenthalts am IBM Thomas J. Watson Research Center in Hawthorne experimentierte er mit diversen Aspekten der Kernel-Schnittstelle (Version X). Dies führte nach seinem Umzug an die Uni Karlsruhe zu mehreren vollständigen Neuimplementierungen. Parallel dazu erfolgten Implementierungen an der TU Dresden und der University of New South Wales (UNSW). L4 bezeichnet somit heute eine Familie von Kerneln mit unterschiedlichen, aber verwandten Schnittstellen und Implementierungen.

Die Entwicklungslinie basiert auf L1, einem von Liedtke konzipierten Interpreter für eine Teilmenge von Algol 60 auf einem 8-Bit-Rechner mit 4 KB Hauptspeicher. 1979 wurde L2 (Extendable Multiuser Microprocessor ELAN-System, kurz „Eumel“) freigegeben, eine zunächst auf 8 Bit, dann auf 16 Bit ausgelegte Assembler-Implementierung auf Intel-x86-Basis, die auch nach Japan transferiert wurde. 1988 entwickelte Liedtke am GMD das 32-Bit-System L3, welches auf neuen Intel-Plattformen bis heute produktiv beim TÜV Süd im Einsatz ist.

Versionen und Anwendungsgebiete

Mit L4 wird heute sowohl das API als auch die Implementierung bezeichnet. Die erste stabile und veröffentlichte Version war V2, implementiert von Liedtke in Assembler auf i486 und Pentium. Diese wurde später von der TU Dresden unter dem Namen "Fiasco" in C++ auf Intel-Pentium umgesetzt und von der University of New South Wales (UNSW) unter dem Namen "C/Assembler Kerneln" portiert auf die MIPS-Architektur (MIPS64) und den Alpha-Prozessor. Bei IBM entwickelte Liedtke die Assembler-Implementierung als Version X weiter, gefolgt in Karlsruhe von einer C-Implementierung namens "Hazlenut (Version X.1)", ursprünglich auf Pentium, später portiert auf ARM. Nach Liedtkes Tod (2001) entstand daraus Anfang 2002 in Karlsruhe die Version X.2 (aus der später mit leichten Änderungen die Version 4 wurde), implementiert in C++ unter dem Namen "Pistachio". Pistachio wurde parallel auf x86 und PowerPC-32 implementiert und leicht zeitverschoben auch auf Itanium portiert, jedoch nie vervollständigt. Pistachio wurde an der UNSW auf MIPS, Alpha und ARM portiert (eine SPARC-Version wurde nie abgeschlossen). In Dresden wurde API Version 4 in Fiasco implementiert.

Das australische IKT-Forschungszentrum NICTA entwickelte, basierend auf V4, eine speziell auf eingebettete Systeme zugeschnittene Version namens NICTA-embedded, implementiert als NICTA::Pistachio-embedded. Diese wurde schließlich von der NICTA-Ausgründung Open Kernel Labs als OKL4[1] weiterentwickelt und vermarktet, speziell im Mobilfunkbereich.

Seit 2004 entwickelte NICTA eine Version unter dem Namen seL4[2] (secure embedded L4), die speziell auf sicherheitskritische Anwendungen im eingebetteten Bereich zielt. In "seL4" werden Objektreferenzen und Zugriffsrechte ausschließlich durch sogenannte Fähigkeiten ("capabilities") repräsentiert, und Kernel-Ressourcen unterliegen denselben Zugriffsmechanismen wie Nutzerobjekte. Im Juli 2014 veröffentlichten die Hersteller General Dynamics C4 Systems und NICTA den Quellcode von seL4 als Open Source unter GNU General Public License GPLv2-Lizenz. Bibliotheken sowie Userland-Tools veröffentlichten die Hersteller unter der BSD-Lizenz.[3]

Einige Grundkonzepte von L4 werden in der Luftfahrtindustrie eingesetzt. Bei Anwendungen im Airbus A400M sowie im Airbus A350 wird, basierend auf dem PikeOS-Mikrokernel, die Partitionierung von sicherheitskritischen Anwendungen auf eingebetteten Systemen sichergestellt.

Besondere Merkmale

Kernel, die auf dem L4-API basieren, bieten eine synchrone IPC (Interprozesskommunikation), einfaches Interrupt- und Threadmanagement sowie eine einfache, externe Speicherverwaltung.

Auf L4 können, dem modularen Prinzip des Mikrokernels folgend, graphische Nutzeroberflächen (wie DOpE), der Linux-Kernel im Nutzermodus (L4Linux, Wombat) und ganzheitlich echtzeitfähige Betriebssysteme parallel laufen. Ein Beispiel dafür ist das Mobiltelefon "Motorola Evoke". Hier ist auf OKL4 ein Linux-System (das die Benutzeroberfläche zur Verfügung stellt) und gleichzeitig als Echtzeitanwendung für die Modem-Funktionalität das BREW-Betriebssystem von Qualcomm aktiv.

L4 auf Linux

Die L4-Implementierung Fiasco-UX erlaubt, dass der Mikrokernel selbst wiederum als Anwendung unter Linux betrieben werden kann, was die Entwicklung deutlich vereinfacht, ähnlich dem Prinzip von User Mode Linux. Die L4-Implementierung wurde unter der GNU GPL als freie Software lizenziert.[4]

Bibliotheken

Für Entwickler von Anwendungen auf Basis des Mikrokernels stehen die Bibliotheken L4Env (Fiasco), Iguana und Kenge (Pistachio-embedded) sowie libokl4 (OKL4) zur Verfügung.

seL4: Beweisbar sichere Systeme

Im Jahre 2009 wurde am Forschungsinstitut NICTA in Zusammenarbeit mit der UNSW mit seL4 erstmals ein für allgemeine Anwendungen tauglicher Kernel formal verifiziert, d.h. es wurde mathematisch bewiesen, dass die Implementierung die Spezifikation des Kernels erfüllt und somit funktional korrekt ist. Dies bedeutet unter anderem, dass der Kernel nachweislich keinen der bisher verbreiteten Entwurfsfehler (Speicherüberläufe (Buffer Overflow), Zeigerfehler und Speicherlecks) enthält.[5][6] Bei NICTA verifizierte man hierfür 7500 Zeilen C-Quellcode und mehr als 10.000 Theoreme. Zur Beweisführung verwendete man den Theorembeweiser Isabelle/HOL, der gesamte Beweis bestand aus etwa 200.000 Zeilen Isabelle-Code.

Beispiel: "Merkelphone" SiMKo3

Seit 2013 erhält das Thema L4 unter dem Schlagwort "Merkelphone" (dem SiMKo3) neue Aufmerksamkeit [7]. Siehe dazu auch die Artikel Sichere mobile Kommunikation (SiMKo) und Multiple Independent Levels of Security (MILS).

Einzelnachweise

  1. OKL4-Website
  2. sel4-Website
  3. Microkernel seL4: beweisbar fehlerfrei. 29. Juli 2014, abgerufen am 7. August 2014.
  4. Homepage des Gruppe L4Linux: FAQ
  5. http://ertos.nicta.com.au/research/l4.verified
  6. http://pressetext.de/news/090817022/sicherheits-beweis-fuer-betriebssystem-kernel/
  7. http://www.heise.de/security/meldung/it-sa-Telekom-zeigt-abhoersicheres-SiMKo-3-Tablet-1974527.html

Weblinks


Kategorien: Betriebssystem

Quelle: Wikipedia - http://de.wikipedia.org/wiki/L4 (Mikrokernel) (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.