Künstliche Intelligenz
smolBSD: Einfach ein eigenes BSD-System erstellen
Mit smolBSD, einer liebevollen Verniedlichung von smallBSD, hat der spanische NetBSD-Entwickler Emile „iMil“ Heitor eine Umgebung geschaffen, um winzige NetBSD-Installationen zu erzeugen. Das schlanke Design soll die Grundlage für ein stabiles System mit möglichst geringem Ressourcenbedarf sein, das auf Sicherheit und Performance optimiert ist. Damit ist es für den Einsatz in eingebetteten Systemen, Containern, virtuellen Maschinen oder auf verschiedenen auch betagten Architekturen geeignet – ausdrücklich auch mit einem 32-Bit-Kernel für die x86-Plattform.
Weiterlesen nach der Anzeige
Mini-Systeme, Appliances und vor allem MicroVMs
Vor allem ist das minimalistische smolBSD aber dafür gedacht, als MicroVM (Micro Virtual Machine) in kurzlebigen, isolierten und sicheren Ausführungsumgebungen zu laufen. MicroVMs stellen beispielsweise QEMU, Cloud Hypervisor und Amazon mit Firecracker bereit. Auf der smolBSD-Projektseite werden QEMU und Firecracker als explizit funktionierende Plattformen genannt.
Details zu seiner Motivation, smolBSD zu entwickeln, und Informationen zum internen Aufbau präsentierte Heitor auf der BSDcon 2024 an der Universität in Ottawa in seinem Vortrag Making NetBSD a fast(er) booting microvm. Sein Projekt zieht bereits weitere Entwickler wie Leah Neukirchen an, der mit nitro ein kleines, flexibles und vor allem portables init-Framework samt Prozess-Supervisor (PID 1) geschaffen hat, das auch unter smolBSD läuft.
Erstaunlich einfach, schnell und problemlos
Um einen Blick auf smolBSD-MicroVMs zu werfen, benötigt man ein System mit Intel VT-x oder AMD-V, auf dem NetBSD, GNU/Linux oder macOS laufen. Ein Test mit dem systemd-losen Devuan GNU/Linux verlief problemlos, nachdem ein paar Pakete (qemu-system-x86, curl, git, bmake, uuid-runtime, bsdtar) installiert wurden. In der per git geklonten Kopie von smolBSD können Funktion und Konfiguration der MicroVMs im etc- und dem service-Verzeichnis angepasst werden. Vorgefertigte Beispiele wie ein simpler SSH-Zugang, ein SSH-Bouncer und ein Webserver sind im etc-Verzeichnis vorhanden. Das Image der MicroVM wird anschließend über bmake erzeugt und kann dann verteilt oder direkt über das startnb.sh-Skript gestartet werden.
(Bild: Michael Plura / heise medien)
Bei Microservices zählen Millisekunden
Weiterlesen nach der Anzeige
Im Zeitalter von Cloud-Architekturen, Serverless-Computing und Microservices werden immer fetter werdende Betriebssysteme mehr und mehr unattraktiv. Gewünscht sind extrem schlanke Systeme, die nur das enthalten, was wirklich gebraucht wird, und idealerweise quasi in Echtzeit starten. Ein Beispiel ist Amazons Firecracker, ein leichtgewichtiger Virtual Machine Monitor (VMM) via KVM, der speziell für das schnelle und sichere Starten isolierter MicroVMs in Cloud- und Serverless-Umgebungen entwickelt wurde. AWS Lambda (FaaS) und AWS Fargate (CaaS) führen Funktionen beziehungsweise Dienste oder Container ohne eigene Server-Basis aus. Auch QEMU bietet seit einiger Zeit „microvm“ als „machine type“ an.
Normalerweise werkelt in den Firecracker-MicroVMs Linux, in den letzten Jahren hat jedoch der FreeBSD-Entwickler Colin Percival FreeBSD für die Ausführung unter Firecracker tauglich gemacht. Das Projekt gilt noch als experimentell, aber die Startzeiten in seinen Tests von 25ms oder sogar unter 20ms im Vergleich zu Linux mit 75ms oder mehr zeigen, dass einiges an Potenzial in BSD-basierten MicroVMs steckt – und das nicht nur, weil AWS die Firecracker-Kosten in Millisekunden abrechnet. Laut dem Entwickler von smolBSD soll sein NetBSD-MicroVM-Kernel unter QEMU – also auf einer nicht wirklich vergleichbaren Umgebung – in 10 bis 14ms starten. Hier müssen konkrete Praxistests die echte Performance der drei Lösungen zeigen.
Fazit
Sicherlich ist es ein sicherheitstechnischer Vorteil, wenn MicroVMs nicht nur auf eine Linux-Monokultur setzen, sondern auch in Richtung FreeBSD und bald vielleicht NetBSD diversifiziert werden können. Mit smolBSD entsteht eine zusätzliche, sympathische Alternative.
Lesen Sie auch
(fo)