Emulation einer VAX mit SIMH: NetBSD

NetBSD ist ein unixoides Betriebssystem, bei dem die einzelnen Komponenten des Userland mit den Fähigkeiten des Kernels optimal abgestimmt sind. Dies wird dadurch erreicht, dass der Kernel und fast das ganze Userland aus einer Hand stammen. Großer Wert wird darauf gelegt, dass sich das System auf allen Architekturen gleich verhält. NetBSD versteht sich sowieso darauf, auf vielen Computer-Architekturen ausgeführt werden zu können, von denen inzwischen viele einen historischen Charakter haben. – Nicht umsonst gibt es den alten Witz.: ‚NetBSD läuft auf allen Geräten. Selbst auf einem Toaster.‘

Die Portierung von NetBSD auf die VAX-Architektur der Digital Equipment Corporation war erstmals mit der NetBSD-Version 1.2 im Oktober 1996 abgeschlossen. Seitdem wird der VAX-Port kontinuierlich weiter entwickelt. Trotzdem ist NetBSD ein modernes Betriebssystem am Puls der Zeit. So war NetBSD auch das erste unter den Open Source-Betriebssystemen, welches die USB-Schnittstelle mit der Version 1.4 im Mai 1999 unterstützte. Selbst unter Linux wurde die Unterstützung für USB erst mit Kernel 2.4 im Januar 2001 realisiert.

Boot NetBSD 9.1 MicroVAX 3900 1
Boot NetBSD 9.1 MicroVAX 3900

Ich selber habe meinen ersten Kontakt mit NetBSD mit Erscheinen der Version 4.0 aufgenommen. – Das war im Jahr 2008. Motivation war damals für mich, dass das Betriebssystem selber nur aus einem kleinen Basissatz mit den wichtigsten Programmen (also dem Useland) besteht und so trotz Fehlen einer grafischen Benutzeroberfläche mit Maus, stattdessen mit einer ncurses-ähnlichen Menü-Steuerung extrem fix auf dem Computer installiert werden kann. Nach dem ersten Boot auf das installierte System war und ist man nur mit dem vi als Texteditor ausgestattet, gezwungen das System durch editieren von Dateien und den Kommandozeilenprogrammen des Basissystems zu konfigurieren und sich einzurichten. Das war für mich der Hebel, einen Zugang zu der Shell zu bekommen. Schneller und deutlich angenehmer als, wenn ich mich zum Beispiel mit Linux From Scratch erst einmal durch lange Anleitungen lesen hätte müssen und die nötigen Programme sowie Bibliotheken aus dem Sorce-Code erst in Binädaten kompiliert werden müssen.

Inzwischen ist das Programm sysinstall – so heißt der ncurses-ähnliche Installer nämlich – nochmals verbessert worden. So lassen sich über ihn inzwischen unter anderem auch die Quellpfade für die pre-kompilierten Programmpakete sowie das Archiv der Programmpakete mit dem Quellcode konfigurieren und beziehen, den lokalen NTP-Zeitserver aktivieren, den Displaymanager xdm für den automatischen, grafischen Login systemweit aktivieren oder einen eingeschränkten User-Account erstellen.
Im Prinzip verläuft die Installation und Einrichtung des Systems auf der VAX-Architektur genau so wie bei der x86 PC-Version (32 und 64 Bit). Das einzige, was im Gegensatz zu den x86 PC-Versionen zum Glück wegfällt, ist die Partition mit der MBR-/GPT-Formatierung. Während des Boots des Installationsmediums muss aber noch ein Terminal ausgewählt werden, sonst kann verständlicherweise das sysinstall-Programm nicht starten. – Es stehen als Terminal-Emulation VT100, VT220, Ansi und XTerm zur Verfügung, wobei die Darstellung von der Ansi-Emulation im SIMH-Emulator absolut furchtbar aussieht.
War ich nach der Installation von dem NetBSD 7.x im SIMH ziemlich angenervt, weil der Init-Prozess bei jedem Booten von der HDD nach der gewünschten Terminal-Emulation fragt, wird bei NetBSD 9.x das System ohne der Emulation gestartet. Es kann sein, dass da die Skripte vor Veröffentlichung nicht vollständig implementiert wurden. Die Umgebungsvariable muss also nachträglich noch händisch gesetzt werden.

In meinem Doku-Wiki habe ich die knappe Konfigurationsdatei für die SIMH-Emulation für NetBSD dokumentiert.

Boot NetBSD 9.1 MicroVAX 3900 2
Login NetBSD 9.1 MicroVAX 3900

Da zum heutigen Veröffentlichungszeitpunkt dieses Beitrags NetBSD 9.1 erst 12 Tage zur Verfügung steht, wurden noch keine pre-kompilierten pkgsrc-Programmpakete für den VAX-Port auf den Servern zur Verfügung gestellt. Waren für NetBSD 8.2 noch 476 Binärpakete verfügbar, gibt es für NetBSD 9.0 nur noch 26 Pakete zur Auswahl. Ich denke, dass aufgrund der aus heutiger Sicht extrem begrenzten Leistungsfähigkeit der VAX-Architektur die Computermodelle längst nicht mehr auch nur für halbwegs sinnvolle Aufgabengebiete eingesetzt werden können, wird an der Menge der angebotenen Programmpakete auch kein Zuwachs mehr zu erwarten sein.
Der NetBSD-User John Klos hatte mal das Experiment gewagt und auf seiner VAXStation 4000/VLC mit 24 Megabyte RAM unter Version 9.0 Perl in der Version 5.30.3 aus den Quellen kompiliert. Das Kompilat stand erst nach exakt 9 Tagen, 15 Stunden, 6 Minuten und 48 Sekunden zur Verfügung.

Mit der Veröffentlichung von Version 2.8 war im Dezember 2000 die Portierung von OpenBSD auf DECs VAX-Architektur abgeschlossen und die Weiterentwicklung begonnen. OpenBSD selber ist von dem ehemaligen NetBSD-Mitinitiator und -entwickler Theo de Raadt im Jahr 1995 gegründet worden, nachdem dieser von seiner ehemaligen Community ausgeschlossen wurde. Nach der Veröffentlichung von Version 5.8 im Jahr 2015 wurde dann die Weiterentwicklung von OpenBSD auf die VAX-Reihe wieder aufgegeben.

Links: