Wo Kshana läuft und wo nicht
Eine Abgrenzung des Umfangs, aufgeschrieben, damit niemand sie in einer Besprechung als Zusage entdeckt.
Abkürzungen: CPU, Hauptprozessor; GPU, Grafikprozessor; NPU, neuronaler Prozessor; FPGA, im Feld programmierbare Gatteranordnung; MCU, Mikrocontroller; RTOS, Echtzeitbetriebssystem; OPS-SAT, das Satelliten-Softwarelabor der Europäischen Weltraumorganisation im Orbit; PyPI, der Python Package Index; MCP, das Model Context Protocol; AI, künstliche Intelligenz; JSON, JavaScript Object Notation.
Läufe#
| Ziel | Wie | Hinweise |
|---|---|---|
| Linux-, macOS- und Windows-Arbeitsplätze und -Server, x86-64 und 64-Bit-ARM | die Binärdatei kshana oder das Rust-Crate |
Release-Binärdateien für Linux x86-64, macOS (Apple Silicon und Intel) und Windows x86-64; auf den anderen Zielen baut cargo install kshana es |
| Python 3,9 oder neuer | das Wheel kshana auf PyPI (--features python) |
Wheels für Linux, macOS und Windows, x86-64 und 64-Bit-ARM |
| MCP-Clients (KI-Agenten) | der Server kshana-mcp: cargo install kshana-mcp oder das Container-Image |
Image für linux/amd64 und linux/arm64 |
| Browser und JavaScript-Laufzeitumgebungen | das WebAssembly-Paket auf npm (--features wasm) |
dieselbe Engine, nach WebAssembly kompiliert |
| Ein kleiner Rechner an Bord eines Boots, neben dem Empfänger | der Referenz-Build in deploy/reference-build/: kshana receiver-trust live mit dem Gate, das an Signal K und, optional, an OpenCPN veröffentlicht |
beratend, keine typzugelassene Navigationsausrüstung; vom Projekt nicht auf einem Schiff getestet; siehe MARINE-INTEGRATIONS.md |
| Signal-K-Server | das Plugin in integrations/signalk/ |
ausgeliefert und mit Unit-Tests an aufgezeichneter synthetischer Ausgabe getestet; nicht auf npm veröffentlicht |
| OpenCPN | NMEA 0183 im Gate-Modus über TCP vom Monitor | optional; siehe MARINE-INTEGRATIONS.md |
| Nutzlastrechner der Linux-Klasse | das Rust-Crate oder die Binärdatei, quer kompiliert | Nutzlastrechner der OPS-SAT-Klasse und ähnliche |
| Edge-Knoten mit GPU, NPU oder FPGA neben einer Linux-CPU | auf der Linux-CPU | Kshana nutzt keinen der Beschleuniger; es läuft neben ihnen |
Läuft nicht#
Ein Bare-Metal-Flug-MCU oder ein kleines RTOS ohne die Rust-Standardbibliothek. Kshana ist durchgehend ein std-Crate: Es belegt Speicher auf dem Heap, liest Dateien, formatiert JSON und verwendet die Gleitkommafunktionen der Standardbibliothek. Es gibt keinen no_std-Build und kein Feature, das einen erzeugt.
Entscheidung: Wir bieten keinen no_std-Flugkern an. Ihn zu bauen wäre ein eigenes Produkt mit eigenem Verifikationsaufwand, und es würde Kshana in die Flugsoftware bringen, wo die Qualifizierung ein eigenes Programm ist, für das wir keinen Weg haben.
Was stattdessen zu tun ist#
- Kshana am Boden oder auf einem Nutzlastrechner ausführen und die Ergebnisse hochladen. Die Art
slot-timingliefert genau die Zahlen, die ein Flugrechner braucht: eine Fix-Kadenz, einen Verletzungszeitpunkt, eine Schutzgröße. Eine Tabelle davon umfasst wenige Bytes. - Eine geschlossene Form portieren, wenn nur sie benötigt wird. Die Holdover-Inversion ist eine kurze monotone Nullstellensuche über eine Polynomvarianz, mit ihren Gleichungen dokumentiert in
SLOT-TIMING.md. Sie in Flugcode neu zu implementieren ist unkompliziert; von Kshana abgeleiteter Code bleibt unter der Lizenz von Kshana.
Ebenfalls außerhalb des Umfangs#
Harte Echtzeitgarantien (Kshana belegt Speicher und macht keine Aussage zur Ausführungszeit im ungünstigsten Fall); die Flugqualifizierung von irgendetwas; sowie ein Synchronisationsprotokoll, ein Regler oder ein Routing-Stack. Kshana liefert die Nachweise zur Zeitgebung, gegen die diese Systeme entworfen werden. Es ist keines davon.