====== 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.
===== 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
Vous pouvez bien évidemment installer un autre éditeur de texte comme **nano** ou même **gedit** en interface graphique.
==== 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 ;
#!/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);
}
Sous FreeBSD il faut modifier le **shebang** (première ligne du fichier) ''#!/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 pour 4.2BSD :
./mkdisttap.pl > 42bsd.tap
Suppression des fichiers devenus inutiles :
rm -rf *.tar mkdisttap.pl rootdump stand
Fichier [[wiki:virtualisation_et_emulation:simh:tutoriels_sur_simh:4.2bsd: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 [[wiki:virtualisation_et_emulation:simh:tutoriels_sur_simh:4.2bsd: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 ====
Création du fichier [[wiki:virtualisation_et_emulation:simh:tutoriels_sur_simh:4.2bsd:boot.ini]] :
vim boot.ini
Relancer le simulateur **vax780** :
vax780 boot.ini
=== 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
Ne soyez pas surpris si cette commande prend énormément de temps.
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
===== Premier démarrage multi-utilisateur =====