====== 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.deb
puis : 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.pl
puis 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
y
puis appuyez sur la touche ''Entrer''.
Le simulateur se coupe automatiquement, tapez cette commande :
boot rp0
0
après le caractère ''='' tapez :
unixgdtm
puis 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
sync
puis 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 ====
0
aprè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 0
puis : init 1
attendre d'être mode single user et arrêter l'émulateur.