NexIOS – Ein kleines Experiment zu RTOS, ELF-Isolierung & KI-gestützter Entwicklung

OP #8092845
Lesenswert?
• ▲
▼

Hallo zusammen,

ich bin neu hier und arbeite in meiner Freizeit an einem kleinen Hobby-Projekt namens NexIOS. Die Grundidee dahinter ist eigentlich recht simpel: Ich möchte ausprobieren, ob man unmodifizierte ELF-Binärdateien direkt auf einem Echtzeitkernel mit echter MMU-Isolierung ohne erneutes Kompilieren ausführen kann. Fällt eine User-Applikation durch einen Segfault oder wegen Zeitüberschreitung (periodische Task) aus, fängt der Kernel das ab – nur diese eine Task wird beendet (Fehlerstop), während das Gesamtsystem weiterläuft.

Aktuell ist das System als fähigkeitsbasierter (Capability/CSpace) Hybrid-Kernel auf x86_64 (vielleicht später RISC-V/ARM64) und unter QEMU "aufgebaut". Das langfristige Ziel ist es aber, Treiber und Dateisysteme schrittweise nach außen zu verlagern, um zu sehen, wie weit man das Konzept in Richtung eines echten Mikrokernel-Designs treiben kann. Aktuell ist es noch ein reines Experiment und nicht real einsetzbar! Es bietet eine kleine Shell mit der man ein ELF laden kann und ein paar Befehle absetzen kann.

Als zusätzliches Meta-Experiment nutze ich eine KI-gestützte Pipeline (mit Test-Gates und Test-Driven Development), um herauszufinden, wie gut sich moderne LLMs für das Schreiben von nutzbarem Low-Level-Systemcode eignen, wenn man sie durch Orchestrierung einengt. Da ich in der Vergangenheit (nicht mehr tätig) beruflich aus dem Bereich der funktionalen Sicherheit (SIL 3) komme, reizt mich dabei besonders die Kombination aus den Qualitätsstandards und den modernen Entwicklungs-Tools.

Das Ganze ist aktuell ein reines Lern-, Spielzeug- und Forschungsprojekt aus Neugier mit der Absicht, irgendwann für jemanden nützlich zu sein. Ich würde mich über ergebnisoffenes Interesse oder fachlichen Austausch zu Kernel-Architekturen, Speicherisolierung oder RTOS-Konzepten freuen.

Hier eine Landing Page zur kleinen Beschreibung: https://nexios-2.jimdosite.com Hier das Github Repo dazu: https://github.com/staycool1374-Ger/nexios

StayCool1374

OP #8096129
Lesenswert?
• ▲
▼

Aus meiner ursprünglichen Beschreibung ist die eigentliche Vision vielleicht nicht ganz klar hervorgegangen. Warum das Ganze?

Es geht um die Frage "Wie kann ein schneller Entwicklungszyklus (Rapid Application Development) auf Bare-Metal-/RTOS-Ebene aussehen, ohne dass man nach jedem Bug das komplette System neu flashen oder rebooten muss?"

Dazu eine kurze Anekdote: Der 1,8-Sekunden-Bugfix „Der Prototyp muss bis 16 Uhr laufen, sonst war’s das mit der Messe!“, rief der Chef und verschüttete seinen Kaffee. Die Aufgabe: Eine 3-Achsen-Steuerung für einen Platinen-Plotter auf dem Raspberry Pi 4.

Früher hieß das: SD-Karte flashen, booten, Bug finden, SD-Karte wieder flashen. Aber heute läuft es anders, denn Felix tippte in seinem Terminal schlicht:

1
make && rsync -avz my_plotter.elf nexios@pi4-dev:/tmp/

Das neue ELF-Binary lag nun in der RAM-Disk. Nun noch per Shell-Befehl das ELF laden und ausführen:

1
nexios> loadelf /tmp/my_plotter.elf
2
nexios> runelf

Der Plotter fuhr an – und lief direkt in Felix’ eingebauten Nullpointer im Code. Normalerweise wäre jetzt der Kernel eingefroren oder die Endstufe im Dauer-High verglüht. Aber die ARM64-MMU fing den Absturz ab, der Kernel entzog die Capabilities und gab den Speicher frei. Shell und Kernel liefen einfach unbeeindruckt weiter. Pointer-Fehler im Code behoben, rsync und mit loadelf + runelf die Anwendung neu geladen und gestartet. Als der Chef um 15:58 Uhr ins Labor stürzte, zeichnete der Plotter perfekt das Firmenlogo. „Wie lange hat der Reboot gedauert?“, fragte er nervös. Felix lächelte: „Reboot? Welcher Reboot?“ Genau diese Kombination aus Zero-Flash-Deployment (via In-Memory Loop-Device) und Hard Fault Isolation ist der Kern des Experiments.

Beitrag #8096134 wurde vom Autor gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren