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:

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:

iSH fĂŒr Apple iOS – Das iPhone wird Linux-tauglich

Apple hat sein Smartphone-Betriebssystem iOS – in den ersten drei Majorreleases noch unter dem Namen iPhone OS vermarktet – von Anfang an so abgeschottet, dass es einem als User und Entwickler nicht möglich ist, mit Dateien in einem Dateisystem App-ĂŒbergreifend arbeiten zu können, sowie mit einer Applikation weitere Programme sich auf das GerĂ€t installieren zu können. – Auch unter dem Begriff Sideloading bekannt. – Jede Applikation soll ausschließlich separat ĂŒber den Apple-eigenen iOS App Store auf iPhone oder iPad bezogen und installiert werden. Dies ist von Apple auch in den Regularien fĂŒr App-Entwickler vorgeschrieben und wird vor der Veröffentlichung in einem Review-Prozess kontrolliert. Apple begrĂŒndet dies damit, dass Nutzer so vor schĂ€dlicher Malware geschĂŒtzt werden sollen. Der Nachteil dabei ist aber, dass die Smartphones und Tablets von Apple in der Nutzungsmöglichkeit weitaus unflexibler als die GerĂ€te fĂŒr Googles Android oder den Apple-eigenen Laptops, also Computern sind. Besonders Ă€rgerlich ist dies am grĂ¶ĂŸten bei den iPads, weil selbst Apple diese spĂ€testens seit dem iPad Pro auch inzwischen als Computer-Kategorie vermarktet, die einem klassischen Laptop – also Apples eigene MacBook (Air/Pro) ersetzen können sollen. Mit den Smart-Keybords bietet Apple selber auch Peripherie fĂŒr ihre Tablets an, die das Handling eines klassischen Laptops ermöglicht – dazu aber zusĂ€tzlich ein Touch-Display fĂŒr die Bedienung mit Fingergesten und Stift direkt auf das Display.
Apple hat mit der eigenen Files-Apps fĂŒr iOS und iPadOS ein Programm fĂŒr den Umgang mit Dateien inzwischen implementiert, aber an die Möglichkeiten die der Finder auf den Macs oder der Datei-Explorer unter Windows bietet, kommt diese App nicht im Ansatz heran.
Apple hatte aber bereits nun vor ĂŒber sechs Jahren das Unternehmen Burstly ĂŒbernommen gehabt, mit deren App Testflight einem es möglich war, auch Apps im Rahmen von Beta-Tests von Entwicklern außerhalb des Apple-eigenen App Stores sich auf iPhone oder iPad installieren zu können. Das machte es sehr interessant, eine iOS-Applikation fĂŒr einen wirklich sehr begrenzten Umfang an Benutzern entwickeln und ausrollen zu können, ohne die App durch Apples Review-Prozess hindurch in den App Store veröffentlichen zu mĂŒssen. Zum Beispiel fĂŒr eine selbstgebaute Smarthome-Steuerung fĂŒr weniger als 100 iOS-Usern in einem Verein oder MakerSpace. Die angenommenen 100 User hĂ€tte man einfach als die Beta-Tester deklariert.

Alpine Linux

Vor zwei Jahren hatte dann der Softwareentwickler Theodore Dubois das Projekt iSH auf GitHub veröffentlicht gehabt, mit dessen es dann möglich war, sich ein emuliertes Linux auf das iDevice installieren zu können. Bei iSH handelt es sich dabei um eine iOS-App, in der im Usermode des Darwin-Systems – also der Betriebssystemunterbau von iOS auf Basis des BSD-Unix von Apple – ein Emulator zu AusfĂŒhrung von Maschinenbefehlen der x86_32 Architektur lĂ€uft mit einem Alpine-Linux. Alpine-Linux ist wiederum eine auf BusyBox basierende Linux-Distribution, die in erster Linie fĂŒr „Power-User entwickelt wurde, die Sicherheit, Einfachheit und Ressourceneffizienz schĂ€tzen“. Das Alpine-Linux verwendet als eigenes Paketverwaltungssystem apk-tools. Somit ließ sich weitere quelloffene Software aus der GNU-Linux-Welt mit zum ersten mal außerhalb Apples App Store auf iPhone beziehungsweise iPad installieren. Möglich war dies, weil Apple vor rund zwei Jahren selber mit der Swift-Playground App fĂŒr iOS eine einfache und spielerische Möglichkeit geschaffen hat, auf iPhone und iPad anhand ihrer eigenen Programmiersprache Swift das Programmieren zu erlernen. Und es ist in Testflight fĂŒr Entwickler möglich, fĂŒr App-Tester Programmteile aus dessen Quellen nachinstallieren zu können. Über die Testflight-App musste man sich automatisch zu einem Beta-Tester fĂŒr iSH aktivieren und schon konnte man fĂŒr jede „Testversion“ von iSH fĂŒr einen vorher definierten Zeitraum die Testversion benutzen. Allerdings war aber die Anzahl der Beta-Tester auf maximal 10.000 User begrenzt.

Vor 3 Tagen ging dann die Meldung durch die IT-Tech-Presse, dass von iSH die Version 1.0 von Apple im App Store zum Download freigegeben wurde. Die Frage ist aber, wie ist das möglich, wenn die Regularien des App Stores das Sideloading von weiteren Programmen aus einer App verbietet? Die Antwort ist: Das Kommandozeilenprogramm apk ist nicht mehr Teil von iSH, so dass keine weiteren Programmpakete erst einmal nachgeladen werden können. Dass es aber ĂŒber einen kleinen Umweg möglich ist, werde ich am Ende noch kurz dokumentieren.

Zuvor aber noch ein paar Worte zu iSH, wie es bereits seit der zuvor zweijÀhrigen Testflight-Beta gibt und verhÀlt.:
Das Alpine-Linux in iSH enthÀlt bereits eine Reihe gÀngiger Kommandozeilenprogramme wie wget, curl und den Texteditor vi. Alpine setzt nach wie vor auf das einfache und leichte OpenRC als Init-System. Allerdings funktionieren nicht alle Pakete. Darunter zum Beispiel nicht ifconfig, ip, nmap, arp, dpkg, lighthttpd und weitere andere.
Die Linux-Umgebung mitsamt Kernel ist nur wenige Megabyte groß. Über eine File-Provider-Extension lĂ€sst sich iSH auch in Apples vorinstallierte Dateien-App integrieren und erlaubt so einen Zugriff auf das eigene Dateisystem – um das Kopieren von Dateien in andere iOS-Apps zu ermöglichen.

Da ich derzeit ein iPhone 8 mit 256 Gigabyte Flssh-Speicher besitze, steht also der gesamte noch verfĂŒgbare Flash-Speicher fĂŒr die Erweiterung des Linux mit Programmen, Bibliotheken und Daten zur VerfĂŒgung. Das heißt aber auch im Umkehrschluss, dass in das Alpine Linux nachinstallierte Programmpakete und Bibliotheken seitens des iOS als Nutzer-Daten und Dokumente angesehen werden. Der Nachteil: Mein iPhone-Backup fĂ€llt auch entsprechend im Laufe der Nutzung grĂ¶ĂŸer auf meinen Backup-Medien aus. Der Vorteil ist aber, dass im Fall eines iPhone-Wechsels das gesamte System auf das neue GerĂ€t mit der Migration des iPhone-Backups in einem Rutsch mit kopiert wird. – Allerdings sofern die GesamtkapazitĂ€t des neuen GerĂ€tes nicht die GrĂ¶ĂŸe des Backups unterschreitet.

Midnight Commander in iSH

Die Neben-Story meines derzeitigen iPhones ist ja, dass ich vor genau drei Jahren bei dem Wechsel von meinem bis dahin genutzten iPhone 5 mit 32 GB Flashspeicher nicht abschĂ€tzen konnte, welche Speicherkonfiguration des damals neu angebotenen iPhone 8 fĂŒr mich die richtige ist. Mein Ziel seit damals ist ja, dass ich das GerĂ€t auch wieder mindestens 5 Jahre durchgĂ€ngig nutzen möchte. Voraussetzung war aber, dass ich alle Apps und Daten des restlos vollen 32 Gigabyte GerĂ€tes mit auf das damals neue iPhone 8 migriere und ĂŒbernehme. Das Problem bestand aber darin, dass ich dachte, die weiteren 32 Gigabyte auf die 64 Gigabyte in der kleinsten Konfiguration könne fĂŒr die immer grĂ¶ĂŸer werdenden Apps nicht fĂŒr die 5 kommenden Jahre reichen. Apple hat cleverer weise dann kein 128 Gigabyte Modell angeboten, weil sie genau wussten, dass der unsichere Kunde wie ich im Zweifel sowieso gleich auf die nĂ€chsthöhere Speicherkonfiguration zurĂŒckgreifen wird, und haben fĂŒr weitere 170,- Euro dann nur noch die 256 Gigabyte-Variante angeboten. – Um nun auf den Punkt zu kommen: Von den unterschĂ€tzten 64 Gigabyte sind nun nach drei Jahren noch 6,4 Gigabyte frei, und die insgesamt noch verfĂŒgbaren 198,4 Gigabyte machen nun fĂŒr mich endlich richtig Sinn.
Anstatt furchtbarer HTML-WebApps um Audio-/Video-Dateien bearbeiten und konvertieren zu können, jetzt die Kraft von FFmpeg auf der Shell. Statt herumfummeln mit Browser und Apps wie Documents, Dateien mit wget herunterladen. Oder anstatt Geld fĂŒr eine grafische App zahlen zu mĂŒssen, um Python-Code in einem Interpreter ausfĂŒhren zu können, mit der Gefahr, dass numerische Ergebnisse ungewöhnlich ausgegeben werden, der originale Interpreter wie ich ihn von jeder Unix-Konsole her kenne.

Apple! – DafĂŒr dass Ihr berechtigterweise es tatsĂ€chlich geschafft habt, mich fĂŒr 192 Gigabyte zusĂ€tzlichen Flashspeicher um weitere 170,- Euro ĂŒber den Tisch zu ziehen, verzeihe ich euch dafĂŒr ein wenig, weil ihr euch bezĂŒglich des Sideloading-Verbotes von Theodore Dubois austricksen habt lassen. – Ich hoffe, ihr ĂŒberlegt es euch nicht noch einmal anders und schmeißt iSH eben nicht wieder dafĂŒr aus dem App Store!

Jetzt noch zum Schluss das kurze HowTo, wie sich nach dem Download von iSH weitere Linux-Pakete installieren lassen.:

  1. wget http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk
  2. tar xf apk-tools-static-2.10.5-r1.apk sbin/apk.static
  3. ./sbin/apk.static add apk-tools
  4. rm sbin/apk.static

Links:
https://ish.app
iSH auf GitHub
iSH im Apple iOS App Store
Alpine Linux (engl. Wikipedia)
Projektseite Alpine Linux
Übernahme von TestFlight durch Apple (TechCrunch)
FFmpeg (engl. Wikipedia)
Wget (engl. Wikipedia)
Python (engl. Wikipedia)

Netzwerk-Bridge unter Linux mit TUN/TAP

Seit lĂ€ngerem trage ich bereits das Projekt in meinem Kopf herum, einen Mainframe-Computer der VAX-Reihe von Digital Equipment Corporation (kurz DEC) zu emulieren und auf diesem emulierten System wiederum das auch von DEC dazu entwickelte ‚Virtual Memory System‘ (kurz VMS spĂ€ter OpenVMS) als Betriebssystem zu installieren um damit ein wenig herum zu spielen. Ich habe aber bereits NetBSD, das ebenfalls von DEC entwickelte und proprietĂ€re Unix Ultrix, als auch OpenVMS auf die emulierte Maschine kurz installiert. Nur waren diese Unternhmungen eher halbherzig, denn eine wichtige Komponente hatte ich bisher nie mit einbezogen. NĂ€mlich die NetzwerkfĂ€higkeit eines dieser Systeme. Ohne Netzwerk ist so eine emulierte Maschine zwar schön zum anschauen und herum probieren, aber sie verharrt weiterhin als eine Art Insellösung, wie frĂŒher, als die Computer in den hĂ€uslichen Wohnstuben noch nicht mit einem (Drahtlos-) Netzwerk verbunden waren und selbst das Internet mittels eines Modemzugangs noch teuer und keine SelbstvestĂ€ndlichkeit waren. Erst die Kommunikation von Computern untereinander macht sie flexibel und nochmals interessanter. Mit einer Netzwerkanbindung lassen sich Betriebssystem und Programme updaten oder gar upgraden, Dateien und Nachrichten hin und her ĂŒbertragen und eigene Dienste anbieten.

Die Möglichkeit der NetzwerkkonnektivitĂ€t ist aus meiner Sicht zumindest bei der Desktop-Virtualisierung eine recht einfache Sache. Denn die VMWare’s, Parallels und VirtualBox’es dieser Welt richten wĂ€hrend ihrer Installation eine Netzwerkbridge in Software fĂŒr das Wirtssystems automatisch mit ein, da sie die nötigen Treiber bereits mitbringen. So kann fĂŒr eine virtuelle Maschine der Bridge-Modus zum direkten Zugriff auf ein physikalisches Netz, ein geteiltes Subnet mit NAT fĂŒr mehrere virtuelle Maschinen untereinander oder eine Peer-To-Peer Verbindung zum Wirtssystem angeboten werden.

Bei der Emulationssoftware simh ist das etwas anders. Das Programm bringt keinen eigenen Treiber fĂŒr eine Netzwerkbridge mit. Das Programm selber ist zwar netzwerkfĂ€hig, aber es ist nötig einen virtuellen Netzwerk-Kernel-Treiber wie TUN/TAP zu installieren, um die NetzwerkgerĂ€te zu simulieren.

TUN simuliert dabei ein Ende-zu-Ende-NetzwerkgerĂ€t (ISO OSI-Schicht 3) und kommuniziert mit IP-Paketen mit der Software, wĂ€hrend TAP eine Punkt-zu-Punkt-Verbindung mittels Ethernet-GerĂ€t simuliert (ISO OSI-Schicht 2) und ĂŒber Ethernet-Frames mit der Software kommuniziert.

In meinem DokuWiki habe ich einen ersten Workaround zur Erstellung einer Netzwerk-Bridge unter Linux mit TUN/TAP erstellt.:
Netzwerk-Bridge mit TUN/TAP fĂŒr eine Computer-Emulation

Links:
TUN/TAP (engl. Wikipedia)
TUN/TAP (Projektseite auf source forge)
SIMH (dt. Wikipedia)
DEC VAX (engl. Wikipedia)
DEC OpenVMS (engl. Wikipedia)
Ultrix (engl. Wikipedia)
NetBSD (dt. Wikipedia)

Individuelles ISO-Image unter macOS erstellen

Im Zuge meines Vorhabens dass ich mir nach langer Zeit wieder ein MS-DOS virtualisiert habe, stand ich auch wieder vor dem Problem ein individuelles ISO-CD-Image mit Computerdateien unter macOS zu erstellen. Im graphischen Programm ‚Disk Utility‘ (dt.: Festplattendienstprogramm) ist dies leider nicht direkt möglich. Allerdings muss im ‚Disk Utility‘ ĂŒber das MenĂŒ ‚File‚ -> ‚New Image‚ -> ‚Blank Image 
‚ ein leeres Image erstellt werden. Dabei ist darauf zu achten, dass im Dialogfenster unter ‚Partitions‘ ‚CD/DVD‘ und bei ‚Image Format‘ ‚DVD/CD-Master‘ als Optionen ausgewĂ€hlt sind.

Somit ist erst einmal ein Image mit der Dateierweiterung .cdr erstellt, das mit Dateien gefĂŒllt werden kann. Um daraus nun ein CD-ROM-konformes ISO-Image zu erstellen, ist das Kommandozeilenprogramm hdiutil nötig.

Der Befehl lautet:

hdiutil makehybrid -iso -o CD-ROM.ISO CD-ROM.cdr

Bei der Benennung der Output-Datei ist es aber nicht nötig .ISO als Dateierweiterung an zu hÀngen, da hdiutil dies automatisch tut.

Links:
Einrichten eines virtualisierten MS-DOS Systems (eigener Blogartikel)
ISO 9660 (dt. Wikipedia)