Wiki Ordunix

Linux, FreeBSD, macOS, Windows et Histoire Informatique

Outils pour utilisateurs

Outils du site


wiki:virtualisation_et_emulation:simh:tutos: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. É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
Vous pouvez bien évidemment installer un autre éditeur de texte comme nano ou même gedit en interface graphique. Sous FreeBSD vous pouvez également installer le paquet open-simh qui a nettement plus de simulateur.
J'ai constaté que le paquet simh a été retiré de Debian 13. Si souhaitez récupérer et installer le paquet .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);
}
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 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

Création du fichier 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

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.

Ajout à venir pour une configuration plus poussée de 4.2BSD…
wiki/virtualisation_et_emulation/simh/tutos/4.2bsd.1759077235.txt.gz · Dernière modification : de Thibault Seguin