====== Installation de UNIX System V Release 1 sur PDP-11 via l'émulateur SimH ====== **UNIX System V Release 1** (**//SVR1//**) est la première version de [[wiki:histoire_informatique:at_t-unix|UNIX System V]], sortie en 1983. Ce système était disponible pour mini-ordinateurs PDP-11 et VAX. ===== Prérequis pour l'installation de SVR1 ===== * 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 SVR1. ===== Processus d'installation de SVR1 ===== ==== 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éer les répertoires pour l'installation de SVR1 : mkdir -p emulateur/simh/SVR1 Rendez-vous dans le dossier ''SVR1'' : cd emulateur/simh/SVR1 Télécharger les fichiers d'installation de SVR1 : wget -r -np http://squoze.net/UNIX/sysV_pdp11/files/ Déplacer les fichiers d'installation dans le répertoire courant : mv squoze.net/UNIX/sysV_pdp11/files/* . Contenu du script perl ''mkdisttap.pl'' pour créer la bande d'installation : #!/usr/local/bin/perl -w use strict; # Based on mkdisttap.pl # ftp://ftp.mrynet.com/pub/os/PUPS/PDP-11/Boot_Images/2.11_on_Simh/211bsd/mkdisttap.pl # # $Id: mkdisttap.pl,v 1.1 2006/09/16 23:33:46 kirk Exp kirk $ # # 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("bootstrap", 512); end_file(); add_file("root.image", 5120); end_file(); add_file("cpio.binary", 5120); end_file(); add_file("root.cpio", 5120); end_file(); add_file("usr.cpio", 5120); end_file(); add_file("graphics.cpio", 5120); end_file(); add_file("RJE.cpio", 5120); end_file(); add_file("man.cpio", 5120); end_file(); add_file("doc.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''. Créer le fichier mkdisttap.pl : vim mkdisttap.plpuis rendre le fichier exécutable : chmod +x mkdisttap.pl Créer la bande d'installation de SVR1 : ./mkdisttap.pl > dist.tape Création fichier [[wiki:virtualisation_et_emulation:simh:tutos:svr1:install.ini]] : vim install.ini Démarrer le simulateur **pdp11** avec fichier ''install.ini'' : pdp11 install.ini ==== Depuis le terminal du simulateur ==== n y 0 y y 0 ypuis appuyez sur la touche ''Entrer''. Le simulateur se coupe automatiquement, tapez cette commande : boot rp0 0après le caractère ''='' tapez : unixgdtmpuis la touche ''Entrer''. Vous arrivez sur une invite de commande ''#'' en mode single user. Pour modifier le comportement de ''erase'' et ''kill'' via la commande **stty** : stty erase # kill @ Installation du reste de la bande : echo echo echo echo cd / mkfs /dev/rrp1 322278 7 418 labelit /dev/rrp1 usr p0002 mount /dev/rp1 /usr cd /usr cpio -idmB cpio -idmB cpio -idmB mkdir man cd man cpio -idmB cpio -idmB Configurer le système en mode multi-utilisateur : ed /etc/rc /mount/ a /etc/mount /dev/rp1 /usr . w q ln /unixgdtm /unix sync sync sync sync syncpuis appuyer sur la combinaison de touche ''CTRL+E'' puis sur la touche ''q'' pour arrêter l'émulateur SimH. ==== Retour au terminal de votre hôte ==== Création du fichier [[wiki:virtualisation_et_emulation:simh:tutos:svr1:boot.ini]] : vim boot.ini Démarrer //SVR1// nouvellement installé : pdp11 boot.ini ==== Retour au terminal du simulateur ==== 0après le signe ''='' entrez : unix init 2 y n Enter le nom d'utilisateur : root Et voilà vous sous SVR1 en mode multi-utilisateur ! Si vous souhaitez supprimer les fichiers devenus inutiles : rm -rf bootstrap cpio.binary dist.tape *.cpio in* mkdisttap.pl root.image sysv_pdp11.tgz squoze.net ===== Exemple de boot de UNIX System V Release 1 ===== PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01 Disabling XQ #0=unix UNIX/sysV: unixgdtm real mem = 262144 bytes avail mem = 185280 bytes INIT: SINGLE USER MODE # init 2 INIT: New run level: 2 Is the date Wed Dec 1 15:35:46 EST 1982 correct? (y or n) y Do you want to check the file systems? (y or n) n /etc/rc: /usr/lib/ex2.15preserve: not found -su: /usr/lib/acct/startup: not found process accounting started /etc/rc: /usr/lib/errdemon: not found errdemon started mv: cannot access /usr/adm/sulog mv: cannot access /usr/adm/cronlog /etc/rc: /usr/adm/cronlog: cannot create cron started Console Login: root UNIX System V # Pour arrêter le système tapez : shutdown -y -g 0 -i 0puis : init 1attendre d'être mode single user et arrêter l'émulateur.