Effiziente Implementierung von CORBA mit Hilfe von L4-Mikrokern

Motivation

Die bewährte POSIX-Philosophie, "Die Welt besteht aus Dateien" ist etwas veraltet, heute ist die Sichtweise "Die Welt besteht aus Objekten" modern. Diese Objekte haben Schnittstellen, die mit IDL Programmiersprachen- und Betriebssystem/Rechnerarchitekur unabhängig beschrieben werden können.

Diese Objekte/Komponenten werden auf Rechnernetze verteilt, somit entstehen verteilte Systeme mit CORBA. Natürlich sollten diese Objekte eine gewisse Granularität haben um sie vernünftig verteilen zu können. Aus Leistungsgesichtspunkten und auch anwendungsmotiviert werden Komponenten auch auf einem Rechnerknoten platziert, diese kommunizieren mit leichtgewichtigen Fern-Prozeduraufrufen (LRPC)

Moderne Kleinkernarchitektur bietet effiziente Kommunikationsmechanismen, um die objekt/komponenten orientierte Sichtweise zu unterstützen, beispielsweise ist im L4-Kern ein LRPC doppelt so schnell wie ein herkömmlicher UNIX-Systemcall.

Verteilte Anwendungen setzen nicht mehr auf die Socket-Schnittstelle des Betriebssystems auf, sondern nutzen Middleware wie CORBA und höhere Dienste.

Diese Middleware soll nun besser und effizienter mit dem L4-Kern implementiert werden.

Die Kunden haben damit den Vorteil, daß sie mit CORBA eine normierte und investitionssichere Schnittstelle haben, die aktuellen Technologieen angepaßt werden kann.

herkömmlich

mit Kleinkern

Eventchannelstudie

Eventchannel oder die Erweiterung Notificationchannel sind zu vielen Zwecken nützte, wie z.B. in der Telefonie, oder als Beobacher, bis hin zu verteilen Simulationen.
Für das erste soll ein Eventchannel auf L4 implementiert werden, und die Leistung bzw. Durchsatz (Events/s) mit anderen CORBA-Implementierungen verglichen werden.

Persistenzdienste

Anstatt der Dateien kennen wir in Kleinkernsystemen Speichersegmente. Auf ihnen kann mit relativen Zeigern gearbeitet werden. Pager-Dienste sorgen sich um die Speicherverwaltung und können sich um die Persistenz kümmern. Somit können spezielle Pager auch gewisse Dienstgüten gewährleisten.

Auf Linux wurde schon mit verschiedenen Segmenttypen experimentiert. Diese Segmente entsprechen einem Dataspace bei DROPS
Der Nutzer hätte den Vorteil, daß er zur Konfigurationszeit verschiedene Speichermechanismen festlegen könnte. Die Programmierung sollte sich nicht zu sehr unterscheiden, näheres soll untersucht werden.

Das Corba Component Modell kann mit verschiedenen IDL Erweiterungen ganze Applikationen spezifizieren. Darunter gibt es auch eine Sprache, die die Persistenz beschreibt. Diese könnte dann u.a. auch auf unsere Segmente abgebildet werden.

Ablaufsysteme für Programmiersprachen

Beim Nachdenken über die Portierung z.B. des TAO-Eventchannels oder auch des in C++ implementierten Schattenspeichers kommt man direkt zur Frage nach der C++-Unterstützung

Interessant ist, welche Betriebssystemunterstüzung Mechanismen in Programmiersprachen benötigen.
Der C++-Exception Mechanismus könnte direkt minimal auf der L4-Umgebung laufen. Die Implementierung im gcc macht aber Berechnungen zur Laufzeit, die man eigentlich nicht in Bootservern haben möchte. Die Erfinder hatten wohl an ein UNIX-ähliches System gedacht. Eine optimalere Implementierung verbessert dann auch die der traditionellen Systeme.

Gerade wegen der Investitionssicherheit ist es sehr wichtig, architekturunabhängig auf einer höheren Ebene zu Programmieren.
Systemprogrammiersprachen bauen möglichst wenig in die Sprache selber ein, und bieten Abstraktionsmechanismen, die sogar Sachen wie Threads in der Sprache formulieren zu können. Bibilotheken wie ACE wrappen nach dem Wrapper Entwurfsmuster über das Betriebssystem. Daher sind solche Systeme auch spezialisierten Implementierungen vorzuziehen. Natürlich sind auch diese Systeme mit der Klein/Microkernarchitektur kritisch zu überprüfen.

Gesamtmodell - weitere Ideen

Mit der Sichtweise aus der Motivation könnte CORBA-Script die selbe Rolle spielen wie die Shell in Unix-Systemen. GNOME basiert ja auch auf CORBA und könnte so einen perfekten Desktop abgeben.

Mit der Echtzeitfähigkeit des L4-Kerns ist so ein Desktopsystem auch sicher hervorragend für Multimedia gegeignet - und somit Endnutzerfähig. (Bemerkung: Das ist nur so eine Idee von mir - aber ich bin ja nicht allein auf der Welt und politisch verkauft sich diese Idee auch sicher besser :-)


Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber