GNU Hurd 0.9 erschienen – und mal ausprobiert

Das Projekt GNU Hurd hat Version 0.9 seines Kernels sowie ein Update des Mach-Microkernels veröffentlicht.

Ein Set von Protokollen

Hurd ist eine Sammlung von Protokollen, die regeln, wie verschiedene Komponenten miteinander interagieren. Dazu gehören Schnittstellendefinitionen, um Dateien und Verzeichnisse zu manipulieren und Pfade aufzulösen. Jeder Prozess kann ein Dateisystem implementieren. Die einzige Voraussetzung ist, dass er Zugang zu seinem Backing-Speicher hat und dass der „Principal“ (User, UID), der es gestartet hat, den Dateisystemknoten, mit dem er verbunden ist, besitzt.

Ein Set von Servern

Ein Set von Servern implementieren diese Protokolle. Dazu gehören z.B.: Dateisysteme, Netzwerkprotokolle und Authentifizierung. Die Server laufen auf dem Mach-Mikrokernel und verwenden den IPC-Mechanismus von Mach um Informationen zu übertragen.

Nachdem bereits im  Mai 2016  ein Update der Komponenten vorgelegt wurde, gab es zum 18.12.2016 das Release 0.9 des HURD Systems. Wer sagt es denn! Die Zukunft braucht eben eine gewisse Vorlaufzeit. Neben Fehlerkorrekturen haben die Entwickler etwa einen Ethernet-Multiplexer für virtuelle Interfaces sowie den Paketfilter libpf (Berkeley Packet Filter Library) ergänzt.

Der Mach-Microkernel selbst, auf dem Hurd ja aufsetzt, liegt nun in Version 1.8 vor. Hier gab es vor allem Umbauten bei Speichermanagement und Debugging.

Der Entwurf des Hurd war ein Versuch, den Geist und das Versprechen der freien Softwarebewegung auch in Code einzulösen. Ein anonymer Hacker und Mitarbeiter der FSF brachte es in den frühen Tagen des Hurd-Projekts auf den Punkt: „The sentiment around the design was, I think it fair to say, somewhat giddy. The free software movement was (and is) all about freeing users from subjugation to those who provide software. The Hurd’s microkernel architecture and the structure of the daemons would securely free users from subjugation to system administrators – each user could securely invoke a set of daemons to create the operating environment he or she wished, no special permissions required.“  

Das zeigt auch der Name selbst: Hurd ist ein komplexes rekursives Akronym, ein indirektes, das in der ersten Auflösung „HIRD of Unix-Replacing Daemons“ lautet. HIRD wiederum wird zu „HURD of Interfaces Representing Depth“ aufgelöst.

Eine 25jährige bewegte Geschichte

GNU Hurd hat bereits eine 25jährige Geschichte. Ob das Ziel – als NOT-UNIX im produktiven Einsatz zu fungieren – tatsächlich einmal erreicht wird, dies sei mal dahingestellt. Der Aufwand ist nach wie vor groß. Linux ist trotz „Old School Design“ erdrückend dominant. GNU Hurd bleibt eine vielversprechende Long Term Studie und ein Experimentierfeld der prinzipiellen Microkernel-Architektur. Hurd ist auch in die Variante Debian GNU/Hurd portiert worden und kann ausprobiert werden. Das gibt uns das Stichwort – denn Schauen kostet nix.

Schauen kostet nix

Wer ein Linux System mit einem virtualisierungsfähigen Kernel betreibt, kann Debian GNU/Hurd schnell und einfach ausprobieren:

Kann mein Linux das?

$ grep -E '^flags.*\b(vmx|svm)\b' /proc/cpuinfo

In der Ausgabe sollte „vmx“ oder „svm“ erscheinen. Normalerweise lädt der Kernel die Hardwarevirtualisierung KVM automatisch. Das kann man, wie üblich,überprüfen mit:

$ lsmod | grep kvm

Ausgabe:

## für Intel-Prozessoren
kvm
kvm_intel

## für AMD-Prozessoren
kvm
kvm_amd

Ansonsten eben modprobe, um das Modul zu laden:

## für Intel-Prozessoren
sudo modprobe kvm
sudo modprobe kvm_intel

## für AMD-Prozessoren
sudo modprobe kvm
sudo modprobe kvm_amd

Dann kann es losgehen:

  $ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.xz
  $ tar xJf debian-hurd.img.tar.xz

Ready for TakeOff?

10-9-8-7-6-5-4-3-2-1-0:

$ kvm -no-kvm-irqchip -drive file=debian-hurd*.img,cache=writeback -m 1G

... völlig losgelöst von der Erde ...
schwebt das GNU/Hurd ...