Table des matières

Installation de UNIX System III sur VAX-11/780 via l'émulateur SimH

UNIX System III est le premier Unix commercial de l'entreprise AT&T, il est sorti en novembre 1981 et associait divers variantes internes au Bell Labs : Unix version 7, PWB/UNIX 2.0, CB UNIX 3.0, UNIX/RT et UNIX/32V. UNIX System III a été porté à la fois sur PDP-11 et VAX-11/780.

Juste pour info UNIX System III est le premier Unix à avoir intégré la commande uname, sous BSD cette commande n'a été intégré qu'à partir de 4.4BSD.

Prérequis pour installer UNIX System III

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.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éation des répertoires pour UNIX System III :

mkdir -p emulateur/simh/SysIII_VAX

Se rendre dans le répertoire SysIII_VAX :

cd emulateur/simh/SysIII_VAX

Télécharger les fichiers d'installation de UNIX System III :

wget -r -np http://squoze.net/UNIX/sysIII_vax/files/

Déplacer les fichiers d'installation dans le répertoire courant :

mv http://squoze.net/UNIX/sysIII_vax/files/* .

Contenu du script perl mkdisttap.pl pour créer la bande d'installation :

mkdisttap.pl
#!/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("bootstrap", 512);
end_file();
add_file("fixed_root.img", 5120);
end_file();
add_file("cpio", 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 install.ini :

vim install.ini

Démarrer le simulateur vax780 avec le fichier install.ini :

vax780 install.ini

Depuis le terminal du simulateur

y
0
y
y
0
y

après What is the pack volume label? (e.g. p0001): appuyez sur la touche Entrer, cela renvoie vers l'invite sim>.

Tapez :

q

pour arrêter l'émulateur SimH.

Retour au terminal de votre hôte

Création du fichier install2.ini :

vim install2.ini

Redémarrer le simulateur vax780 avec le fichier install2.ini :

vax780 install2.ini

Retour au terminal du simulateur

unixhpht
echo </dev/mt4
echo </dev/mt4
echo </dev/mt4
echo </dev/mt4
/etc/mkfs /dev/rrp1 322278 7 418
labelit /dev/rrp1 usr p0002
mount /dev/rp1 /usr
cd /usr
cpio -idmB </dev/rmt4
cpio -idmB </dev/rmt4
cpio -idmB </dev/rmt4
mkdir man
cd man
cpio -idmB </dev/rmt4

Configuration du système pour passer en mode multi-utilisateur :

ed /etc/rc
/umount/
a
        /etc/umount /dev/rp1
.
/mount/
a
    /etc/mount /dev/rp1 /usr
.
w
q
ln /unixhpht /unix

Synchronisation du disque :

sync
sync
sync
sync
sync

Arrêtez l'émulateur en tapant la combinaison de touche CTRL+E puis appuyez sur la touche q après l'invite sim>.

Retour au terminal de votre hôte

Création du fichier boot.ini :

vim boot.ini

Démarrer UNIX System III via l'émulateur :

vax780 boot.ini

Retour au terminal du simulateur

unix
init 2

puis appuyez sur la combinaison de touche CTRL+D pour afficher l'invite login:, puis :

root
sync
sync
sync
sync
sync

Vous pouvez parcourir UNIX system III et découvrir ses entrailles !

Pour arrêter l'émulation tapez simplement la combinaison de touche CTRL+E puis après l'invite sim> la touche q.

Si vous souhaitez supprimer les fichiers et répertoire devenus inutiles :

rm -rf bootstrap cpio dist.tape fixed_root.img in* m* *.cpio sysiii_vax.tgz squoze.net

Exemple de démarrage d'UNIX System III

VAX 11/780 simulator Open SIMH V4.1-0 Current        simh git commit id: d4f85d01

HALT instruction, PC: 00030040 (HALT)

$$ unix

UNIX/3.0.1: unixhpht
real mem  = 8323072
avail mem = 8207872
unix
single-user
# init 2
# -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/lib/cronlog
/etc/rc: /usr/lib/cronlog: cannot create
cron started
multi-user
type ctrl-d

login: root
UNIX Release 3.0
#

Pour stopper le système :

#               ## Tapez la combinaison de touche "CTRL+E"
Simulation stopped, PC: 80000625 (BLBC 8000BEF4,80000625)
sim> q
Goodbye