Wiki Ordunix

Linux, FreeBSD, macOS, Windows et Histoire Informatique

Outils pour utilisateurs

Outils du site


wiki:virtualisation_et_emulation:simh:tutoriels_sur_simh:4.2bsd

Ceci est une ancienne révision du document !


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 ;

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);
}
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 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

À l'intérieur du simulateur vax780, tapez les commandes suivantes

Préparation du disque virtuelle

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
wiki/virtualisation_et_emulation/simh/tutoriels_sur_simh/4.2bsd.1758105869.txt.gz · Dernière modification : de Thibault Seguin