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