Onde o Kshana funciona e onde não funciona
Uma fronteira de âmbito, escrita para que ninguém a descubra como compromisso numa reunião.
Abreviaturas: CPU, unidade central de processamento; GPU, unidade de processamento gráfico; NPU, unidade de processamento neuronal; FPGA, matriz de portas programável em campo; MCU, unidade de microcontrolador; RTOS, sistema operativo em tempo real; OPS-SAT, o satélite-laboratório de software em órbita da Agência Espacial Europeia; PyPI, o Python Package Index; MCP, o Model Context Protocol; IA, inteligência artificial; JSON, JavaScript Object Notation.
Execuções#
| Alvo | Como | Notas |
|---|---|---|
| Estações de trabalho e servidores Linux, macOS e Windows, x86-64 e ARM de 64 bits | o binário kshana ou a crate Rust |
binários de lançamento para Linux x86-64, macOS (Apple silicon e Intel) e Windows x86-64; nos restantes alvos, cargo install kshana compila-o |
| Python 3,9 ou posterior | o wheel kshana no PyPI (--features python) |
wheels para Linux, macOS e Windows, x86-64 e ARM de 64 bits |
| Clientes MCP (agentes de IA) | o servidor kshana-mcp: cargo install kshana-mcp, ou a imagem de contentor |
imagem para linux/amd64 e linux/arm64 |
| Navegadores e ambientes de execução JavaScript | o pacote WebAssembly no npm (--features wasm) |
o mesmo motor, compilado para WebAssembly |
| Um pequeno computador num barco, junto ao recetor | a compilação de referência em deploy/reference-build/: kshana receiver-trust live com a verificação de passagem (gate), a publicar no Signal K e, por opção, no OpenCPN |
consultivo, não um equipamento de navegação homologado; não testado numa embarcação pelo projeto; ver MARINE-INTEGRATIONS.md |
| Servidores Signal K | o plugin em integrations/signalk/ |
fornecido e testado unitariamente sobre uma saída sintética gravada; não publicado no npm |
| OpenCPN | NMEA 0183 em modo gate sobre TCP a partir do monitor | por opção; ver MARINE-INTEGRATIONS.md |
| Computadores de carga útil de classe Linux | a crate Rust ou o binário, compilado de forma cruzada | Computadores de carga útil de classe OPS-SAT e semelhantes |
| Nós periféricos com uma GPU, NPU ou FPGA ao lado de uma CPU Linux | na CPU Linux | O Kshana não usa nenhum dos aceleradores; funciona ao lado deles |
Não funciona#
Uma MCU de voo bare-metal ou um pequeno RTOS sem a biblioteca padrão do Rust. O Kshana é, de uma ponta à outra, uma crate std: aloca memória no heap, lê ficheiros, formata JSON e usa as funções de vírgula flutuante da biblioteca padrão. Não existe compilação no_std nem nenhuma funcionalidade que produza uma.
Decisão: não oferecemos um núcleo de voo no_std. Construir um seria um produto separado, com o seu próprio encargo de verificação, e colocaria o Kshana em software de voo, onde a qualificação é um programa por si só, para o qual não temos qualquer via.
O que fazer em alternativa#
- Execute o Kshana em terra ou num computador de carga útil e carregue os resultados. O tipo de cenário
slot-timingproduz exatamente os números de que um computador de voo precisa: uma cadência de soluções de posição, um tempo de violação, uma guarda. Uma tabela com eles ocupa poucos bytes. - Porte uma forma fechada, se for só isso que é preciso. A inversão do holdover é uma pesquisa de raiz monótona e curta sobre uma variância polinomial, documentada com as suas equações em
SLOT-TIMING.md. Voltar a implementá-la em código de voo é simples; o código derivado do Kshana continua sob a licença do Kshana.
Também fora do âmbito#
Garantias rígidas de tempo real (o Kshana aloca memória e não faz nenhuma afirmação sobre o tempo de execução no pior caso); a qualificação de voo de seja o que for; e um protocolo de sincronização, um controlador ou uma pilha de encaminhamento. O Kshana fornece as evidências de temporização contra as quais esses sistemas são concebidos. Não é um deles.