Emulation einer VAX mit SIMH: Der SIMH-Simulator

SIMH (History Simulator) des Computer History Simulation Project ist eine Sammlung von Simulatoren für historisch bedeutende oder einfach nur interessante Computerhardware und -software aus der Vergangenheit. Ziel des Projekts ist es, hoch portable Systemsimulatoren zu erstellen und diese als Freeware im Internet mit frei verfügbaren Kopien bedeutender oder repräsentativer Software zu veröffentlichen.
Das Projekt soll zudem dazu dienen, älterer Software weiterhin eine Umgebung zu bieten, auch wenn die Original-Hardware nicht mehr zur Verfügung steht. Auch wird es verwendet, um Betriebssysteme wie OpenVMS, RSTS, RSX-11, RT-11, TOPS-10 oder TOPS-20 auf PCs laufen zu lassen.

Unter der Liste der emulierten Hardware sind folgende Computer vertreten:

  • einige der PDP-und VAX-Reihe von Digital Equipment Corporation
  • Nova und Eclipse von Data General
  • Großrechner von IBM der 700er-/7000er-Serie
  • Minicomputer von Hewlett-Packard und Honeywell
  • die CDC 1700 von Control Data Corporation
  • den Microcomputer Altair 8800 von MITS (wahlweise mit Zilog Z80 oder Intel 8080 Prozessor)
  • und viele andere

Die aktuelle, stabile Version vom SIMH ist die 3.x. Diese ist auch in allen aktuellen und namenhaften Linux-Distributionen, sowie BSD-Systemen als vorkompiliertes Paket in den Repositories enthalten. Ich aber hingegen bevorzuge lieber den aktuellen Beta-Zweig v4.0 – 19-01 Current von der GitHub Projektseite. Dies hat auch mehrere Gründe.:

  • In der aktuellen Beta 4 ist bereits USE_NETWORK als Teil der Kompilierungsbefehlszeile definiert, damit die PDP-11- und VAX-Simulatoren die Ethernet-Emulation unterstützen.
  • Neben der Emulation von DECs VAX11/780 und MicroVAX3900 aus dem SIMH-Zweig 3.x, wurden in dem Beta-Zweig 4.x Current weitere VAX-Modelle implementiert. – Allerdings muss ich dazu sagen, dass bei meinen Internetrecherchen ich festgestellt habe, dass andere User von fehlerhafter Netzwerkunterstützung berichteten. Ich selber habe bei einigen neu hinzugefügten VAX-Modellen das Problem gehabt, die Datenträger korrekt zu definieren und der Emulator konnte die virtuellen Geräte nicht ansprechen.
  • Von allen (neuen) VAX-Modellen sind die Boot-ROMs mit den eventuellen Patch-Dateien enthalten. Gerade bei Linux-Distributionen wie Debian-Linux, welche den Fokus haben, im Wesentlichen ein System aus freier Software zu bestehen, fehlen die Boot-ROM-Dateien, da sie proprietären Bytecode enthalten.

Um den aktuellen Beta-Release des SIMH-Emulators nun auf dem Computer installieren zu können, ist es wichtig folgende Pakete vorher zu installieren, sofern noch nicht geschehen. (als Benutzer root unter Debian-Linux):

apt-get update && apt-get install git build-essential

Quellcode des aktuellen Beta-Releases laden und den Emulator – zum Beispiel einer MicroVAX3900 von DEC – kompilieren.

$make {simulator-name (i.e. vax)}

git clone https://github.com/simh/simh.git
cd simh
make vax

Die so erstellte Binärdatei wird im SIMH-Verzeichnis in dem Unterverzeichnis BIN/vax gespeichert.

Damit das emulierte System auch Teil des heimischen IPv4 Netzwerkes ist, habe ich bereits in meinem Blog-Artikel „Netzwerk-Bridge unter Linux mit TUN/TAP“ beschrieben, wie unter einem Debian-basierten Linux eben diese einzurichten ist.

Start-Konsole
Start-Konsole mit Hilfe Übersicht

Um die Simulation der MicroVAX3900 nun starten zu können, muss lediglich die erstellte Binärdatei noch ausgeführt werden. SIMH startet dann immer erst in den Kommandomodus. Diese Konsole ist sehr mächtig und beinhaltet eine sehr umfangreiches Hilfesystem in dem alle Parameter zur Ausführung der Simulation, sowie die unterstützten Hardwarekomponenten des emulierten Computersystems aufgeführt werden. Ferner kann über die Konsole auch ein Log über die Simulation erstellt werden.

SIMH-Hilfe show-Befehl
SIMH-Hilfe show-Befehl
Zusätzliche Informationen der Hilfe
Zusätzliche Informationen der Hilfe
Informationen der Specifikationen
Informationen der Specifikationen

Mit der Konsole können auch dann direkt die Maschinen-spezifischen Parameter gesetzt werden und zur Ausführung für ein Betriebssystem der Hardware die Emulation gestartet werden.

Parameter und Boot
Parameter setzen und Boot

Es sei nochmal darauf hingewiesen, dass SIMH neben der VAX-Reihe von DEC auch andere Computerarchitekturen (anderer Hersteller) simuliert. Daher ist die Konsole von SIMH auch bei den anderen Simulatoren ähnlich umfangreich. – Zum Beispiel habe ich die Altair-Emulation mit dem Zilog Z80 Prozessor mal kurz ausprobiert gehabt.

Links:

Emulation einer VAX mit SIMH

In meinem Blog-Artikel „Netzwerk-Bridge unter Linux mit TUN/TAP“ habe ich bereits geschrieben, dass ich einen Computer der VAX-Reihe des Herstellers Digital Equipment Corporation emulieren möchte, um ein wenig das ebenfalls ursprünglich von DEC entwickelte Betriebssystem OpenVMS ausprobieren zu können. Ich habe in dem Artikel auch erwähnt gehabt, dass ich das nach wie vor sich in der Weiterentwicklung befindliche Open-Source BSD-Unix NetBSD und das inzwischen historische, ebenfalls von DEC entwickelte, proprietäre Unix ULTRIX kurz in der mit SIMH emulierten Maschine zu installieren ausprobiert habe.

In einer Mini-Serie möchte ich nacheinander auf die drei einzelnen Betriebssysteme in der Emulation eingehen.

Links:
Netzwerk-Bridge unter Linux mit TUN/TAP (eigener Blog-Artikel)
Emulator SIMH des Computer History Simulation Projects (engl. Wikipedia)
Rechnerarchitektur Virtual Address eXtension der Digital Equipment Corporation (engl. Wikipedia)
NetBSD (engl. Wikipedia)
ULTRIX (engl. Wikipedia)
OpenVMS (engl. Wikipedia)

Sanos PDP-11 Simulator mit UNIX V7

Wer seinen PC in eine PDP-11 von DEC mit der UNIX Time-Sharing System Seventh Edition (V7) als Betriebssystem verwandeln möchte, der kann den Sanos-Port von Bob Supnik’s PDP-11 simulator ausprobieren. Denn mit Diesem ist es möglich, UNIX so auszuführen, wie es Dennis Ritchie und Ken Thompson im Jahr 1979 getan haben.
Ein Sanos-Entwickler hat ein ISO-Image mit Sanos, dem PDP-11-Simulator und dem UNIX V7-Kit vom Computer History Simulation Project erstellt. Einfach eine CD-ROM in den PC einlegen und starten. Danach wird für alle nostalgischen UNIX-Geeks der PC zu einer PDP-11 mit dem UNIX V7.

Um die UNIX V7-Demo ausprobieren zu können, zuerst das ISO-Image herunterladen und entpacken. Es ist möglich, das Image mit dem bevorzugten Brennprogramm auf eine CD-ROM zu brennen und dann den Computer von dieser CD-ROM zu starten. Es ist aber inzwischen weitaus sinnvoller, es mit einer Desktop-Virtualisierungslösung wie VirtualBox auszuprobieren, indem die pdp11.iso Datei als ISO-Image für das CD-ROM festgelegt wird. Die Quelle, mit der das Image erstellt wurde, ist unter dem entsprechenden Link zu finden.

Wenn von der CD-ROM gebootet wird, startet Sanos und dieses startet den PDP-11-Simulator. Der Simulator startet dann UNIX V7 vom Image.

  • Bei dem Boot-Prompt b eingeben.
  • Bei dem @-Prompt ist boot<enter> einzugeben.
  • Bei dem : ist folgendes einzugeben: rl(0,0)rl2unix<enter>
  • Bei dem # ist <ctrl-d> zu drücken
  • Bei dem Login root als User mit dem Passwort root
UNIX V7 Emulator Boot
UNIX V7 Emulator Boot

Das Unix V7 ist dann betriebsbereit. Es können die gewohnten Unix-Befehle wie cat, ls, man und andere verwendet werden. Es kann dann auch ein einfaches C-Programm kompiliert und ausgeführt werden.

UNIX V7 Hello World
UNIX V7 Hello World

Mein absolutes Kernfeature ist, dass es als Texteditor nur den Zeilen-orientierten ‚ed‘ gibt. Der ‚vi‘ war seinerseits noch nicht verfügbar.

Links:
Sanos PDP-11 Simulator with UNIX V7
Bob Supnik’s PDP-11 simulator
Geschichte von Unix (engl. Wikipedia)
DEC PDP11 (engl. Wikipedia)
VirtualBox (engl. Wikipedia)
Kurzeinstieg zum ed-Editor (eigenes Blog)

macintosh.js

Ich bin zu den Macintosch-Computern von Apple gewechselt, nachdem diese den CPU-Plattformwechsel von der Power-Architektur auf die Intel x86 Architektur bereits vollzogen hatten. Zu der Zeit war Mac OS X 10.4 alias Tiger das aktuelle Mac-Betriebssystem. Also habe ich im wesentlichen nur noch die Betriebssysteme von Apple kennen gelernt, die auf der Basis von dem Apple-eigenen BSD Unix-Derivat Darwin beruhen. Im Umkehrschluss heißt das natürlich, dass ich mit dem Mac OS Classic nicht mehr in Berührung gekommen war, da dessen letztes Major Release im Jahr 2001 veröffentlicht wurde.

Screenshot: macintosh.js

Der Entwickler Felix Rieseberg hat nun eine auf Electron basierende Anwendung namens „macintosh.js“ programmiert und stellt diese kostenlos auf GitHub zur Verfügung. Dabei wird für die Anwendung ein Macintosh Quadra 900 aus dem Jahr 1991 emuliert. Der Macintosh Quadra 900 war seinerzeit mit einem 25 Megahertz getakteten Motorola 68040 Prozessor bestückt und besaß in der Grundausstattung lediglich 4 Megabyte RAM, der aber auf bis zu 256 Megabyte erweitert werden konnte.
Als Betriebssystem ist in der fertigen Emulation ein Mac OS 8.1 integriert, dessen Release im Januar 1998 war. Als Softwarepaket sind unter anderem einige Demo- oder Vollversionen von Spielen, sowie einigen Programmen von Adobe enthalten.
Der Emulator ist aber leider nicht netzwerkfähig.

Das emulierte Mac OS 8.1 System ist ziemlich schnell gestartet und lässt sich relativ Latenz-frei bedienen.
Mein derzeitig persönlicher Eindruck ist auch, dass inzwischen die Desktopcomputer so schnell geworden sind, dass bei einigen Emulatoren die abgebildeten Systeme performanter geworden sind, als auf ihrer originalen, physischen Hardware.

Die in JavaScript programmierte Anwendung gibt es aber auch für Linux und Windows.

Links:
macintosh.js (GitHub – Felix Rieseberg)
Macintosh Quadra 900 (engl. Wikipedia)
Mac OS 8.1 (engl. Wikipedia)

Smartphonenutzungsdauer

Mir ist nochmals der Tweet von Dejan Mihajlović durch die Timeline gehuscht, in dem er aufzeigt, was alles für Funktionen das Smartphone bereits übernommen hat.

https://twitter.com/DejanFreiburg/status/961256107275685888

Aber für mich ist es inzwischen nicht nur noch der Ersatz für Telefon, Fernseher, Radio, Fotoapparat, Camcorder, Uhr, Spielekonsole, Kalender, Buch, Notizbuch, Zeitung, Online-Shop und Post. Für mich ist es zusätzlich mehr oder weniger:

  • Wasserwaage
  • Seismograph
  • Kompass
  • Stadtplan
  • Straßenkarte
  • Sternkarte
  • Stimmgerät
  • Diktiergerät
  • Haus-/Wohnungsschlüssel
  • Kontoauszüge
  • Debit-/Girokarte
  • Medizinischer Notfallpass
  • Schrittzähler
  • Lautstärkemessung
  • Taschenrechner
  • Fahrkartenautomat
  • BahnCard
  • Bar-/QR-Code-Leser
  • Lupe
  • Taschenlampe
  • kleiner Kosmetikkspiegel

Update 22. Oktober 2021 19:00 Uhr:

  • mpfpass gegen SARS-CoV-2