mkdisttap.pl.Installation des logiciels requis sous Debian :
sudo apt install perl wget vim simh
.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 :
#!/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); }
#!/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
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>.
Création du fichier boot.ini :
vim boot.ini
Démarrer UNIX System III nouvellement installé :
pdp11 boot.ini
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*
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 #
# 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