Ceci est une ancienne révision du document !
Table des matières
Installation de 4.2BSD du CSRG sur VAX-11/780 via SimH
4.2BSD sortie en août 1983 est la première version officielle du CSRG (Computer Systems Research Group) de l’Université de Californie à Berkeley à avoir une pile TCP/IP totalement exploitable développée en grande partie par Bill Joy. C'est à dire que c'est la première version (hors version intermédiaire) à pouvoir se connecter à l'ARPAnet (Advanced Research Projects Agency Network), l'ancêtre d'Internet. Évidemment internet est compatible mais sur cette version, cela demande un configuration assez poussée comparé à 4.3BSD.
Prérequis à l'installation de 4.2BSD sous SimH
- Un interpréteur perl pour pouvoir lancer le script
mkdisttap.pl
. - Le logiciel d'archivage tar et l'utilitaire de compression/décompression gzip.
- Le logiciel uudecode présent par défaut sous BusyBox et dans le paquet GNU sharutils.
- Le code d'amorçage de 4.2BSD déchiffrable avec uudecode.
- Un éditeur de texte de votre choix comme nano ou vim.
- L'émulateur SimH qui comprend le simulateur pour VAX-11/780 du nom de vax780.
- Le logiciel de téléchargement wget pour télécharger les set 4.2BSD.
- Et enfin les sets de 4.2BSD disponible sur The Unix Heritage Society :
ingres.tar.gz
miniroot.gz
new.tar.gz
rootdump.gz
src.tar.gz
srcsys.tar.gz
stand.gz
usr.tar.gz
vfont.tar.gz
Installation, configuration et téléchargement des éléments nécessaires
Installation des logiciels nécessaires
Installation des logiciels sous Debian :
sudo apt install perl tar gzip busybox vim wget simh
Installation des logiciels sous FreeBSD :
sudo pkg install perl busybox vim wget 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 && sudo apt-get -f install
Toutefois il est préférable de compiler SimH pour la prise en charge du réseau local et internet.
Construction des répertoires pour 4.2BSD et téléchargement des sets 4.2BSD
Création répertoires 4.2BSD :
mkdir -p emulateur/simh/4.2BSD
Se rendre dans le répertoire 4.2BSD :
cd emulateur/simh/4.2BSD
Téléchargement des sets de 4.2BSD :
wget -r -np https://www.tuhs.org/Archive/Distributions/UCB/4.2BSD/
Déplacer les sets de 4.2BSD dans le répertoire courant :
mv -v www.tuhs.org/Archive/Distributions/UCB/4.2BSD/*.gz .
Suppression du répertoire www.tuhs.org
devenu inutile :
rm -rf www.tuhs.org/
Décompression des sets, création de la bande 4.2BSD et décodage du code d'amorçage
Décompression des sets 4.2BSD avec gzip :
gzip -d *.gz
Fichier perl pour créer la bande ;
- mkdisttap.pl
#!/usr/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("stand", 512); end_file(); add_file("miniroot", 10240); end_file(); add_file("rootdump", 10240); end_file(); add_file("srcsys.tar", 10240); end_file(); add_file("usr.tar", 10240); end_file(); add_file("vfont.tar", 10240); end_file(); add_file("src.tar", 10240); end_file(); add_file("new.tar", 10240); end_file(); add_file("ingres.tar", 10240); 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/bin/perl -w
par #!/usr/local/bin/perl -w
du fichier mkdisttap.pl
.
Création du fichier mkdisttap.pl
afficher ci-dessus avec votre éditeur de texte préféré :
vim mkdisttap.pl
Rendre le script perl mkdisttap.pl
exécutable :
chmod 755 mkdisttap.pl
Création de la bande d'installation pour 4.2BSD :
./mkdisttap.pl > 42bsd.tap
Suppression des fichiers devenus inutiles :
rm -rf *.tar mkdisttap.pl rootdump stand
Fichier boot42.uue à créer et à décoder avec uudecode :
-création du fichier boot42.uue
:
vim boot42.uue
-décodage du fichier boot42.uue
:
uudecode boot42.uue
-ou avec BusyBox :
busybox uudecode boot42.uue
un fichier binaire boot42
a dû être créé.
Supprimer fichier boot42.uue
désormais inutile :
rm boot42.uue
Processus d'installation et de configuration de 4.2BSD
Première phase de boot et configuration
Création du fichier install.ini :
vim install.ini
Boot via le fichier install.ini
avec le simulateur vax780 de SimH :
vax780 install.ini
Restauration du rootdump (à l'intérieur du simulateur)
cd /dev
./MAKEDEV ra1
cd /
disk=ra1 type=ra81 tape=ts xtr
sync
sync
sync
Quitter le simulateur
Tapez les touches CTRL+E
Puis à l'invite de commande sim>
tapez :
sim> q
Supprimer fichier miniroot
:
rm miniroot install.ini
Seconde phase de boot et configuration
Préparation du disque virtuelle (à l'intérieur du simulateur)
disk=ra
name=ra0h;type=ra81
cd /dev
./MAKEDEV ts0;sync
cd /
newfs $name $type
Restauration de la tranche usr
mount /dev/$name /usr
cd /usr
mkdir sys
cd sys
mt rew
mt fsf 3
tar xpbf 20 /dev/rmt12
cd ..
mt fsf
tar xpbf 20 /dev/rmt12
cd /
chmod 755 / /usr /usr/sys
rm -rf sys
ln -s /usr/sys sys
umount /dev/$name
fsck /dev/r$name
Configuration du fstab
cd /etc
cp fstab.ra81 fstab
newfs ra0g ra81
sync
sync
sync
reboot
Puis à l'invite de commande sim>
tapez :
sim> q
Vous pouvez désactiver la bande d'installation 42bsd.tap
comme ceci :
vim boot.ini
et ajoutez un ;
devant la ligne att ts 42bsd.tap
.
Et supprimer la bande :
rm 42bsd.tap
Premier démarrage multi-utilisateur
Lancer 4.2BSD en mode multi-utilisateur :
vax780 boot.ini
Voici le démarrage de 4.2BSD :
VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: a944a4bc loading ra(0,0)boot Boot : ra(0,0)vmunix 199488+56036+51360 start 0x11a0 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 root on ra0 WARNING: should run interleaved swap with >= 2Mb Automatic reboot in progress... Sat Sep 17 15:30:34 PDT 1983 /dev/ra0a: 326 files, 3569 used, 3860 free (20 frags, 480 blocks) /dev/rra0h: 3735 files, 25550 used, 336310 free (166 frags, 84036 blocks) /dev/rra0g: 2 files, 9 used, 77750 free (14 frags, 9717 blocks) Sat Sep 17 15:30:40 PDT 1983 check quotas: done. local daemons: routed telnetd ftpd talkd syslog sendmail. preserving editor files clearing /tmp standard daemons: update cron accounting mail printer. starting network: rshd rexecd rlogind rwhod. Sat Sep 17 15:30:42 PDT 1983 4.2 BSD UNIX (myname) login:
Pour le moment il y a seulement l'utilisateur root d'installé par défaut, donc tapez :
login: root
Et vous arriverez à l'invite de commande :
login: root 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 Would you like to play a game? You have mail. Don't login as root, use su myname#
Enjoy !!!
Et pour éteindre le système, tapez tout simplement :
shutdown -h now
Vous arriverez sur l'invite de SimH :
myname# shutdown -h now Shutdown at 15:40 (in 0 minutes) [pid 131] myname# *** FINAL System shutdown message from root@myname *** System going down IMMEDIATELY System shutdown time has arrived syncing disks... done halting (in tight loop); hit ^P HALT Infinite loop, PC: 800216DA (BRB 800216DA) sim>
Il vous suffit de valider par q
à cette invite pour revenir à votre hôte.