Var Kshana körs, och var den inte gör det
En omfattningsgräns, nedskriven så att ingen upptäcker den som ett åtagande på ett möte.
Förkortningar: 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, Europeiska rymdorganisationens satellit som programvarulaboratorium i omloppsbana; PyPI, Python Package Index; MCP, Model Context Protocol; AI, artificiell intelligens; JSON, JavaScript Object Notation.
Körningar#
| Mål | Hur | Anteckningar |
|---|---|---|
| Arbetsstationer och servrar med Linux, macOS och Windows, x86-64 och 64-bitars ARM | binären kshana, eller Rust-craten |
binärer för utgåvor till Linux x86-64, macOS (Apple silicon och Intel) och Windows x86-64; på övriga mål bygger cargo install kshana den |
| Python 3,9 eller senare | hjulet kshana på PyPI (--features python) |
hjul för Linux, macOS och Windows, x86-64 och 64-bitars ARM |
| MCP-klienter (AI-agenter) | servern kshana-mcp: cargo install kshana-mcp, eller containeravbilden |
avbild för linux/amd64 och linux/arm64 |
| Webbläsare och JavaScript-körmiljöer | WebAssembly-paketet på npm (--features wasm) |
samma motor, kompilerad till WebAssembly |
| En liten dator på en båt, bredvid mottagaren | referensbygget i deploy/reference-build/: kshana receiver-trust live med grindfunktionen, som publicerar till Signal K och, som tillval, till OpenCPN |
rådgivande, inte typgodkänd navigationsutrustning; inte testad på ett fartyg av projektet; se MARINE-INTEGRATIONS.md |
| Signal K-servrar | tillägget i integrations/signalk/ |
levererat och enhetstestat på inspelade syntetiska utdata; inte publicerat på npm |
| OpenCPN | NMEA 0183 i grindläge över TCP från övervakaren | som tillval; se MARINE-INTEGRATIONS.md |
| Nyttolastdatorer av Linux-klass | Rust-craten eller binären, korskompilerad | Nyttolastdatorer av OPS-SAT-klass och liknande |
| Edge-noder med GPU, NPU eller FPGA bredvid en Linux-CPU | på Linux-CPU:n | Kshana använder inga av acceleratorerna; den körs bredvid dem |
Körs inte#
En flygmikrokontroller utan operativsystem eller ett litet RTOS utan Rusts standardbibliotek. Kshana är genomgående en std-crate: den allokerar på heapen, läser filer, formaterar JSON och använder standardbibliotekets flyttalsfunktioner. Det finns inget bygge för no_std och ingen funktion som skapar ett.
Beslut: vi erbjuder ingen flygkärna för no_std. Att bygga en skulle vara en separat produkt med sin egen verifieringsbörda, och det skulle föra in Kshana i flygprogramvara, där kvalificering är ett eget program som vi inte har någon väg igenom.
Vad du kan göra i stället#
- Kör Kshana på marken eller på en nyttolastdator och ladda upp dess resultat. Sorten
slot-timingproducerar exakt de siffror som en flygdator behöver: en kadens för positionsbestämning, en överskridandetid, ett skydd. En tabell med dem är några få bytes. - Portera en sluten form, om det är allt som behövs. Inversionen för holdover är en kort monoton rotsökning över en polynomvarians, dokumenterad med sina ekvationer i
SLOT-TIMING.md. Att återimplementera den i flygkod är enkelt; kod som härletts från Kshana förblir under Kshanas licens.
Också utanför omfattningen#
Hårda realtidsgarantier (Kshana allokerar och gör inget påstående om längsta exekveringstid); flygkvalificering av något; och ett synkroniseringsprotokoll, en regulator eller en routingstack. Kshana levererar det tidsbelägg som dessa system utformas mot. Den är inte ett av dem.