====== Installation d'Unix version 6 sur PDP-11 avec émulateur SimH ====== ===== Prérequis pour Unix version 6 ===== Création des répertoires pour **Unix version 6** : mkdir -p emulateur/simh/Unix-V6 Se rendre dans le répertoire nouvellement créé : cd emulateur/simh/Unix-V6/ Télécharger la bande d'installation d'//Unix Version 6// : wget http://squoze.net/UNIX/v6/files/dist.tap Sous FreeBSD tapez cette commande : fetch http://squoze.net/UNIX/v6/files/dist.tappour télécharger la bande d'installation. ===== Processus d'installation d'Unix version 6 ===== ==== Installation du système de fichiers racine ==== Créer fichier ''install.ini'' avec votre éditeur de texte dont le contenu est le suivant : set cpu 11/40 set tm0 locked att tm0 dist.tap att rk0 disk0.rk att rk1 disk1.rk att rk2 disk2.rk d 100000 012700 d 100002 172526 d 100004 010040 d 100006 012740 d 100010 060003 d 100012 000777 g 100000 g 0 Booter à partir de ''install.ini'' avec simulateur PDP-11 : pdp11 install.inipuis appuyez sur la combinaison de touche ''CTRL+E''. Après le signe ''='' tapez : tmrk O 100 1 Le signe ''='' s'affiche à nouveau, tapez : tmrk 1 101 3999 À l'affichage ''='' tapez ''CTRL+E''. À l'invite de commande de SimH ''sim>'', tapez : boot rk0après le signe ''@'' tapez : rkunixpour démarrer Unix à partir du premier disque ''rk0''. Au ''login:'' entrer l'utilisateur : root ==== Création des fichiers de périphériques ==== Utilisation de l'outil **mknod** : /etc/mknod /dev/rk0 b 0 0 /etc/mknod /dev/rk1 b 0 1 /etc/mknod /dev/rk2 b 0 2 /etc/mknod /dev/rrk0 c 9 0 /etc/mknod /dev/rrk1 c 9 1 /etc/mknod /dev/rrk2 c 9 2 /etc/mknod /dev/mt0 b 3 0 /etc/mknod /dev/rmt0 c 12 0 ==== Copie des disques suivie de leurs montage ==== Copiez les disques : dd if=/dev/mt0 of=/dev/rk1 count=4000 skip=4100 dd if=/dev/mt0 of=/dev/rk2 count=4000 skip=8100 Montez les disques : /etc/mount /dev/rk1 /usr/source mkdir /usr/doc /etc/mount /dev/rk2 /usr/doc Édition avec **ed** de ''/etc/rc'' pour le montage des disques au démarrage : ed /etc/rc 2 a /etc/mount /dev/rk1 /usr/source /etc/mount /dev/rk2 /usr/doc . w q Synchronisation des disques : sync sync syncpuis on coupe le simulateur avec les touches ''CTRL+E'', et enfin : qà l'invite ''sim>'' de SimH. === Résumé de l'intégralité du processus avec le fichier install.ini === PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01 Disabling XQ /home/beastie/emulateur/simh/Unix-V6/install.ini-3> att tm0 dist.tap %SIM-INFO: TM0: Tape Image 'dist.tap' scanned as SIMH format /home/beastie/emulateur/simh/Unix-V6/install.ini-4> att rk0 disk0.rk %SIM-INFO: RK0: Creating new file: disk0.rk /home/beastie/emulateur/simh/Unix-V6/install.ini-5> att rk1 disk1.rk %SIM-INFO: RK1: Creating new file: disk1.rk /home/beastie/emulateur/simh/Unix-V6/install.ini-6> att rk2 disk2.rk %SIM-INFO: RK2: Creating new file: disk2.rk Simulation stopped, PC: 100012 (BR 100012) =tmrk disk offset 0 tape offset 100 count 1 =tmrk disk offset 1 tape offset 101 count 3999 = Simulation stopped, PC: 137274 (TSTB @#177560) sim> boot rk0 @rkunix login: root # stty erase # kill @ # stty cr0 # /etc/mknod /dev/rk0 b 0 0 # /etc/mknod /dev/rk1 b 0 1 # /etc/mknod /dev/rk2 b 0 2 # /etc/mknod /dev/rrk0 c 9 0 # /etc/mknod /dev/rrk1 c 9 1 # /etc/mknod /dev/rrk2 c 9 2 # /etc/mknod /dev/mt0 b 3 0 # /etc/mknod /dev/rmt0 c 12 0 # dd if=/dev/mt0 of=/dev/rk1 count=4000 skip=4100 4000+0 records in 4000+0 records out # dd if=/dev/mt0 of=/dev/rk2 count=4000 skip=8100 4000+0 records in 4000+0 records out # /etc/mount /dev/rk1 /usr/source # mkdir /usr/doc # /etc/mount /dev/rk2 /usr/doc # ed /etc/rc 28 2 /etc/update a /etc/mount /dev/rk1 /usr/source /etc/mount /dev/rk2 /usr/doc . w 89 q # sync # sync # sync # sync # sync # Simulation stopped, PC: 002502 (MOV (SP)+,177776) sim> q Goodbye ==== Recompilation du noyau et de la configuration du système ==== Vous pouvez supprimer ''install.ini'' et la bande d'installation qui ne sera plus utile : rm install.ini dist.tap Créer un fichier ''boot.ini'' pour redémarrer le simulateur PDP-11 avec ce contenu : set cpu 11/40 att rk0 disk0.rk att rk1 disk1.rk att rk2 disk2.rk ; att tm0 scratch.tape ; att lpt printer.txt ; att ptp paperout ; att ptr paperin set dci en set dci lines=8 att dci 1106 d sr 1 b rk Lancer le simulateur PDP-11 avec ''boot.ini'' : pdp11 boot.ini Après le signe ''@'' tapez : rkunix Et à la demande du login : root Suppression des noyaux inutiles et compilation du nouveau noyau : rm hpunix rpunix unix chdir /usr/sys/conf cc mkconf.c mv a.out mkconf cat >myconf rk tm pc 8dc lppuis appuyer sur la combinaison de touche ''CTRL+D'' pour revenir à l'invite de commande. mkconf as m40.s mv a.out m40.o ld -x l.o m40.o c.o ../lib1 ../lib2 mv a.out /unix sync sync syncpuis ''CTRL+E'' pour stopper le simulateur. À l'invite ''sim>'' booter sur le disque rk0 : b rk0 Après le signe ''@'' tapez : unix Supprimer noyau ''rkunix'' : rm rkunix Création des fichiers de périphériques nécessaires avec la commande **mknod** : /etc/mknod /dev/lp0 c 2 0 /etc/mknod /dev/pc c 1 0 /etc/mknod /dev/tty0 c 3 0 /etc/mknod /dev/tty1 c 3 1 /etc/mknod /dev/tty2 c 3 2 /etc/mknod /dev/tty3 c 3 3 /etc/mknod /dev/tty4 c 3 4 /etc/mknod /dev/tty5 c 3 5 /etc/mknod /dev/tty6 c 3 6 /etc/mknod /dev/tty7 c 3 7 Modification de ''/etc/ttys'' avec **ed** : ed /etc/ttys 1,8s/./1/ w q Éditer le code source de **df**, **icheck** et **dcheck** pour renseigner les disques que nous avons montés précédemment et compiler ses utilitaires : chdir /usr/source/s1 ed df.c /rp/ d -i "/dev/rk0", "/dev/rk1", . w q ed icheck.c /rp/ d -i "/dev/rrk0", "/dev/rrk1", . w q ed dcheck.c /rp/ d -i "/dev/rrk0", "/dev/rrk1", . w q cc df.c mv a.out /bin/df cc icheck.c mv a.out /bin/icheck cc dcheck.c mv a.out /bin/dcheck **Vous pouvez désormais utiliser //Unix version 6// sans problème !** Si vous souhaitez stopper la simulation tapez la combinaison de touches ''CTRL+E'' et à l'invite ''sim>'' appuyer sur la touche ''q'' pour quitter l'émulateur et revenir à votre terminal Linux, BSD. La commande **cd** n'était toujours pas existante sous //Unix version 6//, c'est la commande **chdir** qui joue le même rôle. === Résumé de l'intégralité du processus avec le fichier boot.ini === PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01 Disabling XQ /home/beastie/emulateur/simh/Unix-V6/boot.ini-11> att dci 1106 %SIM-INFO: Listening on port 1106 @rkunix mem = 1035 RESTRICTED RIGHTS Use, duplication or disclosure is subject to restrictions stated in Contract with Western Electric Company, Inc. login: root # rm hpunix rpunix unix # chdir /usr/sys/conf # cc mkconf.c # mv a.out mkconf # cat >myconf rk tm pc 8dc lp # mkconf b rk0 @unix mem = 1027 RESTRICTED RIGHTS Use, duplication or disclosure is subject to restrictions stated in Contract with Western Electric Company, Inc. login: root # rm rkunix # /etc/mknod /dev/lp0 c 2 0 # /etc/mknod /dev/pc c 1 0 # /etc/mknod /dev/tty0 c 3 0 # /etc/mknod /dev/tty1 c 3 1 # /etc/mknod /dev/tty2 c 3 2 # /etc/mknod /dev/tty3 c 3 3 # /etc/mknod /dev/tty4 c 3 4 # /etc/mknod /dev/tty5 c 3 5 # /etc/mknod /dev/tty6 c 3 6 # /etc/mknod /dev/tty7 c 3 7 # ed /etc/ttys 112 1,8s/./1/ w 112 q # chdir /usr/source/s1 # ed df.c 1282 /rp/ "/dev/rp0", d -i "/dev/rk0", "/dev/rk1", . w 1301 q # ed icheck.c 5051 /rp/ "/dev/rrp0", d -i "/dev/rrk0", "/dev/rrk1", . w 5072 q # ed dcheck.c 3332 /rp/ "/dev/rrp0", d -i "/dev/rrk0", "/dev/rrk1", . w 3352 q # cc df.c # mv a.out /bin/df # cc icheck.c # mv a.out /bin/icheck # cc dcheck.c # mv a.out /bin/dcheck # df /dev/rk0 1155 /dev/rk1 940 /dev/rk2 bad free count 192 # Simulation stopped, PC: 002656 (MOV (SP)+,177776) sim> q Goodbye ===== Exemple de démarrage d'Unix version 6 ===== PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01 Disabling XQ /home/beastie/emulateur/simh/Unix-V6/boot.ini-11> att dci 1106 %SIM-INFO: Listening on port 1106 @unix mem = 1027 RESTRICTED RIGHTS Use, duplication or disclosure is subject to restrictions stated in Contract with Western Electric Company, Inc. login: root #