Dónde se ejecuta Kshana y dónde no
Un límite de alcance, dejado por escrito para que nadie lo descubra como un compromiso en una reunión.
Abreviaturas: CPU, unidad central de procesamiento; GPU, unidad de procesamiento gráfico; NPU, unidad de procesamiento neuronal; FPGA, matriz de puertas programable en campo; MCU, unidad microcontroladora; RTOS, sistema operativo en tiempo real; OPS-SAT, el satélite laboratorio de software en órbita de la Agencia Espacial Europea; PyPI, el Python Package Index; MCP, el Model Context Protocol; AI, inteligencia artificial; JSON, JavaScript Object Notation.
Ejecuciones#
| Destino | Cómo | Notas |
|---|---|---|
| Estaciones de trabajo y servidores Linux, macOS y Windows, x86-64 y ARM de 64 bits | el binario kshana, o el crate de Rust |
binarios de publicación para Linux x86-64, macOS (Apple silicon e Intel) y Windows x86-64; en los demás destinos lo compila cargo install kshana |
| Python 3,9 o posterior | el wheel de kshana en PyPI (--features python) |
wheels para Linux, macOS y Windows, x86-64 y ARM de 64 bits |
| Clientes MCP (agentes de IA) | el servidor kshana-mcp: cargo install kshana-mcp, o la imagen de contenedor |
imagen para linux/amd64 y linux/arm64 |
| Navegadores y entornos de ejecución de JavaScript | el paquete WebAssembly en npm (--features wasm) |
el mismo motor, compilado a WebAssembly |
| Un pequeño ordenador a bordo de una embarcación, junto al receptor | la compilación de referencia en deploy/reference-build/: kshana receiver-trust live con la compuerta, que publica en Signal K y, por activación voluntaria, en OpenCPN |
de carácter consultivo, no un equipo de navegación homologado; el proyecto no lo ha probado en ninguna embarcación; véase MARINE-INTEGRATIONS.md |
| Servidores Signal K | el complemento en integrations/signalk/ |
se entrega y se somete a pruebas unitarias sobre salidas sintéticas grabadas; no está publicado en npm |
| OpenCPN | NMEA 0183 en modo de compuerta por TCP desde el monitor | activación voluntaria; véase MARINE-INTEGRATIONS.md |
| Ordenadores de carga útil de clase Linux | el crate de Rust o el binario, compilado de forma cruzada | Ordenadores de carga útil de clase OPS-SAT y similares |
| Nodos de borde con GPU, NPU o FPGA junto a una CPU Linux | en la CPU Linux | Kshana no usa ninguno de los aceleradores; se ejecuta junto a ellos |
No se ejecuta#
Un MCU de vuelo sin sistema operativo o un RTOS pequeño sin la biblioteca estándar de Rust. Kshana es en todo momento un crate std: reserva memoria en el montón, lee archivos, da formato a JSON y usa las funciones de coma flotante de la biblioteca estándar. No existe ninguna compilación no_std ni ninguna función que genere una.
Decisión: no ofrecemos un núcleo de vuelo no_std. Construir uno sería un producto aparte, con su propia carga de verificación, y llevaría a Kshana al software de vuelo, donde la cualificación es un programa en sí mismo y para el que no tenemos ninguna vía.
Qué hacer en su lugar#
- Ejecute Kshana en tierra o en un ordenador de carga útil y suba sus resultados. El tipo de escenario
slot-timingproduce exactamente los números que necesita un ordenador de vuelo: una cadencia de soluciones, un instante de incumplimiento del umbral, una guarda. Una tabla con ellos ocupa unos pocos bytes. - Porte una forma cerrada, si basta con una. La inversión de holdover es una búsqueda de raíz monótona y breve sobre una varianza polinómica, documentada con sus ecuaciones en
SLOT-TIMING.md. Reimplementarla en código de vuelo es sencillo; el código derivado de Kshana sigue bajo la licencia de Kshana.
También fuera del alcance#
Garantías de tiempo real estricto (Kshana reserva memoria y no afirma nada sobre el tiempo de ejecución en el peor caso); la cualificación de vuelo de cualquier cosa; y un protocolo de sincronización, un controlador o una pila de enrutamiento. Kshana aporta la evidencia de temporización frente a la que se diseñan esos sistemas. No es uno de ellos.