====== Installation d'UNIX System III sur PDP-11 via l'émulateur SimH ====== ===== Prérequis pour installer UNIX System III ===== * Un interpréteur **perl** pour pouvoir créer la bande d'installation via le script ''mkdisttap.pl''. * Un éditeur de texte (vim, nano, gedit…). * Le simulateur **pdp11** de l'émulateur SimH. * Tous les fichiers qui composent UNIX System III pour PDP-11. ===== Processus d'installation d'UNIX System III ===== ==== Depuis un terminal de votre système hôte ==== Installation des logiciels requis sous Debian : sudo apt install perl wget vim simh J'ai constaté que le paquet **simh** a été retiré de Debian 13. Si souhaitez récupérer et installer le paquet ''.deb'' faîtes ceci : wget http://ftp.fr.debian.org/debian/pool/main/s/simh/simh_3.8.1-6.1_amd64.debpuis : sudo dpkg -i simh_3.8.1-6.1_amd64.deb**SimH** n'a pas besoin de dépendances logicielles donc inutile de taper la commande ''sudo apt-get -f install''. Installation des logiciels requis sous FreeBSD : sudo pkg install perl wget vim open-simh Création des répertoires pour UNIX System III : mkdir -p emulateur/simh/SysIII_PDP11 Se rendre dans le répertoire ''SysIII_PDP11'' : cd emulateur/simh/SysIII_PDP11 Télécharger les fichiers d'installation de UNIX System III pour PDP-11 : wget -r -np http://squoze.net/UNIX/sysIII_pdp11/files/ Déplacer les fichiers d'installation dans le répertoire courant : mv squoze.net/UNIX/sysIII_pdp11/files/* . Contenu du script perl ''mkdisttap.pl'' pour créer la bande d'installation : #!/usr/local/bin/perl -w use strict; # Based on the example in the HOWTO using dd. Does not work! # add_file("cat mtboot mtboot boot |", 512); # Based on the maketape.c program and the maketape.data data file. add_file("boot", 512); end_file(); add_file("mini-root", 5120); end_file(); add_file("cpio.tape", 512); end_file(); add_file("root.cpio", 5120); end_file(); add_file("usr.cpio", 5120); end_file(); add_file("src1.cpio", 5120); end_file(); add_file("src2.cpio", 5120); end_file(); add_file("man.cpio", 5120); end_file(); end_file(); sub end_file { print "\x00\x00\x00\x00"; } sub add_file { my($filename, $blocksize) = @_; my($block, $bytes_read, $length); open(FILE, $filename) || die("Can't open $filename: $!"); while($bytes_read = read(FILE, $block, $blocksize)) { if($bytes_read < $blocksize) { $block .= "\x00" x ($blocksize - $bytes_read); $bytes_read = $blocksize; } $length = pack("V", $bytes_read); print $length, $block, $length; } close(FILE); } Sous GNU/Linux il faut modifier le **shebang** (première ligne du fichier) ''#!/usr/local/bin/perl -w'' par ''#!/usr/bin/perl -w'' du fichier ''mkdisttap.pl''. Le script perl ''mkdisttap.pl'' est déjà présent, il faut juste le rendre exécutable : chmod +x mkdisttap.pl Créer la bande d'installation d'UNIX System III : ./mkdisttap.pl > dist.tape Création du fichier [[wiki:virtualisation_et_emulation:simh:tutos:sys3_pdp11:install.ini]] : vim install.ini Démarrer le simulateur **pdp11** avec le fichier ''install.ini'' : pdp11 install.ini ==== Depuis le terminal du simulateur ==== n y 0 y y 0 yappuyez sur la touche ''Entrer'' après ''(e.g. p0001):''. Le simulateur se coupe automatiquement, tapez cette commande pour booter sur le disque : boot rp0 0après le caractère ''='' tapez : unixhptmpuis la touche ''Entrer''. stty erase # kill @ echo echo echo echo cd / mkfs /dev/rrp1 322278 7 418soyez un peu patient... labelit /dev/rrp1 usr p0002 mount /dev/rp1 /usr cd /usr cpio -idmB cd /usr/src cpio -idmB cpio -idmB cd /usr/man cpio -idmB Configuration du système pour passer en mode multi-utilisateur : mkdir /tmp mkdir /usr/adm ed /etc/rc /umount/ a /etc/umount /dev/rp1 . /^2)/ /: put mounts here/ a /etc/mount /dev/rp1 /usr . w q ln /unixhptm /unix Synchronisez le disque et quitter l'émulateur : sync sync sync sync syncpuis appuyez sur la combinaison de touche ''CTRL+E'' pour stopper le simulateur et appuyez sur la touche ''q'' après l'invite ''sim>''. ==== Retour au terminal de votre hôte ==== Création du fichier [[wiki:virtualisation_et_emulation:simh:tutos:sys3_pdp11:boot.ini]] : vim boot.ini Démarrer //UNIX System III// nouvellement installé : pdp11 boot.ini ==== Retour au terminal du simulateur ==== UNIX System III démarrer tapez les commandes suivantes : 0après le signe ''='' entrez : unix init 2puis appuyez sur la combinaison de touche ''CTRL+D'' pour passer en mode multi-utilisateur. Ensuite entrer le login (nom d'utilisateur) : root Vous pouvez désormais découvrir UNIX System III sur PDP-11 ! Pour éteindre le système UNIX System III, tapez : shutdown -y -g0 -i0 y npuis vous pouvez stopper le simulateur avec la combinaison de touche ''CTRL+E'' et enfin appuyer sur la touche ''q''. Si vous souhaitez supprimer les fichiers inutiles, tapez la commande : rm -rf boot cpio.tape dist.tape in* mini-root *.cpio s* ===== Exemple de démarrage et d'extinction d'UNIX System III sur PDP-11 ===== ==== Exemple de démarrage ==== PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01 Disabling XQ #0=unix UNIX/3.0.1: unixhptm real mem = 262144 bytes avail mem = 195776 bytes unix single-user # init 2 # process accounting started errdemon started cron started multi-user type ctrl-d login: root UNIX Release 3.0 # ==== Exemple d'extinction ==== # shutdown -y -g0 -i0 SHUTDOWN PROGRAM Wed Oct 26 15:26:50 EDT 1983 Broadcast Message from root SYSTEM BEING BROUGHT DOWN NOW ! ! ! Busy out (push down) the appropriate phone lines for this system. Do you want to continue? (y or n): y Process accounting stopped. Error logging stopped. All currently running processes will now be killed. unix single-user UID PID PPID C STIME TTY TIME COMMAND root 0 0 40 15:19:34 ? 8:11 swapper root 1 0 0 15:19:34 ? 0:00 INIT 1 root 39 1 0 15:19:51 co 0:00 -sh root 42 39 0 15:26:50 co 0:00 [ sh ] root 97 42 0 15:27:46 co 0:00 ps -eaf Will a file save be done at this time? Type either ( y or n ) : n Halt the system when ready. # Simulation stopped, PC: 020120 (MOV (SP)+,177776) sim> q Goodbye