Ein PC im PC
Unter der Oberfläche von AetherOS läuft ein nachgebauter x86-Rechner in JavaScript. Er startet das Abbild des eigenen Kernels. Manche Teile sind gründlich gebaut, andere nur angelegt – das steht hier bei jeder Gruppe. Gebraucht wird er, weil der eigene Kernel ein Programm für einen alten 16-Bit-PC ist: Statt eines zweiten Rechners läuft dieser PC als Programm mit im Simulator.
Auf einen Blick
Dateien
Zeilen JavaScript
Arbeitsspeicher der nachgebauten Maschine
Befehle je Bild als Vorgabe – wenn er voll rechnen darf
BIOS- und DOS-Interrupts, die er beantwortet
Im Ordner des Systems beginnen 66 Dateien mit „emulator“, zusammen 10.561 Zeilen. Sechs davon mit 973 Zeilen emulieren aber nichts: Sie sind das Symbol-System des Schreibtischs. Übrig bleiben 60 Dateien mit 9.588 Zeilen. Wie bei allen Teilen der Oberfläche hat keine davon mehr als 300 Zeilen; ein Befehlssatz wie der des x86 verteilt sich deshalb auf 26 Dateien statt auf eine große.
Der Aufbau nach Gruppen
| Gruppe | Dateien | Zeilen | Was darin steckt |
|---|---|---|---|
| Rechenkern | 7 | 985 | Speicher und 16-Bit-Register, Befehlsdekoder, Hauptschleife, ModRM-Auswertung, A20-Gatter, Start und Zurücksetzen |
| Befehle | 26 | 4.647 | Rechnen, Verschieben, Springen, Stapel, Zeichenketten, Multiplizieren und Teilen; dazu x87, SSE, AVX, Protected Mode, Paging, Long Mode, VT-x und Netzwerkkarten – und das eingebettete Abbild des Kernels |
| Anschlüsse | 10 | 1.381 | Zentraler Portverteiler, zwei Interrupt-Controller (8259), Zeitgeber mit PC-Lautsprecher, CMOS-Uhr, DMA, Diskettenlaufwerk, Tastatur-Controller, serielle und parallele Schnittstelle, VGA-Register |
| Eingabe und Ton | 3 | 450 | Tastatur, PS/2-Maus, PC-Lautsprecher |
| BIOS | 6 | 1.022 | Bildschirm, Laufwerke, Systemdienste mit E820-Speicherkarte, Interrupt-Verteiler, Textbildschirm im Fenster |
| Start, Speichern, Bedienung | 6 | 685 | Startbild und Sperrbildschirm-Uhr, Anzeige der Register, Speichern des Dateisystems, Abbilder per Ziehen laden |
| Werkzeuge | 2 | 418 | Debugger mit Haltepunkt und Speicherauszug, Disassembler |
| Zusammen | 60 | 9.588 |
Ehrlich nach Tiefe
Läuft: der 16-Bit-Kern
1 MB Speicher plus 64 KB darüber, 16-Bit-Register, acht Flaggen und ein A20-Gatter. Mit diesen Grundbefehlen rechnet der eigene Kernel, denn der ist als 16-Bit-Programm übersetzt. Unter System › Rechenwerk lässt sich jeder Wert ablesen. Das A20-Gatter ist ein Überbleibsel alter PCs: Erst wenn es offen ist, reicht der Speicher über das erste Megabyte hinaus – daher die 64 KB „darüber“.
Läuft: Bildschirm, Tastatur, Ton
Der Textbildschirm mit 2.000 Zeichenzellen und 16 Farben wird ins Fenster gezeichnet. Tastendrücke kommen als Scancodes an. Der PC-Lautsprecher klingt wirklich, über die Tonausgabe des Browsers. 2.000 Zellen sind genau 80 × 25 Zeichen – das Format, in dem der eigene Kernel seine Eingabezeile und die Leiste mit „[ START ]“ zeichnet.
Läuft: das BIOS
Es beantwortet zwölf Interrupts, darunter Bildschirm, Laufwerke, Tastatur, Zeitgeber und die E820-Speicherkarte. Dazu kommen zehn DOS-Dienste. Echt sind die für Zeichen und Text. Die Dateidienste sind nur gespielt: Anlegen und Öffnen geben immer dieselbe Kennung zurück, Lesen liefert Nullen, und die Dateisuche meldet immer „keine Dateien“. Für den eigenen Kernel ist das kein Hindernis, er bringt sein eigenes Dateisystem mit. Ein DOS-Programm, das Dateien lesen will, bekäme dagegen nur Nullen.
Angelegt: die großen Erweiterungen
x87-Gleitkomma (acht Register), MMX und SSE, AVX bis AVX-512, Protected Mode, Paging mit TLB und Long Mode mit 64-Bit-Registern. Register und Befehle sind da. Ob ein Programm sie wirklich nutzt, ist nicht belegt – der eigene Kernel ist ein 16-Bit-Programm. Zusammen mit Virtualisierung und Netzwerk belegen sie 14 der 26 Befehlsdateien, nachgezählt am 27. September 2026. Sie warten auf einen Kernel, der über den Real Mode hinausgeht; bis dahin heißt angelegt nicht erprobt.
Nur angedeutet: Virtualisierung
Für VT-x, SVM und SMM gibt es einen Zustand und Befehle. VMXON setzt nur einen Schalter und schreibt eine Meldung in die Entwicklerkonsole. Weiter reicht ein Gastbetrieb: VMLAUNCH schaltet hinein, und bei HLT, CPUID, LGDT und Zugriffen auf Steuerregister kehrt die Maschine zurück. Ein Programm, das das nutzt, gibt es nicht. Im Kernel steht ein Hypervisor nur als vorgemerkter Name, ohne Datei – bei den 82 Namen.
Nur angedeutet: Netzwerk
Drei Netzwerkkarten sind angelegt: RTL8139, e1000 und VirtIO-Net. Beim Senden werden die ersten 32 Bytes in die Entwicklerkonsole geschrieben. Empfangen wird nur ein vorgetäuschtes ARP-Paket. Ins echte Netz geht nichts. Das ist auch eine Sicherheitsfrage: Ein nachgebauter Rechner, der nichts nach außen schickt, kann dort auch nichts anrichten.
Vom Abbild zum Textbildschirm
- Übersetzen. Ein Bauskript übersetzt den Kernel in ein Abbild von genau 65.536 Bytes und schreibt es in den Emulator. Dasselbe Abbild steckt dort Byte für Byte. Was im Emulator läuft, ist also genau der Kernel aus dem Quelltext, nicht eine Nachbildung davon.
- Laden. Die ersten 512 Bytes – der Bootsektor – kommen an die Adresse
0x7C00und zusätzlich an0x0600, wo der Startlader nach seiner eigenen Verschiebung weiterläuft. Der Rest liegt ab0x2000. Das ganze Abbild steckt außerdem im nachgebauten Diskettenlaufwerk. So findet der Startlader den Rest des Kernels dort, wo ein echter PC ihn suchen würde. - Leeren. Der Textbildschirm wird gelöscht, das gespeicherte Dateisystem geladen. Gespeichert wird nur der Bereich 56000 bis 60352 – die Speicherkarte des Kernels zeigt, was das für AetherFS bedeutet.
- Rechnen. Die Hauptschleife läuft mit dem eingestellten Takt, je Bild bis zu 300.000 Befehle als Vorgabe. Ein „Bild“ ist ein Durchgang der Bildschirmaktualisierung des Browsers; der Emulator rechnet also stückweise zwischen zwei Bildern.
Meistens null Befehle
Sieht niemand hin, wird nichts gerechnet. Der Zustand der Maschine bleibt erhalten, nur die Arbeit ruht. Das Rechenwerk schreibt mit, welcher Grund gerade gilt. Sonst sähe die Null aus wie ein Defekt. Der Grund steht nachgemessen im Quelltext: Im Leerlauf, ohne ein einziges offenes Fenster, lief der Emulator früher weiter – ein einzelner Rechenschritt, die Adressumrechnung, stand dabei für 17 Prozent der gesamten Rechenzeit.
Eigene Abbilder
Wer eine Abbild-Datei auf den Bildschirm zieht, lädt sie in den Emulator und startet ihn damit neu. Erprobt ist dafür aber nur der 16-Bit-Kern mit den zwölf Interrupts des BIOS. Ob ein fremdes Abbild mit den nur angelegten Erweiterungen zurechtkommt, ist nicht belegt.
Im Live-System aus
Startet AetherOS vom USB-Stick als Live-System, bleibt der Emulator abgeschaltet – laut Quelltext wegen Leistung und Stabilität. Im Simulator unter Windows und im installierten System gilt diese Sperre nicht. Wie AetherOS erkennt, dass es vom Stick läuft, steht bei Aufbau und Technik.
Sechs Gründe für den Takt
Vor jedem Bild entscheidet der Emulator, wie viel er rechnen darf, und schreibt den Grund dazu. Unter System › Rechenwerk steht er dann offen da. Die Gründe werden der Reihe nach geprüft, und der erste, der zutrifft, gilt: Ruht das System, zählt der Energiesparmodus gar nicht mehr. Wo Leistungsmodus und Rechenwerk in den Einstellungen liegen, zeigt die Seite zu den Einstellungen.
| Grund | wann | Befehle je Bild |
|---|---|---|
| voll | der Emulator wird gebraucht, und nichts bremst | der eingestellte Takt – 1.000.000, 300.000 oder 50.000 je nach Leistungsmodus |
| ruht | das System schläft, das Fenster ist verborgen oder hat den Blick verloren | 0 |
| unbeachtet | kein Fenster und kein Bildschirm des Emulators ist offen | 0 |
| sparen | der Energiesparmodus ist an | höchstens 50.000 |
| gedrosselt | die selbsttätige Drosselung greift | die Hälfte, mindestens 50.000 |
| leerlauf | seit dem letzten Anstoß ist nichts los | höchstens 50.000 |
Zehn Millisekunden
Mehr Rechenzeit bekommt ein Bild nicht. Alle 1.000 Befehle sieht der Emulator auf die Uhr. Früher endet ein Bild nur aus vier Gründen: Haltepunkt, Anhalten, hlt oder eben die Zeitgrenze. Der Emulator rechnet im selben Ablauf wie die Oberfläche. Ohne Grenze müssten Mauszeiger und Fenster warten, bis er fertig ist.
Gefunden, weil es angezeigt wird
Am 6. September 2026 zeigte die neue Seite Rechenwerk: Der Prozessor lief mit null Befehlen, und niemand hatte es bemerkt. Eine zweite Datei hatte den Takt wieder auf null gesetzt. Seitdem steht neben jeder Zahl ihr Grund – eine Null, die sich erklärt, und eine, die ein Fehler ist, sehen sonst gleich aus.
Die zwölf Interrupts des BIOS
Ein Programm ruft das BIOS über eine Nummer. Das BIOS ist die kleine Grundausstattung, die ein PC vor jedem Betriebssystem mitbringt: Zeichen ausgeben, Tasten lesen, Sektoren von der Platte holen. Der Startlader des eigenen Kernels holt sich darüber den Rest des Abbilds von der Platte. Diese zwölf Nummern beantwortet der Emulator:
| Nummer | Aufgabe |
|---|---|
| 0x08 | Zeitgeber |
| 0x09 | Tastatur |
| 0x10 | Bildschirm |
| 0x11 | Ausstattung des Rechners |
| 0x12 | Speichergröße |
| 0x13 | Laufwerke |
| 0x15 | Systemdienste, darunter die E820-Speicherkarte |
| 0x16 | Tastatur-BIOS |
| 0x19 | Warmstart |
| 0x1A | Uhr des BIOS |
| 0x21 | DOS-Dienste |
| 0x33 | Maus |
Ab Werk lässt der Interrupt-Controller nur Zeitgeber und Tastatur durch; das A20-Gatter ist an. Das sind die beiden Geräte, für die der eigene Kernel Treiber mitbringt: Uhr und Tastatur.
Werkzeuge zum Hineinsehen
Der Debugger
Ein Haltepunkt hält die Maschine an einer Adresse an und schaltet den Lautsprecher stumm. Der Speicherauszug beginnt bei 0x7C00. F5, F6 und F7 halten an, führen einen Befehl aus und setzen zurück. 0x7C00 ist die Stelle, an die jeder PC den Startsektor lädt – dort beginnt also das, was der Kernel als Erstes tut.
Der Disassembler
Er übersetzt einzelne x86-Befehle im Real Mode zurück in lesbare Kürzel. So lässt sich nachsehen, welche Maschinenbefehle der Compiler der Sprache .ae erzeugt hat, ohne die Bytes von Hand zu entschlüsseln.
System › Rechenwerk
Dieselben drei Knöpfe in den Einstellungen: anhalten, ein Befehl, zurücksetzen. „Zurücksetzen“ lädt das Abbild neu, der Speicher der Maschine ist danach leer. Dort steht auch der Grund für den Takt aus der Tabelle oben.
Das Programm „Simulator“ in der Liste der eingebauten Apps ist nicht dieser Emulator. Es öffnet andere Apps anhand ihres Namens. Die Namen ähneln sich, die Aufgaben nicht – wer den nachgebauten PC sucht, findet ihn unter System › Rechenwerk.
Weiter
Der eigene Kernel
Was im Abbild steckt, das hier läuft. Mit den Schichten, den zwölf Systemaufrufen und dem, was nur als Name vorgemerkt ist.
Aufbau und Technik
Oberfläche, Linux-Unterbau und Simulator. Dort steht, wie groß der Emulator neben dem Rest der Oberfläche ist.
Die Einstellungen
Mit der Seite Rechenwerk unter System. Dort lässt sich der nachgebaute Prozessor anhalten und Befehl für Befehl weiterschalten.






