Table des matières

Installation d'UNIX System III sur PDP-11 via l'émulateur SimH

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_PDP11

Se rendre dans le répertoire SysIII_PDP11 :

cd emulateur/simh/SysIII_PDP11

Télécharger les fichiers d'installation de UNIX System III pour PDP-11 :

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

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

mv squoze.net/UNIX/sysIII_pdp11/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("boot", 512);
end_file();
add_file("mini-root", 5120);
end_file();
add_file("cpio.tape", 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 pdp11 avec le fichier install.ini :

pdp11 install.ini

Depuis le terminal du simulateur

n
y
0
y
y
0
y

appuyez sur la touche Entrer après (e.g. p0001):.

Le simulateur se coupe automatiquement, tapez cette commande pour booter sur le disque :

boot rp0
0

après le caractère = tapez :

unixhptm

puis la touche Entrer.

stty erase # kill @
echo </dev/mt4
echo </dev/mt4
echo </dev/mt4
echo </dev/mt4
cd /
mkfs /dev/rrp1 322278 7 418

soyez un peu patient…

labelit /dev/rrp1 usr p0002
mount /dev/rp1 /usr
cd /usr
cpio -idmB </dev/rmt4
cd /usr/src
cpio -idmB </dev/rmt4
cpio -idmB </dev/rmt4
cd /usr/man
cpio -idmB </dev/rmt4

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

mkdir /tmp
mkdir /usr/adm
ed /etc/rc
/umount/
a
        /etc/umount /dev/rp1
.
/^2)/
/: put mounts here/
a
        /etc/mount /dev/rp1 /usr
.
w
q
ln /unixhptm /unix

Synchronisez le disque et quitter l'émulateur :

sync
sync
sync
sync
sync

puis appuyez sur la combinaison de touche CTRL+E pour stopper le simulateur et 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 nouvellement installé :

pdp11 boot.ini

Retour au terminal du simulateur

UNIX System III démarrer tapez les commandes suivantes :

0

après le signe = entrez :

unix
init 2

puis appuyez sur la combinaison de touche CTRL+D pour passer en mode multi-utilisateur.

Ensuite entrer le login (nom d'utilisateur) :

root

Vous pouvez désormais découvrir UNIX System III sur PDP-11 !

Pour éteindre le système UNIX System III, tapez :

shutdown -y -g0 -i0
y
n

puis vous pouvez stopper le simulateur avec la combinaison de touche CTRL+E et enfin appuyer sur la touche q.

Si vous souhaitez supprimer les fichiers inutiles, tapez la commande :

rm -rf boot cpio.tape dist.tape in* mini-root *.cpio s*

Exemple de démarrage et d'extinction d'UNIX System III sur PDP-11

Exemple de démarrage

PDP-11 simulator Open SIMH V4.1-0 Current        simh git commit id: d4f85d01
Disabling XQ
#0=unix

UNIX/3.0.1: unixhptm
real mem = 262144 bytes
avail mem = 195776 bytes
unix
single-user
# init 2
# process accounting started
errdemon started
cron started
multi-user
type ctrl-d

login: root
UNIX Release 3.0
#

Exemple d'extinction

# shutdown -y -g0 -i0

SHUTDOWN PROGRAM

Wed Oct 26 15:26:50 EDT 1983


Broadcast Message from root 
SYSTEM BEING BROUGHT DOWN NOW ! ! !

Busy out (push down) the appropriate
phone lines for this system.

Do you want to continue? (y or n):   y
Process accounting stopped.
Error logging stopped.

All currently running processes will now be killed.

unix
single-user
    UID   PID  PPID  C   STIME TTY  TIME COMMAND
   root     0     0 40 15:19:34  ?  8:11 swapper
   root     1     0  0 15:19:34  ?  0:00 INIT 1
   root    39     1  0 15:19:51 co  0:00 -sh
   root    42    39  0 15:26:50 co  0:00 [ sh ]
   root    97    42  0 15:27:46 co  0:00 ps -eaf

Will a file save be done at this time?
Type either ( y or n ) :   n


Halt the system when ready.
# 
Simulation stopped, PC: 020120 (MOV (SP)+,177776)
sim> q
Goodbye