bitborn ↗

bitborn — du logiciel à partir de bits bruts

Essayer le site · README complet · Langues

Écrivez les octets réels d'un programme x86 avec des 0 et des 1. Les instructions de Bitborn sont écrites à la main dans des fichiers .bits : aucun assembleur ni compilateur ne choisit les opcodes, opérandes ou déplacements de saut. Les noms d'instructions dans les commentaires expliquent les octets sans les générer. Python empaquette les octets et ajoute les en-têtes ou la structure des secteurs. JavaScript fait fonctionner le site pédagogique.

Lire votre première instruction

10111000 00101010 00000000

Avec des opérandes de 16 bits, ces trois octets signifient MOV AX,42. B8 sélectionne le registre ; 2A 00 représente 42, octet de poids faible d'abord. Le mode d'exécution compte : avec des opérandes de 32 bits, B8 attend quatre octets de valeur immédiate au lieu de deux. Le CPU Lab du navigateur exécute uniquement son sous-ensemble documenté de 16 bits.

Essayer

Le CPU Lab permet d'avancer pas à pas, d'inspecter registres, indicateurs, pile et mémoire, puis de restaurer les états enregistrés avec Back et Forward. Le constructeur de secteur d'amorçage permet de modifier et d'exporter une image complète de 512 octets. Les défis enseignent la modification des octets ; votre progression reste dans le navigateur.

Pour construire et tester les vrais programmes d'amorçage, installez Python 3.10+, Make et QEMU. Sur macOS : brew install qemu. Sur Ubuntu : sudo apt-get install python3 make qemu-system-x86.

git clone https://github.com/OthmaneBlial/bitborn.git
cd bitborn
make test
make run

make test vérifie les octets relus et le comportement de la machine virtuelle dans QEMU sans interface graphique. make run ouvre l'image BIOS. Les exemples BIOS fonctionnent dans QEMU sur Apple Silicon ; les ELF natifs nécessitent Linux x86-64. Les tests du navigateur demandent aussi Node.js et Playwright : voir le guide de contribution.

Périmètre et progression

Le dépôt contient des programmes BIOS, des expériences clavier/VGA/disque, un shell interactif, une expérience distincte d'interruption en mode protégé et des exemples ELF Linux. Le navigateur utilise un modèle pédagogique limité à 1 MiB et 4 096 pas, pas un CPU ou un BIOS complet. Les programmes importés sont interprétés, jamais exécutés comme code natif de l'hôte. La compatibilité avec le matériel physique, UEFI ou un système de production n'est pas établie. Utilisez des émulateurs jetables pour les expériences natives.

Feuille de route et preuves · Progression du site · Journal des changements

Commencez par le tutoriel et le guide d'architecture. Respectez les règles de contribution et le code de conduite. Signalez les vulnérabilités en privé. Code et documentation sont sous licence MIT. L'introduction anglaise sert de source à cette traduction ; les guides techniques détaillés restent en anglais.