Het DBOS-project (DBMS-georiƫnteerd besturingssysteem) is gepresenteerd, dat een nieuw besturingssysteem ontwikkelt voor het uitvoeren van schaalbare gedistribueerde applicaties. Een kenmerk van het project is het gebruik van een DBMS voor het opslaan van applicaties en systeemstatus, evenals de organisatie van toegang tot de status uitsluitend via transacties. Het project wordt ontwikkeld door onderzoekers van het Massachusetts Institute of Technology, de Universiteit van Wisconsin, de Stanford Universiteit, de Carnegie Mellon Universiteit, en de bedrijven Google en VMware. De resultaten worden verspreid onder de MIT-licentie.
Componenten voor interactie met hardware en low-level geheugenbeheerservices zijn overgebracht naar de microkernel. De door de microkernel geboden mogelijkheden worden gebruikt om een laag met een DBMS te starten. High-level systeemservices, die de uitvoering van applicaties waarborgen, communiceren alleen met de gedistribueerde DBMS en zijn gescheiden van de microkernel en systeem-specifieke componenten.
Het bouwen boven een gedistribueerde DBMS maakt het mogelijk om systeemservices vanaf het begin gedistribueerd en niet gebonden aan een specifieke knoop te maken, wat DBOS onderscheidt van traditionele clustersystemen, waarbij op elke knoop een eigen exemplaar van het besturingssysteem draait, bovenop welke afzonderlijke clusterplanners, gedistribueerde bestandssystemen en netwerkbeheerders worden uitgevoerd.

Er wordt opgemerkt dat het gebruik van moderne gedistribueerde DBMS, die gegevens in het geheugen opslaan en transacties ondersteunen, zoals VoltDB en FoundationDB, als basis voor DBOS, in staat is om een prestatie te bieden die voldoende is voor een effectieve uitvoering van veel systeemservices. In de DBMS kunnen ook gegevens van de planner, het bestandssysteem en IPC worden opgeslagen. Deze DBMS zijn bovendien uitstekend schaalbaar, bieden atomiciteit en isolatie van transacties, kunnen petabytes aan gegevens beheren, en bieden tools voor toegangsbeheer en het volgen van datastromen.
Een van de voordelen van de voorgestelde architectuur is de aanzienlijke uitbreiding van analytics-mogelijkheden en de vermindering van de complexiteit van de code door gebruik te maken van gewone databasequery's in de services van het besturingssysteem, waarbij de uitvoering van transacties en middelen voor hoge beschikbaarheid naar de database wordt verplaatst (deze functionaliteit kan eenmaal aan de database worden geĆÆmplementeerd en vervolgens in het besturingssysteem en de applicaties worden gebruikt).
Bijvoorbeeld, een clusterplanner kan informatie over taken en handlers opslaan in database-tabellen en planningsoperaties uitvoeren als reguliere transacties, waarbij imperatief code en SQL worden gemengd. Het gebruik van transacties vereenvoudigt het oplossen van problemen zoals multithreadingbeheer en herstel na uitval, omdat transacties de consistentie en stabiliteit van de status garanderen. In de context van het voorbeeld met de planner stellen transacties in staat om gelijktijdige toegang tot gedeelde gegevens te organiseren en te waarborgen dat de integriteit van de status wordt behouden in geval van storingen.
De in de database aangeboden mechanismen voor logging en data-analyse kunnen worden gebruikt voor het volgen van toegang en wijzigingen aan de status van applicaties, monitoring, debugging en beveiliging. Bijvoorbeeld, na het ontdekken van ongeautoriseerde toegang tot het systeem kunnen SQL-query's worden uitgevoerd om de omvang van de inbreuk vast te stellen door alle bewerkingen te identificeren die zijn uitgevoerd door processen die toegang hebben gekregen tot vertrouwelijke informatie.
Het project wordt al meer dan een jaar ontwikkeld en bevindt zich in de fase van het creƫren van prototypes van afzonderlijke architectuurcomponenten. Momenteel is er een prototype van werkende services bovenop de database voorbereid, zoals bestandssystemen, IPC en een planner, en er wordt een programmeeromgeving ontwikkeld die een interface biedt voor het starten van applicaties op basis van het FaaS-model (function-as-a-service).
In de volgende fase van ontwikkeling is het plan om een volledige softwarestack voor gedistribueerde applicaties te bieden. Voorlopig wordt VoltDB als database gebruikt in de experimenten, maar er wordt gesproken over het creƫren van een eigen laag voor gegevensopslag of het implementeren van ontbrekende functionaliteiten in bestaande databases. Ook wordt er gediscussieerd over welke componenten op kernniveau moeten draaien en welke boven op de database kunnen worden gerealiseerd.
Bron: opennet.ru
