Hvor Kshana kører, og hvor den ikke gør
En afgrænsning af omfang, skrevet ned, så ingen opdager den som en forpligtelse i et møde.
Forkortelser: CPU, central processing unit; GPU, graphics processing unit; NPU, neural processing unit; FPGA, field-programmable gate array; MCU, microcontroller unit; RTOS, real-time operating system; OPS-SAT, Den Europæiske Rumorganisations satellit med softwarelaboratorium i kredsløb; PyPI, Python Package Index; MCP, Model Context Protocol; AI, kunstig intelligens; JSON, JavaScript Object Notation.
Kørsler#
| Mål | Sådan | Noter |
|---|---|---|
| Linux-, macOS- og Windows-arbejdsstationer og -servere, x86-64 og 64-bit ARM | programmet kshana eller Rust-craten |
release-binærer til Linux x86-64, macOS (Apple silicon og Intel) og Windows x86-64; på de øvrige mål bygger cargo install kshana den |
| Python 3,9 eller nyere | hjulet kshana på PyPI (--features python) |
hjul til Linux, macOS og Windows, x86-64 og 64-bit ARM |
| MCP-klienter (AI-agenter) | serveren kshana-mcp: cargo install kshana-mcp eller containerbilledet |
billede til linux/amd64 og linux/arm64 |
| Browsere og JavaScript-runtimes | WebAssembly-pakken på npm (--features wasm) |
den samme motor, kompileret til WebAssembly |
| En lille computer på en båd, ved siden af modtageren | referencebuildet i deploy/reference-build/: kshana receiver-trust live med gaten, der publicerer til Signal K og, efter tilvalg, til OpenCPN |
vejledende, ikke typegodkendt navigationsudstyr; ikke testet på et fartøj af projektet; se MARINE-INTEGRATIONS.md |
| Signal K-servere | pluginet i integrations/signalk/ |
leveret og enhedstestet på optaget syntetisk output; ikke publiceret på npm |
| OpenCPN | NMEA 0183 i gate-tilstand over TCP fra monitoren | efter tilvalg; se MARINE-INTEGRATIONS.md |
| Nyttelastcomputere af Linux-klassen | Rust-craten eller binæren, krydskompileret | Nyttelastcomputere af OPS-SAT-klassen og lignende |
| Edge-noder med en GPU, NPU eller FPGA ved siden af en Linux-CPU | på Linux-CPU'en | Kshana bruger ingen af acceleratorerne; den kører ved siden af dem |
Kører ikke#
En bare-metal-flyve-MCU eller en lille RTOS uden Rusts standardbibliotek. Kshana er gennemgående en std-crate: den allokerer på heapen, læser filer, formaterer JSON og bruger standardbibliotekets flydendetalsfunktioner. Der findes intet no_std-build og ingen feature, der frembringer et.
Beslutning: vi tilbyder ikke en no_std-flyvekerne. At bygge en ville være et separat produkt med sin egen verifikationsbyrde, og det ville placere Kshana i flyvesoftware, hvor kvalificering er et program for sig, som vi ikke har nogen vej igennem.
Hvad du kan gøre i stedet#
- Kør Kshana på jorden eller på en nyttelastcomputer, og upload dens resultater. Typen
slot-timingproducerer præcis de tal, en flyvecomputer har brug for: en kadence for positionsbestemmelse, et brudtidspunkt, en garde. En tabel med dem fylder få bytes. - Port en lukket form, hvis det er alt, der er brug for. Holdover-inversionen er en kort monoton rodsøgning over en polynomiel varians, dokumenteret med sine ligninger i
SLOT-TIMING.md. At genimplementere den i flyvekode er ligetil; kode afledt af Kshana forbliver under Kshanas licens.
Også udenfor omfanget#
Hård realtidsgaranti (Kshana allokerer og fremsætter ikke noget krav om værste-tilfælde-udførelsestid); flyvekvalificering af noget som helst; og en synkroniseringsprotokol, en regulator eller en routingstak. Kshana leverer den tidsevidens, som disse systemer designes imod. Den er ikke et af dem.