====== Installation d'Unix version 7 sur PDP-11 via l'émulateur SimH ====== **Unix version 7** aussi appelé **V7** a apporté comme principaux apports le **Bourne shell** au lieu du **Thompson shell** et la commande **chdir** pour changer de répertoire est devenu la populaire commande **cd**. Si vous souhaitez plus d'informations sur //Unix version 7//, rendez-vous [[wiki:histoire_informatique:research_unix#unix_version_7_et_unix_32v|ici]]. ===== Prérequis pour installer Unix version 7 ===== * Vous aurez besoin du logiciel **gzip** pour la décompression. * D'un éditeur de texte de votre choix. * D'un interpréteur **perl** pour créer la bande d'installation via le fichier ''mkdisttap.pl'' pour la **V7**. * De l'émulateur **SimH**. * Des sets d'**Unix version 7** (**V7**) qui sont les suivants : * ''f0.gz'' * ''f1.gz'' * ''f2.gz'' * ''f3.gz'' * ''f4.gz'' * ''f5.gz'' * ''f6.gz'' ===== Installation, configuration et téléchargement des éléments nécessaires ===== ==== Installation des logiciels nécessaires ==== Installation des logiciels sous Debian : sudo apt install perl gzip vim wget simh Installation des logiciels sous FreeBSD : sudo pkg install perl vim wget open-simh Choisissez l'éditeur de texte de votre choix, **vim** n'est pas forcément l'idéal pour tout le monde. 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 && sudo apt-get -f install. ==== Construction des répertoires pour Unix version 7 et téléchargement de ses sets ==== Création répertoires pour la //V7// : mkdir -p emulateur/simh/Unix-V7 Se rendre dans le répertoire ''Unix-V7'' : cd emulateur/simh/Unix-V7/ Téléchargement des sets de la //V7// : wget -r -np https://www.tuhs.org/Archive/Distributions/Research/Keith_Bostic_v7/ Déplacer les sets dans le répertoire courant : mv -v www.tuhs.org/Archive/Distributions/Research/Keith_Bostic_v7/f*.gz . Suppression du répertoire www.tuhs.org devenu inutile : rm -rf www.tuhs.org/ ==== Décompression des sets et création de la bande Unix version 7 ==== Décompression des sets avec **gzip** : gzip -d *.gz Fichier **perl** pour créer la bande : #!/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("f0", 512); end_file(); add_file("f1", 512); end_file(); add_file("f2", 512); end_file(); add_file("f3", 512); end_file(); add_file("f4", 512); end_file(); add_file("f5", 10240); end_file(); add_file("f6", 10240); 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éation du fichier ''mkdisttap.pl'' afficher ci-dessus avec votre éditeur de texte préféré : vim mkdisttap.plou : nano mkdisttap.pl Rendre le script perl ''mkdisttap.pl'' exécutable : chmod 755 mkdisttap.pl Création de la bande d'installation pour la //V7// : ./mkdisttap.pl > v7.tap Suppression des fichiers devenus inutiles : rm f* mkdisttap.pl ===== Processus d'installation et de configuration d'Unix version 7 ===== Création du fichier [[wiki:virtualisation_et_emulation:simh:tutos:unix-v7:install.ini]] : vim install.ini Boot via le fichier ''install.ini'' avec le simulateur **pdp11** de **SimH** : pdp11 install.ini ==== À partir du simulateur ==== Après ''Boot :'' tapez : tm(0,3)ensuite : 5000 hp(0,0) tm(0,4) tm(0,5) hp(0,0)appuyer sur la touche ''Entrer''. hp(0,0)hptmunix STTY -LCASE NL0 CR0pour passer de l'affichage en majuscule en minuscule. Supprimer les anciens noyaux : mv hptmunix unix rm hp*ix rm rp*ix ls *ixdoit afficher seulement le noyau ''unix''. Création des périphériques RP06 dans ''/dev'' : cd /dev make rp06 Créer les périphériques TU10 dans /dev : make tm Création d'un système de fichiers vierge sur disque RP06 : cd / /etc/mkfs /dev/rp3 322278 icheck /dev/rp3 Avance rapide de la bande et restauration de la tranche ''/usr'' : dd if=/dev/r#nrmt0 of=/dev/null bs=20b files=6 restor rf /dev/rmt0 /dev/rp3appuyer simplement sur la touche ''Entrer''. Montage de la tranche ''/usr'', clonage du bloc de démarrage et synchronisation du disque RP06 : /etc/mount /dev/rp3 /usr dd if=/usr/mdec/hpuboot of=/dev/rp0 count=1appuyez sur la combinaison de touche ''CTRL+E'' pour stopper le simulateur et à l'invite ''sim>'' appuyez sur la touche ''q'' pour quitter l'émulateur **SimH**. ==== Sur votre terminal hôte ==== Création du fichier [[wiki:virtualisation_et_emulation:simh:tutos:unix-v7:boot.ini]] pour pouvoir booter sur votre nouvelle installation d'//Unix version 7// : vim boot.ini Vous pouvez supprimer le fichier ''install.ini'' et la bande d'installation ''v7.tap'' : rm install.ini v7.tap Démarrer //Unix version 7// à partir de ''boot.ini'' : pdp11 boot.ini ==== Retour à votre simulateur PDP-11 SimH ==== Juste après l'affichage de ''Disabling XQ'', tapez : bootensuite : hp(0,0)unixpuis passer en mode multi-utilisateur avec la combinaison de touche ''CTRL+D''. Désormais on vous demande d'entrer votre login, tapez : rootsuivie du mot de passe : root **Vous pouvez à présent faire la découverte d'//Unix version 7// !** Lorsque vous souhaitez revenir au terminal de votre hôte, stopper le simulateur PDP-11 avec la combinaison de touche ''CTRL+E'' puis arrivé à l'invite ''sim>'' vous pouvez quitter l'émulateur **SimH** avec la touche ''q''. ===== Exemple de démarrage d'Unix version 7 ===== PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01 After Disabling XQ is displayed type boot and at the : prompt type hp(0,0)unix Disabling XQ boot Boot : hp(0,0)unix mem = 2020544 # RESTRICTED RIGHTS: USE, DUPLICATION, OR DISCLOSURE IS SUBJECT TO RESTRICTIONS STATED IN YOUR CONTRACT WITH WESTERN ELECTRIC COMPANY, INC. WED DEC 31 19:52:43 EST 1969 login: root Password: You have mail. # Pour rappel le mot de passe est ''root'' par défaut.