FUZIX : pourquoi faire ?
L’idée deFUZIX est de recréer un UNIX à l’ancienne, capable de fonctionner sur des architectures 8 bits (Z80, 6502, 6809) ou 16 bits (68000) et de les doter d’un système d’exploitation complet : gestion des processus, des fichiers, des entrées/sorties, … C’est aussi un moyen de revenir aux origines d’UNIX avec une frugalité et et une efficacités requises par la faible puissance des plateformes matérielles cibles.
Tester FUZIX était donc une perspective séduisante mais encore fallait-il trouver une plateforme matérielle pour l’exécuter. Il existe un ordinateur de retro computing basé sur le Z80, le RC2014, mais ce n’est pas aussi facile de trouver l’équivalent pour mes CPUs préférés : 6809 et 68000.
Alors quand j’ai appris qu’un portage de FUZIX sur Raspberry Pi PICO avait été réalisé par David Given, je me suis promis d’essayer. Après quelques semaines, les informations du portage ont été mise à jour et le schéma de brochage et la procédure d’installation ont commencé à circuler. L’information a même été reprise dans un article sur le site officiel de Raspberry.
Les premiers tests sur base des images pré-construites étaient concluants mais je me suis promis d’y revenir dès que j’aurai un peu de temps. Cela a été plus long que prévu mais j’ai mis à profit quelques jours de congé pour ré-essayer.
Premier essai
J’ai téléchargé les sources sur le dépôt du projet maintenant que le portage PICO est intégré dans la branche principale.
Dans le fichier Makefile
j’ai changé la cible,
TARGET=rpipico
avant de lancer la compilation.
Attention : les fichiers et résultats ne sont pas forcément à l’endroit où on s’y attend : il faut chercher un peu.
Une fois la compilation terminée, j’ai copié les fichiers UF2 (fuzix.uf2
et filessytem.uf2
) sur le PICO, mis en mode de chargement de programme en appuyant sur le bouton BOOTSEL.
Il reste à atteindre la console série du PICO pour obtenir l’affichage. La connexion s’effectue via un port USB, via le composant FTDI très répandu de conversion USB / série.
La dernière étape est l’utilisation d’un émulateur de terminal série. J’ai choisi minicom. Le port USB est vu comme /dev/ttyUSB0
ou /dev/ttyACM0
. La commande est alors :
minicom -D /dev/ttyUSB0
Pour pouvoir saisir des commandes, il faut désactiver le contrôle de flot matériel du port série. C’est un paramètre à modifier dans la configuration de Minicom sous :
Configurer Minicom (touche O) > Configuration du port série > Contrôle de flux matériel : Non
La bannière de login est enfin accessible :
Et après ?
L’environnement déployé permet déjà de bien tester, même si en pratique on passe plus de temps à regarder le code source qu’à réellement utiliser le système d’exploitation. Il reste maintenant à utiliser la carte SD pour le stockage. C’est une autre histoire.