Gdzie Kshana działa, a gdzie nie
Granica zakresu, spisana po to, by nikt nie odkrył jej jako zobowiązania na spotkaniu.
Skróty: CPU, central processing unit (procesor); GPU, graphics processing unit (procesor graficzny); NPU, neural processing unit (procesor neuronowy); FPGA, field-programmable gate array; MCU, microcontroller unit (mikrokontroler); RTOS, real-time operating system (system operacyjny czasu rzeczywistego); OPS-SAT, satelita Europejskiej Agencji Kosmicznej będący orbitalnym laboratorium oprogramowania; PyPI, Python Package Index; MCP, Model Context Protocol; AI, sztuczna inteligencja; JSON, JavaScript Object Notation.
Przebiegi#
| Cel | Jak | Uwagi |
|---|---|---|
| Stacje robocze i serwery z Linuksem, macOS i Windows, x86-64 i 64-bitowe ARM | binarka kshana lub crate Rusta |
binarki wydaniowe dla Linuksa x86-64, macOS (Apple silicon i Intel) oraz Windows x86-64; na pozostałych celach buduje ją cargo install kshana |
| Python 3,9 lub nowszy | pakiet wheel kshana w PyPI (--features python) |
pakiety wheel dla Linuksa, macOS i Windows, x86-64 i 64-bitowe ARM |
| Klienci MCP (agenci AI) | serwer kshana-mcp: cargo install kshana-mcp lub obraz kontenera |
obraz dla linux/amd64 i linux/arm64 |
| Przeglądarki i środowiska uruchomieniowe JavaScriptu | pakiet WebAssembly w npm (--features wasm) |
ten sam silnik, skompilowany do WebAssembly |
| Mały komputer na łodzi, obok odbiornika | wzorcowa kompilacja w deploy/reference-build/: kshana receiver-trust live z bramką, publikująca do Signal K i, opcjonalnie, do OpenCPN |
wyłącznie doradczo, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu; projekt nie testował tego na statku; zob. MARINE-INTEGRATIONS.md |
| Serwery Signal K | wtyczka w integrations/signalk/ |
dostarczona i przetestowana jednostkowo na zarejestrowanym wyniku syntetycznym; nieopublikowana w npm |
| OpenCPN | NMEA 0183 w trybie bramki przez TCP z monitora | opcjonalnie; zob. MARINE-INTEGRATIONS.md |
| Komputery ładunku klasy Linux | crate Rusta lub binarka, kompilowane skrośnie | Komputery ładunku klasy OPS-SAT i podobne |
| Węzły brzegowe z GPU, NPU lub FPGA obok procesora Linux | na procesorze Linux | Kshana nie używa żadnych akceleratorów; działa obok nich |
Nie działa#
Bare-metalowy lotniczy MCU lub mały RTOS bez standardowej biblioteki Rusta. Kshana jest w całości crate'em std: alokuje na stercie, czyta pliki, formatuje JSON i używa funkcji zmiennoprzecinkowych biblioteki standardowej. Nie ma kompilacji no_std ani cechy, która by ją tworzyła.
Decyzja: nie oferujemy rdzenia lotniczego no_std. Jego zbudowanie byłoby osobnym produktem z własnym obciążeniem weryfikacyjnym i wprowadziłoby Kshana do oprogramowania lotniczego, gdzie kwalifikacja jest odrębnym programem, do którego nie mamy żadnej drogi.
Co robić zamiast tego#
- Uruchom Kshana na ziemi lub na komputerze ładunku i prześlij jego wyniki. Rodzaj
slot-timingwytwarza dokładnie te liczby, których potrzebuje komputer pokładowy: kadencję rozwiązań, czas przekroczenia, margines. Tabela z nimi to kilka bajtów. - Przenieś wzór zamknięty, jeśli tylko on jest potrzebny. Inwersja holdover to krótkie monotoniczne wyszukiwanie pierwiastka wielomianowej wariancji, udokumentowane wraz z równaniami w
SLOT-TIMING.md. Ponowna implementacja w kodzie lotniczym jest prosta; kod wywiedziony z Kshana pozostaje na licencji Kshana.
Także poza zakresem#
Twarde gwarancje czasu rzeczywistego (Kshana alokuje pamięć i nie podaje żadnego twierdzenia o czasie wykonania w najgorszym przypadku); kwalifikacja lotnicza czegokolwiek; oraz protokół synchronizacji, sterownik lub stos routingu. Kshana dostarcza dowody dotyczące synchronizacji czasu, względem których te systemy są projektowane. Nie jest żadnym z nich.