2017-03-05 11:38
GoKrazy - ein Linux-Userland in Go
Seit der Veröffentlichung der ersten Go-Version kommt immer wieder der Vorschlag auf, das komplette GNU-Userland von/für Linux in Go neu zu schreiben. Nun hat das mal jemand gemacht.
GoKrazy ist ein rein in Go geschriebenes Userland für Linux. Es orientiert sich an den Erfordernissen des Raspberry Pi 3, ist aber prinzipiell auf allen von Go unterstützten Plattformen verwendbar.
Als Hauptgrund geben die Entwickler an, dass sie von den zahlreichen Sicherheitslücken, die auf Buffer Overflows oder Stack Smashing basierten, genug hatten. Daher sollte nur eine Sprache zum Einsatz kommen, die keine Sicherheitsprobleme bei der Speicherverwaltung kennt und hinreichend systemnah ist.
Auf einem reinen GoKrazy System gibt es keine C Umgebung mehr. An die Stelle von Systemd tritt eine webbasierte Schnittstelle, mit der man Dienste starten, stoppen und den Autostart konfigurieren kann. GoKrazy beinhaltet ein einfaches Konfiguration-Framework, das z.B. für die Netzwerkeinstellungen genutzt werden kann. Die Autoren präferieren aber generell Autokonfiguration, z.B. mit DHCP.
Dank einer zweigeteilten Partitionierung sind automatische Updates einfach in-place möglich. Wenn ein Update fehlschlägt, kann man auf den bereits erprobten Stand auf der anderen Partition zurück gehen.
Statt einer Shell gibt es einen einfachen SSH/SCP Server, mit dem man Software hochladen und ausführen kann. Über diesen Weg kann man auch klassische Dinge wie Busybox nachrüsten, handelt sich damit auch wieder klassische Sicherheitsproblem ein.