Das Projekt DBOS (DBMS-orientiertes Betriebssystem) wurde vorgestellt und entwickelt ein neues Betriebssystem zur Ausführung skalierbarer verteilter Anwendungen. Eine Besonderheit des Projekts ist die Verwendung von DBMS zur Speicherung von Anwendungen und Systemzuständen sowie die Organisation des Zugriffs auf den Zustand ausschließlich über Transaktionen. Das Projekt wird von Forschern des Massachusetts Institute of Technology, der University of Wisconsin und der Stanford University, der Carnegie Mellon University sowie von den Unternehmen Google und VMware vorangetrieben. Die Ergebnisse werden unter der MIT-Lizenz veröffentlicht.
Die Komponenten für die Interaktion mit der Hardware und die niedrigstufigen Speicherverwaltungstools wurden in ein Mikrokernel ausgelagert. Die vom Mikrokernel bereitgestellten Funktionen werden genutzt, um eine Schicht mit der DBMS zu starten. Hochlevel-Systemdienste, die die Ausführung von Anwendungen gewährleisten, interagieren nur mit der verteilten DBMS und sind vom Mikrokernel sowie von spezifischen Komponenten eines bestimmten Systems getrennt.
Der Aufbau über einer verteilten DBMS ermöglicht es, die Systemdienste von Anfang an verteilt und nicht an einen bestimmten Knoten gebunden zu gestalten, was DBOS von traditionellen Clustern unterscheidet, in denen auf jedem Knoten eine eigene Instanz des Betriebssystems ausgeführt wird, über der separate Cluster-Planer, verteilte Dateisysteme und Netzwerkmanager laufen.

Es wird festgestellt, dass die Verwendung moderner verteilter DBMS als Grundlage für DBOS, die Daten im Arbeitsspeicher speichern und Transaktionen unterstützen, wie VoltDB und FoundationDB, eine Leistung bieten kann, die ausreicht, um viele Systemdienste effizient auszuführen. In der DBMS können auch Daten des Planers, des Dateisystems und der IPC untergebracht werden. Gleichzeitig skalieren die DBMS hervorragend, gewährleisten Atomarität und Isolation von Transaktionen, können Petabytes von Daten verwalten und bieten Werkzeuge zur Zugriffsverwaltung sowie zur Verfolgung von Datenströmen.
Zu den Vorteilen der vorgeschlagenen Architektur gehört die erhebliche Erweiterung der Analysefähigkeiten und die Verringerung der Komplexität des Codes durch die Verwendung von gewöhnlichen Abfragen an die Datenbankmanagementsysteme in den Diensten des Betriebssystems, wobei die Implementierung von Transaktionen und Mitteln zur Gewährleistung einer hohen Verfügbarkeit auf die Seite des DBMS ausgelagert wird (eine solche Funktionalität kann einmal auf der Seite des DBMS implementiert und im OS und den Anwendungen genutzt werden).
Zum Beispiel kann der Cluster-Planer Informationen über Aufgaben und Handler in DBMS-Tabellen speichern und Planungsoperationen als gewöhnliche Transaktionen umsetzen, indem er imperativen Code und SQL mischt. Der Einsatz von Transaktionen vereinfacht die Lösung solcher Probleme wie das Management von Multithreading und die Wiederherstellung nach Ausfällen, da Transaktionen die Konsistenz und Robustheit des Zustands garantieren. Im Kontext des Beispiels mit dem Planer ermöglichen Transaktionen den gleichzeitigen Zugriff auf gemeinsam genutzte Daten und gewährleisten die Integrität des Zustands im Falle von Ausfällen.
Die in DBMS bereitgestellten Protokollierungs- und Analysetools können verwendet werden, um den Zugriff und die Zustandsänderungen von Anwendungen zu verfolgen, Monitoring, Debugging und Sicherheitsaufrechterhaltung durchzuführen. Beispielsweise kann nach dem Entdecken eines unbefugten Zugriffs auf das System die Reichweite des Lecks durch SQL-Abfragen bestimmt werden, indem alle Operationen ermittelt werden, die von Prozessen durchgeführt wurden, die Zugriff auf vertrauliche Informationen erhalten haben.
Das Projekt wird bereits seit über einem Jahr entwickelt und befindet sich in der Phase der Erstellung von Prototypen einzelner Komponenten der Architektur. Derzeit wurde ein Prototyp von Diensten des Betriebssystems, die auf dem DBMS basieren, wie z. B. FS, IPC und Planer, vorbereitet, und es wird auch eine Programmierumgebung entwickelt, die eine Schnittstelle für den Start von Anwendungen auf Basis des FaaS-Modells (Function-as-a-Service) bereitstellt.
In der nächsten Entwicklungsstufe ist vorgesehen, einen vollständigen Software-Stack für verteilte Anwendungen bereitzustellen. In den Experimenten wird derzeit VoltDB als Datenbankmanagementsystem verwendet, jedoch wird über die Schaffung einer eigenen Schicht zur Datenspeicherung oder die Umsetzung fehlender Funktionen in bestehenden Datenbankmanagementsystemen diskutiert. Auch die Frage, welche Komponenten auf der Kernel-Ebene ausgeführt werden sollten und welche über dem Datenbankmanagementsystem realisiert werden können, ist noch in Diskussion.
Quelle: opennet.ru
