====== Installation d'Unix version 6 sur PDP-11 avec émulateur SimH ======
===== Prérequis pour Unix version 6 =====
Création des répertoires pour **Unix version 6** :
mkdir -p emulateur/simh/Unix-V6
Se rendre dans le répertoire nouvellement créé :
cd emulateur/simh/Unix-V6/
Télécharger la bande d'installation d'//Unix Version 6// :
wget http://squoze.net/UNIX/v6/files/dist.tap
Sous FreeBSD tapez cette commande : fetch http://squoze.net/UNIX/v6/files/dist.tap
pour télécharger la bande d'installation.
===== Processus d'installation d'Unix version 6 =====
==== Installation du système de fichiers racine ====
Créer fichier ''install.ini'' avec votre éditeur de texte dont le contenu est le suivant :
set cpu 11/40
set tm0 locked
att tm0 dist.tap
att rk0 disk0.rk
att rk1 disk1.rk
att rk2 disk2.rk
d 100000 012700
d 100002 172526
d 100004 010040
d 100006 012740
d 100010 060003
d 100012 000777
g 100000
g 0
Booter à partir de ''install.ini'' avec simulateur PDP-11 :
pdp11 install.ini
puis appuyez sur la combinaison de touche ''CTRL+E''.
Après le signe ''='' tapez :
tmrk
O
100
1
Le signe ''='' s'affiche à nouveau, tapez :
tmrk
1
101
3999
À l'affichage ''='' tapez ''CTRL+E''.
À l'invite de commande de SimH ''sim>'', tapez :
boot rk0
après le signe ''@'' tapez :
rkunix
pour démarrer Unix à partir du premier disque ''rk0''.
Au ''login:'' entrer l'utilisateur :
root
==== Création des fichiers de périphériques ====
Utilisation de l'outil **mknod** :
/etc/mknod /dev/rk0 b 0 0
/etc/mknod /dev/rk1 b 0 1
/etc/mknod /dev/rk2 b 0 2
/etc/mknod /dev/rrk0 c 9 0
/etc/mknod /dev/rrk1 c 9 1
/etc/mknod /dev/rrk2 c 9 2
/etc/mknod /dev/mt0 b 3 0
/etc/mknod /dev/rmt0 c 12 0
==== Copie des disques suivie de leurs montage ====
Copiez les disques :
dd if=/dev/mt0 of=/dev/rk1 count=4000 skip=4100
dd if=/dev/mt0 of=/dev/rk2 count=4000 skip=8100
Montez les disques :
/etc/mount /dev/rk1 /usr/source
mkdir /usr/doc
/etc/mount /dev/rk2 /usr/doc
Édition avec **ed** de ''/etc/rc'' pour le montage des disques au démarrage :
ed /etc/rc
2
a
/etc/mount /dev/rk1 /usr/source
/etc/mount /dev/rk2 /usr/doc
.
w
q
Synchronisation des disques :
sync
sync
sync
puis on coupe le simulateur avec les touches ''CTRL+E'', et enfin :
q
à l'invite ''sim>'' de SimH.
=== Résumé de l'intégralité du processus avec le fichier install.ini ===
PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01
Disabling XQ
/home/beastie/emulateur/simh/Unix-V6/install.ini-3> att tm0 dist.tap
%SIM-INFO: TM0: Tape Image 'dist.tap' scanned as SIMH format
/home/beastie/emulateur/simh/Unix-V6/install.ini-4> att rk0 disk0.rk
%SIM-INFO: RK0: Creating new file: disk0.rk
/home/beastie/emulateur/simh/Unix-V6/install.ini-5> att rk1 disk1.rk
%SIM-INFO: RK1: Creating new file: disk1.rk
/home/beastie/emulateur/simh/Unix-V6/install.ini-6> att rk2 disk2.rk
%SIM-INFO: RK2: Creating new file: disk2.rk
Simulation stopped, PC: 100012 (BR 100012)
=tmrk
disk offset
0
tape offset
100
count
1
=tmrk
disk offset
1
tape offset
101
count
3999
=
Simulation stopped, PC: 137274 (TSTB @#177560)
sim> boot rk0
@rkunix
login: root
# stty erase # kill @
# stty cr0
# /etc/mknod /dev/rk0 b 0 0
# /etc/mknod /dev/rk1 b 0 1
# /etc/mknod /dev/rk2 b 0 2
# /etc/mknod /dev/rrk0 c 9 0
# /etc/mknod /dev/rrk1 c 9 1
# /etc/mknod /dev/rrk2 c 9 2
# /etc/mknod /dev/mt0 b 3 0
# /etc/mknod /dev/rmt0 c 12 0
# dd if=/dev/mt0 of=/dev/rk1 count=4000 skip=4100
4000+0 records in
4000+0 records out
# dd if=/dev/mt0 of=/dev/rk2 count=4000 skip=8100
4000+0 records in
4000+0 records out
# /etc/mount /dev/rk1 /usr/source
# mkdir /usr/doc
# /etc/mount /dev/rk2 /usr/doc
# ed /etc/rc
28
2
/etc/update
a
/etc/mount /dev/rk1 /usr/source
/etc/mount /dev/rk2 /usr/doc
.
w
89
q
# sync
# sync
# sync
# sync
# sync
#
Simulation stopped, PC: 002502 (MOV (SP)+,177776)
sim> q
Goodbye
==== Recompilation du noyau et de la configuration du système ====
Vous pouvez supprimer ''install.ini'' et la bande d'installation qui ne sera plus utile :
rm install.ini dist.tap
Créer un fichier ''boot.ini'' pour redémarrer le simulateur PDP-11 avec ce contenu :
set cpu 11/40
att rk0 disk0.rk
att rk1 disk1.rk
att rk2 disk2.rk
; att tm0 scratch.tape
; att lpt printer.txt
; att ptp paperout
; att ptr paperin
set dci en
set dci lines=8
att dci 1106
d sr 1
b rk
Lancer le simulateur PDP-11 avec ''boot.ini'' :
pdp11 boot.ini
Après le signe ''@'' tapez :
rkunix
Et à la demande du login :
root
Suppression des noyaux inutiles et compilation du nouveau noyau :
rm hpunix rpunix unix
chdir /usr/sys/conf
cc mkconf.c
mv a.out mkconf
cat >myconf
rk
tm
pc
8dc
lp
puis appuyer sur la combinaison de touche ''CTRL+D'' pour revenir à l'invite de commande.
mkconf
as m40.s
mv a.out m40.o
ld -x l.o m40.o c.o ../lib1 ../lib2
mv a.out /unix
sync
sync
sync
puis ''CTRL+E'' pour stopper le simulateur.
À l'invite ''sim>'' booter sur le disque rk0 :
b rk0
Après le signe ''@'' tapez :
unix
Supprimer noyau ''rkunix'' :
rm rkunix
Création des fichiers de périphériques nécessaires avec la commande **mknod** :
/etc/mknod /dev/lp0 c 2 0
/etc/mknod /dev/pc c 1 0
/etc/mknod /dev/tty0 c 3 0
/etc/mknod /dev/tty1 c 3 1
/etc/mknod /dev/tty2 c 3 2
/etc/mknod /dev/tty3 c 3 3
/etc/mknod /dev/tty4 c 3 4
/etc/mknod /dev/tty5 c 3 5
/etc/mknod /dev/tty6 c 3 6
/etc/mknod /dev/tty7 c 3 7
Modification de ''/etc/ttys'' avec **ed** :
ed /etc/ttys
1,8s/./1/
w
q
Éditer le code source de **df**, **icheck** et **dcheck** pour renseigner les disques que nous avons montés précédemment et compiler ses utilitaires :
chdir /usr/source/s1
ed df.c
/rp/
d
-i
"/dev/rk0",
"/dev/rk1",
.
w
q
ed icheck.c
/rp/
d
-i
"/dev/rrk0",
"/dev/rrk1",
.
w
q
ed dcheck.c
/rp/
d
-i
"/dev/rrk0",
"/dev/rrk1",
.
w
q
cc df.c
mv a.out /bin/df
cc icheck.c
mv a.out /bin/icheck
cc dcheck.c
mv a.out /bin/dcheck
**Vous pouvez désormais utiliser //Unix version 6// sans problème !**
Si vous souhaitez stopper la simulation tapez la combinaison de touches ''CTRL+E'' et à l'invite ''sim>'' appuyer sur la touche ''q'' pour quitter l'émulateur et revenir à votre terminal Linux, BSD.
La commande **cd** n'était toujours pas existante sous //Unix version 6//, c'est la commande **chdir** qui joue le même rôle.
=== Résumé de l'intégralité du processus avec le fichier boot.ini ===
PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01
Disabling XQ
/home/beastie/emulateur/simh/Unix-V6/boot.ini-11> att dci 1106
%SIM-INFO: Listening on port 1106
@rkunix
mem = 1035
RESTRICTED RIGHTS
Use, duplication or disclosure is subject to
restrictions stated in Contract with Western
Electric Company, Inc.
login: root
# rm hpunix rpunix unix
# chdir /usr/sys/conf
# cc mkconf.c
# mv a.out mkconf
# cat >myconf
rk
tm
pc
8dc
lp
# mkconf b rk0
@unix
mem = 1027
RESTRICTED RIGHTS
Use, duplication or disclosure is subject to
restrictions stated in Contract with Western
Electric Company, Inc.
login: root
# rm rkunix
# /etc/mknod /dev/lp0 c 2 0
# /etc/mknod /dev/pc c 1 0
# /etc/mknod /dev/tty0 c 3 0
# /etc/mknod /dev/tty1 c 3 1
# /etc/mknod /dev/tty2 c 3 2
# /etc/mknod /dev/tty3 c 3 3
# /etc/mknod /dev/tty4 c 3 4
# /etc/mknod /dev/tty5 c 3 5
# /etc/mknod /dev/tty6 c 3 6
# /etc/mknod /dev/tty7 c 3 7
# ed /etc/ttys
112
1,8s/./1/
w
112
q
# chdir /usr/source/s1
# ed df.c
1282
/rp/
"/dev/rp0",
d
-i
"/dev/rk0",
"/dev/rk1",
.
w
1301
q
# ed icheck.c
5051
/rp/
"/dev/rrp0",
d
-i
"/dev/rrk0",
"/dev/rrk1",
.
w
5072
q
# ed dcheck.c
3332
/rp/
"/dev/rrp0",
d
-i
"/dev/rrk0",
"/dev/rrk1",
.
w
3352
q
# cc df.c
# mv a.out /bin/df
# cc icheck.c
# mv a.out /bin/icheck
# cc dcheck.c
# mv a.out /bin/dcheck
# df
/dev/rk0 1155
/dev/rk1 940
/dev/rk2 bad free count
192
#
Simulation stopped, PC: 002656 (MOV (SP)+,177776)
sim> q
Goodbye
===== Exemple de démarrage d'Unix version 6 =====
PDP-11 simulator Open SIMH V4.1-0 Current simh git commit id: d4f85d01
Disabling XQ
/home/beastie/emulateur/simh/Unix-V6/boot.ini-11> att dci 1106
%SIM-INFO: Listening on port 1106
@unix
mem = 1027
RESTRICTED RIGHTS
Use, duplication or disclosure is subject to
restrictions stated in Contract with Western
Electric Company, Inc.
login: root
#