Présentation
BeBox est une application native de Haiku qui reproduit le matériel du BeBox original, la station de travail à deux processeurs qui a vu naître BeOS. L’émulateur supporte les modèles PowerPC 603/603e ainsi que les prototypes Hobbit basés sur deux processeurs AT&T 92010. Il accepte les ROM de démarrage d’origine (bootnub.rom, bootmain.rom) et les images ISO ou BIN/CUE de BeOS 6 à R5.0.3, offrant ainsi une plateforme complète pour tester les versions historiques du système.
Architecture d’émulation
Le cœur de l’émulation repose sur un interprète PowerPC 603/603e qui reproduit le TLB logiciel du processeur et intègre le pont MPC105, ainsi que les registres d’interruption et de contrôle du CPU du BeBox. Le sous‑système vidéo propose deux cartes : la Number Nine #9 GXE64 (S3 Vision864 avec DAC AT&T 21C498) et la Cirrus Logic CL‑GD5434, couvrant des résolutions de 640×480 à 1280×1024 en 8 ou 32 bits par pixel, exactement comme les pilotes BeOS le permettent.
Le son est géré par le codec Crystal CS4231A, routé via le media kit de Haiku. Le stockage combine un contrôleur SCSI NCR 53C810 (disques et CD‑ROM sur les ID 0‑6), un contrôleur IDE et un lecteur de disquette. Quatre ports série peuvent être redirigés vers une console, un serveur TCP, un port hôte ou un fichier journal. L’accès réseau s’appuie sur une carte NE2000 ISA virtualisée, encapsulée par libslirp, ce qui place le BeBox sur un réseau privé derrière l’hôte tout en permettant le NAT vers Internet.
Les dossiers Haiku sont exposés à BeOS comme des disques SCSI en lecture‑écriture, les modifications étant synchronisées à l’arrêt du système invité. Les ROM et la NVRAM sont stockées dans une flash writable, ce qui rend possible l’utilisation de l’outil de mise à jour du ROM de BeOS.
Analyse des performances et limites
Étant basé sur un interprète, l’émulation PowerPC ne bénéficie pas d’une compilation dynamique (JIT). La charge CPU de l’hôte augmente proportionnellement au nombre d’instructions traduites, ce qui limite la fluidité des applications graphiques intensives. L’émulation vidéo, bien que fonctionnelle, ne reproduit pas les accélérations matérielles spécifiques du S3 Vision864, entraînant des baisses de rafraîchissement à haute résolution.
Les composants Hobbit sont moins complets : l’interpréteur reproduit le cache de pile, le MMU et les minuteries, mais les trois DSP3210, l’Ethernet, le joystick et le port parallèle sont absents. Le système démarre néanmoins, le serveur sonore affichant simplement une erreur. L’absence de ROM originale pour les machines Hobbit est compensée par un chargeur qui lit directement /system/kernel depuis le volume de démarrage.
Le stockage utilise des images QCOW2, permettant la création d’overlays pour préserver les disques d’origine. Cette approche évite la corruption des images maîtresses, mais ajoute une couche d’indirection qui peut impacter les temps d’accès disque.
Utilisation pratique
Après avoir placé les ROM et les images ISO dans le répertoire indiqué, l’utilisateur configure la machine via les préférences Haiku : sélection du type (PowerPC ou Hobbit), allocation mémoire (4 à 32 Mo pour Hobbit), et affectation des disques SCSI. Le démarrage se fait avec Machine > Power on. Pour créer un overlay, la commande suivante est fournie par l’émulateur :
bebox-img create -b IMAGE OVERLAY.qcow2Cette instruction génère un disque différentiel qui enregistre les changements sans altérer l’image source, pratique pour tester des mises à jour ou des kernels personnalisés.