bitborn ↗

bitborn — Software aus rohen Bits

Website ausprobieren · Vollständige README · Sprachen

Schreibe die tatsächlichen Bytes eines x86-Programms als Nullen und Einsen. Bitborns Maschinenbefehle werden von Hand in .bits-Dateien geschrieben: Kein Assembler oder Compiler bestimmt Opcodes, Operanden oder Sprungabstände. Befehlsnamen in Kommentaren erklären die Bytes, erzeugen sie aber nicht. Python verpackt die Bytes und ergänzt Dateiköpfe oder Sektorstrukturen. JavaScript betreibt die Lernwebsite.

Deinen ersten Befehl lesen

10111000 00101010 00000000

Bei einer Operandengröße von 16 Bit bedeuten diese drei Bytes MOV AX,42. B8 wählt das Register; 2A 00 speichert 42 mit dem niederwertigen Byte zuerst. Der Ausführungsmodus zählt: Bei 32-Bit-Operanden benötigt B8 vier unmittelbare Operandenbytes statt zwei. Das CPU Lab im Browser führt nur die dokumentierte Teilmenge der 16-Bit-Befehle aus.

Ausprobieren

Im CPU Lab kannst du schrittweise ausführen, Register, Flags, Stack und Speicher ansehen und aufgezeichnete Zustände mit Back und Forward wiederherstellen. Im Bootsektor-Editor lässt sich ein vollständiges 512-Byte-Abbild bearbeiten und exportieren. Aufgaben vermitteln Änderungen an tatsächlichen Bytes; dein Fortschritt bleibt im Browser.

Zum Erstellen und Testen der echten Bootprogramme benötigst du Python 3.10+, Make und QEMU. Unter macOS: brew install qemu. Unter 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 prüft die überprüften Bytes und das Gastverhalten in QEMU ohne grafische Oberfläche. make run öffnet das BIOS-Bootabbild. BIOS-Beispiele laufen mit QEMU auch auf Apple Silicon; native ELF-Beispiele benötigen Linux x86-64. Für Browser-Entwicklungstests brauchst du außerdem Node.js und Playwright; Näheres steht im Beitragsleitfaden.

Umfang und Fortschritt

Das Repository enthält BIOS-Bootprogramme, Tastatur-/VGA-/Diskettenexperimente, eine interaktive Shell, ein separates Interrupt-Experiment im Protected Mode und Linux-ELF-Beispiele. Der Browser verwendet ein Lernmodell mit 1 MiB Speicher und einem Limit von 4.096 Schritten, keine vollständige CPU oder BIOS-Implementierung. Importierte Programme werden interpretiert und niemals als nativer Hostcode ausgeführt. Unterstützung für echte Hardware, UEFI oder ein Produktionssystem ist nicht nachgewiesen. Nutze für native Experimente verwerfbare Emulatorumgebungen.

Roadmap und Nachweise · Fortschritt auf der Website · Änderungsprotokoll

Beginne mit dem Tutorial und dem Architekturleitfaden. Beachte die Beitragsregeln und den Verhaltenskodex. Melde Sicherheitslücken vertraulich. Code und Dokumentation stehen unter der MIT-Lizenz. Die englische Einführung ist die Übersetzungsgrundlage; ausführliche technische Anleitungen bleiben vorerst englisch.