====== Installation und Einrichtung von Research UNIX Time-Sharing System Seventh Edition (V7) auf einer emulierten DEC PDP-11/70 unter SIMH ====== ===== Vorraussetzungen ===== - DEC Tape Magnetband Research UNIX V7 von Keith Bostic im THUS-Verzeichnis HINWEIS: Kommentare am Ende einer Zeile des Formulars: [## Comment] ===== Konfigurationsdatei install.txt für die PDP-11 mit Research UNIX V7 unter SIMH ===== set cpu 11/45 set cpu idle set rp0 rp06 att rp0 rp06-0.disk att tm0 install_v7.tap boot tm0 ===== Installation vom DEC Tape ===== simh@debian:~/PDP-11_UNIX-V7$ ./../simh-Beta4/BIN/pdp11 install.txt PDP-11 simulator V4.0-0 Current git commit id: 5f8a8cca Disabling XQ RP: creating new file Overwrite last track? [N] [## Just hit enter] Boot : Einfach die Eingabetaste drücken, damit die letzte Spur nicht überschrieben wird. Danach wird der Bootloader angezeigt. Es soll das dritte Programm vom Magnetband geladen werden, mkfs ausgeführt und die 'a'-Partition formatiert werden. Boot : tm(0,3) file sys size: 5000 file system: hp(0,0) isize = 1600 m/n = 3 500 Exit called Boot : Die Blockgröße ergibt sich aus vorkompilierten Festplattengrößen im Kernel. Unix war damals nicht so dynamisch wie das, was wir in der heutigen Zeit so gewöhnt sind. Boot : tm(0,4) Tape? tm(0,5) Disk? hp(0,0) Last chance before scribbling on disk. [## Just hit enter] End of tape Boot : Sobald die Formatierung abgeschlossen ist, wird man zum Bootloader zurückgeworfen. Es wird das vierte Programm geladen, welches das Wiederherstellungsprogramm ist, um die Root-Partition wieder herzustellen. Nun kann UNIX von der Festplatte gestartet werden, um das Betriebssystem einzurichten. Der Konsolentreiber gibt alles in Großbuchstaben wieder, alle Befehle werden jedoch in Kleinbuchstaben eingegeben. Es wird stty auf Kleinbuchstaben gesetzt, sowie Zeilenvorschub und Wagenrücklauf beschleunigt. Boot : hp(0,0)hptmunix mem = 177344 # STTY -LCASE NL0 CR0 # Kernel nach "unix" kopieren und die anderen Versionen löschen. # mv hptmunix unix # rm hp*ix # rm rp*ix # ls *ix unix # Festplattenlaufwerk RP06 in /dev erstellen. # cd /dev # make rp06 /etc/mknod rp0 b 6 0 /etc/mknod swap b 6 1 /etc/mknod rp3 b 6 7 /etc/mknod rrp0 c 14 0 /etc/mknod rrp3 c 14 7 chmod go-w rp0 swap rp3 rrp0 rrp3 # Magnetbandlaufwerk TU10 in /dev erstellen. # make tm /etc/mknod mt0 b 3 0 /etc/mknod rmt0 c 12 0 /etc/mknod nrmt0 c 12 128 chmod go+w mt0 rmt0 nrmt0 # Erstellen eines leeren Laufwerks auf Festplatte RP06 erstellen und es überprüfen. # cd / # /etc/mkfs /dev/rp3 322278 isize = 65496 m/n = 3 500 # icheck /dev/rp3 /dev/rp3: files 2 (r=1,d=1,b=0,c=0) used 1 (i=0,ii=0,iii=0,d=1) free 314088 missing 0 # Magnetband vorspulen und das /usr-Dateisystem auf Festplatte RP06 wiederherstellen. # dd if=/dev/r#nrmt0 of=/dev/null bs=20b files=6 202+80 records in 202+75 records out # restor rf /dev/rmt0 /dev/rp3 Last chance before scribbling on /dev/rp3. [## Just hit enter] End of tape # /usr mounten, Bootblock auf die Festplatte kopieren und dann den SIMH-Emulator beenden. Es ist eine gute Idee, sicherzustellen, dass die Superblöcke unserer Dateisysteme geschrieben sind (synchronisiert) auf die Festplatte, bevor wir das Gerät virtuell ausschalten. # /etc/mount /dev/rp3 /usr # dd if=/usr/mdec/hpuboot of=/dev/rp0 count=1 0+1 records in 0+1 records out # sync # sync # sync # sync # [## Type CTRL-E (^E) here] Simulation stopped, PC: 002306 (MOV (SP)+,177776) sim> q Goodbye ===== SIMH-Konfigurationsdatei start.txt der PDP-11 für den normalen Betrieb ===== Dies ist die Konfigurationsdatei der PDP-11/70 für den normalen Boot-Prozess von UNIX. Es wird direkt vom Festplattenlaufwerk RP06 gebootet. SIMH zeigt hier immer "Disabling XQ" an und wartet darauf, dass "boot" eingegeben wird, um den eigentlichen Boot-Prozess von der Festplatte zu starten. echo echo After Disabling XQ is displayed type boot echo and at the : prompt type hp(0,0)unix echo set cpu 11/70 set cpu 2M set cpu idle set rp0 rp06 att rp0 rp06-0.disk set dci en set dci lines=4 att dci 2323 boot rp0 ===== Der erste Systemstart ===== simh@debian:~/PDP-11_UNIX-V7$ ./../simh-Beta4/BIN/pdp11 install.txt PDP-11 simulator V4.0-0 Current git commit id: 5f8a8cca After Disabling XQ is displayed type boot and at the : prompt type hp(0,0)unix Disabling XQ boot [## Type boot here to get the actual boot prompt] Boot : hp(0,0)unix mem = 2020544 # [## Type CTRL-D (^D) here to enter multi-user mode] RESTRICTED RIGHTS: USE, DUPLICATION, OR DISCLOSURE IS SUBJECT TO RESTRICTIONS STATED IN YOUR CONTRACT WITH WESTERN ELECTRIC COMPANY, INC. WED DEC 31 19:03:27 EST 1969 login: root Password: You have mail. # [## Type CTRL-E (^E) here] Simulation stopped, PC: 002306 (MOV (SP)+,177776) sim> q Goodbye Das Standardpasswort für den Benutzer root ist 'root'. ===== .profile mit vernünftigen TTY-Standardeinstellungen ===== Nachdem die Datei .profile für root erstellt wurde, durch die Eingabe von ^d sich abmelden. Diese Datei kann auch für jeden der anderen Benutzer in deren jeweiligen Heimat-Verzeichnis erstellt werden. # echo 'stty erase "^h" kill "^u" nl0 cr0'> .profile # ^d ===== Einrichtung zur Unterstützung mehrerer TTY-Terminals ===== Damit mehrere serielle Terminals gleichzeitig am System sich anmelden können, sind in der start.txt folgende drei Zeilen implementiert.: ... set dci en set dci lines=4 att dci 2323 ... Somit sind an dem DC11-Gerät 4 Leitungen, dass auf dem Hostsystem auf Port 2323 lauscht. Der Port kann natürlich auf einen beliebigen unbenutzten geändert werden. Um die 4 DC11-Leitungen nutzen zu können, muss das UNIX-System neu konfiguriert werden und DC11-Geräte unterstützen. Die seriellen TTY-Schnittstellen müssen verfügbar sein und nach einer Telnet-Verbindung lauschen. # cd /usr/sys/conf # rm l.o c.o # cp hptmconf myconf # echo 4dc >> myconf # mkconf < myconf # make as - -o l.o l.s cc -c c.c ld -o unix -X -i l.o mch.o c.o ../sys/LIB1 ../dev/LIB2 # sum unix 10314 106 # ls -l unix -rwxrwxr-x 1 root 54122 Dec 31 19:09 unix # mv unix /munix # ed /etc/ttys 266 2,5s/./1/ w 266 q # sed -n '1,6p' /etc/ttys 14console 10tty00 10tty01 10tty02 10tty03 00tty04 # /etc/mknod /dev/tty00 c 3 0 # /etc/mknod /dev/tty01 c 3 1 # /etc/mknod /dev/tty02 c 3 2 # /etc/mknod /dev/tty03 c 3 3 # chmod 640 /dev/tty0? # cd / # cp unix unix.bak # mv munix unix Auf dem Host-System muss allerdings ein Telnet-Client installiert sein. Diesen zum Beispiel unter Debian-Linux nachinstallieren. sudo apt-get install telnet Läuft der SIMH-Emulator mit der PDP-11, so kann auf dem Hostsystem ein zweites Terminal-Fenster geöffnet werden. Dadurch es ist möglich, über eine der seriellen DC11-Leitungen eine (weitere) klassische Telnet-Verbindung zur PDP-11 aufzubauen. ===== Weitere User unter UNIX V7 einrichten ===== Unter UNIX Time-Sharing System Version 7 gab es noch kein separates Kommando, mit dem sich ein neuer Benutzer erstellen lässt. Außerdem war es bereits seit dieser Zeit noch sehr lange üblich, dass die Verzeichnisse der Benutzer im Verzeichnis /usr abgelegt wurden. Der Ordnung halber wird wie auf den modernen BSD's, beziehungsweise wie bei Linux, das Verzeichnis /home angelegt, in dem dann die Ordner der einzelnen Benutzer gesammelt werden. Im Beispiel wird der Benutzer 'sommteck' angelegt. Der User wird durch das Bearbeiten der Datei /etc/passwd installiert. ed /etc/passwd 141 $a sommteck::10:1::/home/sommteck: . w q # Das Sammelverzeichnis /home bekommt als Eigentümer 'bin'. Der Eigentümer des jeweiligen Benutzerverzeichnisses ist immer dieser selbst. # mkdir /home # chown bin /home # mkdir /home/sommteck # chown sommteck /home/sommteck Mit dem Programm passwd kann für den Benutzer dann das Passwort gesetzt werden. # passwd sommteck New password: [## secure password] Retype new password: [## secure password] # ===== Links ===== - https://gunkies.org/wiki/Installing_v7_on_SIMH\\ - https://gunkies.org/wiki/Setting_Up_Unix_-_Seventh_Edition\\ - https://decuser.blogspot.com/2015/12/installing-and-using-research-unix.html\\ - https://drive.google.com/file/d/1Qqg41b2On-VpP9qjpXAEi8hV4RurgC92/view\\ - https://www.tuhs.org (The Unix Heritage Society)