====== 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.deb
puis : 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.pl
ou :
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 CR0
pour passer de l'affichage en majuscule en minuscule.
Supprimer les anciens noyaux :
mv hptmunix unix
rm hp*ix
rm rp*ix
ls *ix
doit 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/rp3
appuyer 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=1
appuyez 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 :
boot
ensuite :
hp(0,0)unix
puis passer en mode multi-utilisateur avec la combinaison de touche ''CTRL+D''.
Désormais on vous demande d'entrer votre login, tapez :
root
suivie 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.