Linux auf L4


Der folgende Artikel erschien in "Computerwoche" 33/1996. Mit freundlicher Genehmigung des Verlages wird dieser hier zur Verfügung gestellt.

MÜNCHEN (ue) - Im internationalen Wettbewerb um einen Durchbruch bei der Mikrokernel-Technik haben deutsche Wissenschaftler einen beachtlichen Erfolg erzielt. Einer Forschergruppe der GMD aus Sankt Augustin bei Bonn und der Technischen Universität Dresden (TUD) gelang es, Linux ohne größere Veränderungen auf dem Kern "L4" von der GMD laufen zu lassen. Dabei soll es sich um den derzeit kleinsten und schnellsten Mikrokernel der Welt handeln, an dem IBM nun Interesse angemeldet hat.

Größter Konkurrent zu L4 ist eine Echtzeitvariante des Kernels "Mach", der in seiner ursprünglichen Form an der Carnegie Mellon University entwickelt wurde. Mit ihm experimentierte zum Beispiel die Open Software Foundation (OSF), bis sie die Arbeit an einem Mach-Kernel für OSF/1 mangels Interesse der Konsortiums-Mitglieder Mitte letzten Jahres einstellte. Auch IBM kann auf langjährige Erfahrungen mit Mach verweisen. Doch ein bis Anfang dieses Jahres geplanter Mach-3-Kernel, auf dem die seinerzeit noch als OS-Personalities bezeichneten Betriebssystemkomponenten von OS/400, OS/2 und Linux laufen sollten, ist bislang nicht fertiggestellt. Einen gewissen Erfolg brachten Big Blues Experimente mit Mach für Multimedia-Anwendungen. Eine daraus resultierende Realtime-Variante des Kerns erwies sich jedoch als zu langsam, um die Technik zum weltweiten Erfolg zu führen.

Big Blues Mach-Version, ebenso wie der Echtzeitkern "Chorus" von der französischen Chorus Systems, seien zu mächtig und nicht flexibel genug, heißt es entsprechend bei den deutschen Wissenschaftlern Jochen Liedtke, GMD-Mitarbeiter und L4-Erfinder, sowie dessen Entwicklungspartner Hermann Härtig, Leiter des Lehrstuhls für Betriebssysteme an der TU Dresden. Unterschiedlicher Auffassung waren die konkurrierenden Forschergruppen zum Beispiel darin, ob und welche Betriebssystemfunktionen in den Mikrokernel integriert werden sollen. Um beispielsweise Linux auf Mach laufen zu lassen, hatte die OSF das Betriebssystem "geöffnet" und einige Gerätetreiber in den Mikrokern integriert. Das Resultat war, daß Mach bis heute eine Größe von rund 300 Kilobyte aufweist.

Das deutsche Team ist dagegen der Ansicht, daß eine weitgehende Flexibilität zwischen Microkernel, Betriebssystem oder Anwendung nur dann erreicht werden kann, wenn alle Komponenten möglichst unverändert bleiben. Außerdem gilt: Je größer der Kern wird, desto mehr Cache benötigt er, so daß die für eine Anwendung benötigte Performance sinkt. Zur Portierung hat man deshalb den lediglich 12 Kilobyte großen Kern L4 überhaupt nicht angerührt, Linux wurde lediglich in seinen hardwareabhängigen Bereichen (Interrupt, Clock, Process, Pagetables) und den Systemcalls für den Mikrokern modifiziert (siehe Grafik).

Unveränderte und modifizierte Bereiche des Linux-Kerns werden von Härtig unter dem neuen Begriff "Linux-Kernel-Server" zusammengefaßt. Prinzipiell ließe sich ein vergleichbarer Server auch für andere Betriebssysteme schaffen, heißt es bei den Wissenschaftlern. Vollständig aus dem Linux-Kern ausgelagert wurde die Hauptspeicherverwaltung (externe Pager), die sich im Modell der Dresdener zwischen dem Server und dem Mikrokernel L4 befindet. Entscheidend bei dieser Konstellation ist, daß weder Server noch Pager im Hardware-Kernel-Mode als Betriebssystem laufen, also direkt auf die Hardware zugreifen, sondern als Benutzerprogramme (User-Level) auf den Mikrokernel zugreifen.

L4 selbst bietet typische Mikrokernelfunktionen wie die Möglichkeit, Adreßräume zu bilden, in denen jeweils mehrere Threads (parallele Prozesse) ablaufen. Derartige Operationen sind zum Beispiel die von den Pagern empfangenen Aufrufe bezüglich des benötigten Speicherraums. Die Geschwindigkeit, mit der die einzelnen Threads untereinander kommunizieren, gilt dabei als die kritische Kenngröße unter den Mikrokernen. Bei Performance-abhängigen Prozessen wie die Kommunikation zwischen geschützten Adreßräumen sei L4 um den Faktor 20 schneller als Mach, stellt Liedtke für seinen Mikrokernel fest.

Größe und Schnelligkeit von L4 sowie die Möglichkeit, den Linux-Server ohne größere Modifikationen als Benutzerprogramm auf dem Mikrokernel laufen zu lassen, sollen der Linux-L4-Lösung ein breitgefächertes Einsatzspektrum öffnen. Die Entwicklung von Anwendungsservern bietet sich laut Liedtke besonders im Multimedia-Segment und bei Echtzeit-Applikationen an. Es reiche nicht, "Performance zu haben" - vielmehr müsse einer Anwendung die benötigte Leistung etwa beim Scheduling (Verteilung von CPU-Ressourcen) garantiert werden. Diese für Multimedia erforderlichen Mechanismen bieten heutige Betriebssysteme nicht, so Liedtke. Statt dessen müßten applikationsspezifische Strategien bezüglich der Hauptspeicherzuteilung realisiert werden.

Auf diesem Gebiet sind die Dresdener aktiv. Härtig spricht von zwei "Kulturen", die nebeneinander auf einem Rechner laufen: Parallel zu Linux als Arbeitsplatz- und Time-Sharing-System sollen Multimediakomponenten gebaut werden, die als Subsystem auf dem Mikrokernel laufen und alle Ressourcen erhalten, die sie benötigen beziehungsweise reserviert haben. Die verbleibende Leistung soll dann Linux zur Verfügung stehen. In Richtung Fertigungsindustrie zielt ein weiteres Projekt der Dresdener, bei dem ein über L4 und verschiedene Subsysteme gesteuerter Roboter mit einem möglichst großen neuronalen Netz ausgestattet werden soll.

Besonders gute Voraussetzungen bietet L4 auch für den Einsatz in Smartcards, wo der Kern aufgrund seines geringen Umfangs relativ viel Platz für größere Anwendugsprogramme läßt. Ähnliches gilt laut Härtig für den jüngst von einigen Herstellern propagierten Network Computer (NC), der prinzipiell mit L4 starten könnte, um dann die gewünschte Betriebssystem-Funktionalität aus dem Netz zu laden.

Im Bereich der Embedded Systems konkurriere L4 zwar mit einigen, bereits am Markt verfügbaren Realtime-Kernen, im Gegensatz zu diesen sei das GMD-Produkt jedoch offen und böte Durchgängigkeit zu verschiedenen Anwendungs- und Betriebssystem-Servern.

Diese L4-Eigenschaften scheinen inzwischen auch das Interesse bei IBM geweckt zu haben. Ob Big Blue mit L4 ein neues Konzept für die ursprünglich geplanten OS-Personalities auflegen oder Mach bei den Echtzeitkernen ablösen will, war bis Redaktionsschluß nicht zu erfahren. Fest steht, daß Liedtke kurz nach Bekanntwerden der Linux-Portierung auf L4 einer Einladung von IBM zur Kooperation in deren New Yorker Labor gefolgt ist. Ähnliches Interesse an der deutschen Entwicklung wünscht sich Härtig nun auch vom sächsischen Wissenschaftsministerium.


Vision und Realität

Um seinem Namen gerecht zu werden, sollte ein Mikrokernel im Idealfall nur drei Eigenschaften besitzen: Er muß Adreßräume bilden können, die Inter-Process-Communication (IPC) zwischen diesen Adreßräumen beherrschen und Basisfunktionen für das Scheduling anbieten. Einen Durchbruch bei dieser Technik erzielten die Forscher der Carnegie Mellon University, die mit "Mach" zunächst die Pager (Speicherverwaltung) und später das Interupt-Handling vollständig aus den bis dahin monolithischen Systemen herauslösten. Die getrennten Bereiche ließ man als Benutzerprogramme beziehungsweise Anwendungsserver auf dem Mikrokernel laufen. Obwohl die Kerne nach und nach schlanker wurden, trat eine Stagnation bei dem wohl wichtigsten Mechanismus ein, der IPC-Performance. In der Folge wurden ausgelagerte Serverfunktionen und Gerätetreiber wieder in den Kernel reintegriert. Damit ließ sich zwar Performance gewinnen, das Konzept widerspricht jedoch dem Grundgedanken eines Mikrokerns. Bei der GMD in Bonn scheint man das Performance-Problem mit "L4" in den Griff bekommen zu haben - ohne den Kernel wieder aufzublähen. Nur ein schlanker Kern, so die Meinung dort, wird künftig genügend Flexibilität für ein breites Anwendungsspektrum bieten.


Stefan Ueberhorst