Die verteilte Betriebssystem DBOS wurde vorgestellt, die auf einer Datenbankmanagementsystem (DBMS) basiert.

Das Projekt DBOS (DBMS-orientiertes Betriebssystem) wurde vorgestellt, um ein neues Betriebssystem für die Ausführung skalierbarer verteilter Anwendungen zu entwickeln. Eine Besonderheit des Projekts ist die Verwendung einer Datenbank zur Speicherung von Anwendungen und Systemzuständen sowie der Zugriff auf den Zustand ausschließlich über Transaktionen. Das Projekt wird von Forschern des Massachusetts Institute of Technology, der University of Wisconsin, 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 zur Interaktion mit der Hardware und die Low-Level-Speicherverwaltung wurden in einen Mikrokernel ausgelagert. Die von dem Mikrokernel bereitgestellten Funktionen werden genutzt, um eine Schicht mit einer Datenbank zu starten. Die hochrangigen Systemdienste, die die Ausführung der Anwendungen gewährleisten, interagieren ausschließlich mit der verteilten Datenbank und sind vom Mikrokernel sowie von system-spezifischen Komponenten getrennt.

Der Aufbau auf einer verteilten Datenbank ermöglicht es, Systemdienstleistungen von Anfang an verteilt und nicht an einen bestimmten Knoten gebunden zu gestalten. Dies unterscheidet DBOS von traditionellen Clustersystemen, bei denen auf jedem Knoten eine eigene Instanz des Betriebssystems läuft, über der separate Cluster-Planer, verteilte Dateisysteme und Netzwerkmanager betrieben werden.

Die verteilte Betriebssystem DBOS wurde vorgestellt, die auf einer Datenbankmanagementsystem (DBMS) basiert.

Es wird festgestellt, dass die Verwendung von modernen verteilten Datenbanken als Grundlage für DBOS, die Daten im Arbeitsspeicher speichern und Transaktionen unterstützen, wie VoltDB und FoundationDB, eine Leistung bieten kann, die ausreichend ist, um viele Systemdienstleistungen effizient auszuführen. In den Datenbanken können unter anderem Daten des Planers, des Dateisystems und der IPC untergebracht werden. Diese Datenbanken sind hervorragend skalierbar, gewährleisten Atomarität und Isolation von Transaktionen, können Petabyte an Daten verwalten und bieten Werkzeuge zur Zugriffsverwaltung und zur Überwachung von Datenströmen.

Zu den Vorteilen der vorgeschlagenen Architektur zählt die erhebliche Erweiterung der Analysefähigkeiten und die Verringerung der Code-Komplexität durch die Verwendung gewöhnlicher Datenbankanfragen in den Diensten des Betriebssystems, wobei die Implementierung von Transaktionen und Mitteln zur Gewährleistung hoher Verfügbarkeit auf die Seite der Datenbank ausgelagert wird (eine solche Funktionalität kann einmal auf der Datenbankseite implementiert und dann im Betriebssystem und in Anwendungen verwendet werden).

Zum Beispiel kann der clusterbasierte Scheduler Informationen über Aufgaben und Handler in Datenbanktabellen speichern und die Planungsoperationen als gewöhnliche Transaktionen durchführen, indem er imperativen Code und SQL mischt. Der Einsatz von Transaktionen vereinfacht die Lösung von Problemen wie Multithreading-Management und Wiederherstellung nach Ausfällen, da Transaktionen Konsistenz und Stabilität des Zustands garantieren. Im Kontext des Beispiels mit dem Scheduler ermöglichen Transaktionen den gleichzeitigen Zugriff auf gemeinsam genutzte Daten und sichern die Integrität des Zustands im Falle von Ausfällen.

Die in der Datenbank unterstützten Protokollierungs- und Analysemechanismen können verwendet werden, um den Zugriff und den Zustand von Anwendungen zu verfolgen, um Monitoring, Debugging und Sicherheit zu gewährleisten. Beispielsweise kann nach der Entdeckung eines unbefugten Zugriffs auf das System durch die Ausführung von SQL-Abfragen das Ausmaß des Datenlecks ermittelt werden, indem alle von Prozessen durchgeführten Aktionen, die Zugriff auf vertrauliche Informationen erhalten haben, identifiziert werden.

Das Projekt wird seit über einem Jahr entwickelt und befindet sich in der Phase der Prototypenerstellung für einzelne Architekturkomponenten. Derzeit wurde ein Prototyp von Diensten des Betriebssystems, die über die Datenbankoberfläche arbeiten, vorbereitet, wie z. B. das Dateisystem, IPC und der Scheduler, und es wird eine Softwareumgebung entwickelt, die eine Schnittstelle zum Ausführen von Anwendungen auf Basis des FaaS-Modells (Function-as-a-Service) bietet.

In der nächsten Entwicklungsphase ist geplant, ein vollständiges Software-Stack für verteilte Anwendungen anzubieten. In den Experimenten wird derzeit VoltDB als Datenbankmanagementsystem (DBMS) verwendet, es wird jedoch diskutiert, ein eigenes Layer für die Datenspeicherung zu entwickeln oder fehlende Funktionen in bestehenden DBMS zu implementieren. Auch die Frage, welche Komponenten auf der Kernel-Ebene ausgeführt werden sollten und welche über dem DBMS realisierbar sind, steht zur Diskussion.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster