Termine planen, Nachrichten austauschen, Kundendaten verwalten, am besten auch vom Smartphone aus. Das alles und noch viel mehr sollen moderne ... (mehr)

Alles schon dagewesen?

Denkt man ein bisschen über die Architektur von Hypervisor und minimalistischen Gastsystemen nach, erinnert sie möglicherweise an einen alten Bekannten: den Microkernel. Auch hier beschränkt sich der eigentliche Betriebssystemkern auf sehr wenige Funktionen. Andere Teile des Betriebssystems laufen als weniger privilegierte Prozesse im Userspace und können somit bei Fehlfunktionen nicht das ganze System in den Abgrund reißen. Bekanntlich hat der Informatik-Professor Andrew Tanenbaum Linux schon in den Anfangszeiten dafür kritisiert, nicht das Microkernel-Prinzip umzusetzen, sondern auf einen monolithischen Kernel zu setzen. Jetzt schleicht sich der Microkernel – wenn man so will – über die Virtualisierungstechnologie wieder ein.

Letztlich ist es mit der zunehmenden Verbreitung von Cloud-Architekturen nur konsequent, wie bei OSv das "Cloud OS" und die Gastsysteme jeweils auf ein Minimum zu reduzieren, statt immer wieder aufs Neue die gleichen Systemteile zu replizieren. In konventionellen Linux-Installationen wird diese Idee zum Teil durch Container-Technologien wie OpenVZ und LXC umgesetzt, doch deren Realisierung ist kompliziert. Volle Virtualisierung, aber dafür mit stark abgespeckten Systemen, scheint demgegenüber der einfachere Weg zu sein.

Wunschbild

Einen ähnlichen Weg wie OSv schlägt auch das Mirage OS [5] ein, das als Bare-Metal-Hypervisor Xen einsetzt, auf dem hochspezialisierte Gastsysteme laufen, die in einer Hochsprache (OCaml) statt C geschrieben sind. Auch diese sogenannten Unikernel besitzen wie eine Instanz von OSv nur einen flachen Adressraum und können auf Wunsch sogar read-only gesetzt werden. Letzteres ist nur eine von vielen Sicherheitsmaßnahmen, die bei derart verteilten Architekturen sicherlich noch wichtig werden.

Abbildung 2: Mirage ist ein experimentelles Cloud-OS, das anwendungsspezifische Images aus Ocaml-Runtime und Applikation auf dem Xen-Hypervisor laufen lässt.

Eine offene Frage ist bei solchen Ansätzen noch, wie Anwendungen, die je in einem eigenen Minimal-OS laufen, miteinander kommunizieren sollen. Lösungen dafür gibt es natürlich eine Reihe, etwa aus dem Bereich verteilter Webanwendungen. Beispiele sind Messaging-Systeme wie ActiveMQ, RabbitMQ und der Java Messaging Service. Sie entsprächen dann in etwa der Infrastruktur für Interprozesskommunikation, wie die Microkernel sie bieten. Wie sich das auf die Performance eines Gesamtsystems auswirkt, wird erst die Praxis zeigen. Eine Unterstützung durch den Hypervisor wäre hierbei vermutlich hilfreich.

Nimmt man all diese Dinge zusammen, entsteht am Ende eine Art Baukasten-System, bei dem der Hypervisor oderMicrokernel Steckplätze bereitstellt, in die der Infrastrukturbetreiber einzelne Bausteine steckt, die aus einem Micro-OS zusammen mit je einer Anwendung bestehen. Weitere Bauteile sind dann gewissermaßen die Leitungen, die diese Bausteine verbinden. Eine solche Architektur wird beispielsweise schon heute von den in Ubuntu implementierten Charms des Juju-Systems eingesetzt.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020