Wiki Ordunix

Linux, FreeBSD, macOS, Windows et Histoire Informatique

Outils pour utilisateurs

Outils du site


wiki:virtualisation_et_emulation:simh:tutos:svr1

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 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 :

mkdisttap.pl
#!/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 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 </dev/mt4
echo </dev/mt4
echo </dev/mt4
echo </dev/mt4
cd /
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
cpio -idmB </dev/rmt4

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 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.

wiki/virtualisation_et_emulation/simh/tutos/svr1.txt · Dernière modification : de Thibault Seguin