Kshana在哪里运行,在哪里不运行
一条范围边界,写下来是为了没有人在某次会议上才把它当作承诺发现。
缩略语:CPU,中央处理器;GPU,图形处理器;NPU,神经网络处理器;FPGA,现场可编程门阵列;MCU,微控制器;RTOS,实时操作系统;OPS-SAT,欧洲航天局的在轨软件实验室卫星;PyPI,Python包索引;MCP,模型上下文协议;AI,人工智能;JSON,JavaScript对象表示法。
运行#
| 目标 | 方式 | 备注 |
|---|---|---|
| Linux、macOS和Windows工作站与服务器,x86-64和64位ARM | kshana二进制文件,或Rust crate |
面向Linux x86-64、macOS(Apple芯片和Intel)和Windows x86-64的发布版二进制文件;在其他目标上由cargo install kshana构建 |
| Python 3.9或更新版本 | PyPI上的kshana wheel(--features python) |
面向Linux、macOS和Windows、x86-64和64位ARM的wheel |
| MCP客户端(AI智能体) | kshana-mcp服务器:cargo install kshana-mcp,或容器镜像 |
面向linux/amd64和linux/arm64的镜像 |
| 浏览器和JavaScript运行时 | npm上的WebAssembly包(--features wasm) |
同一个引擎,编译为WebAssembly |
| 船上接收机旁的一台小型计算机 | deploy/reference-build/中的参考构建:带关卡的kshana receiver-trust live,向Signal K发布,并可选择向OpenCPN发布 |
仅供参考,不是经型式认可的导航设备;项目方未在船舶上测试过;见MARINE-INTEGRATIONS.md |
| Signal K服务器 | integrations/signalk/中的插件 |
已发布,并在录制的合成数据输出上做过单元测试;未发布到npm |
| OpenCPN | 来自监测器的、基于TCP的关卡模式NMEA 0183 | 可选启用;见MARINE-INTEGRATIONS.md |
| Linux级别的载荷计算机 | Rust crate或二进制文件,交叉编译 | OPS-SAT级别的载荷计算机及类似设备 |
| 在Linux CPU旁配有GPU、NPU或FPGA的边缘节点 | 在Linux CPU上 | Kshana不使用任何加速器;它与加速器并行运行 |
不运行#
不带Rust标准库的裸机飞行MCU或小型RTOS。Kshana自始至终是一个std crate:它在堆上分配内存,读取文件,格式化JSON,并使用标准库的浮点函数。不存在no_std构建,也没有能生成这种构建的特性。
决定:我们不提供no_std飞行核心。构建一个会成为另一个产品,有它自己的验证负担,并且会把Kshana带入飞行软件;而在飞行软件中,资质鉴定本身就是一项独立的工程,我们没有途径完成。
改为怎么做#
- 在地面或载荷计算机上运行Kshana,并上传其结果。
slot-timing类型恰好产生飞行计算机所需的数值:定位周期、越界时间、保护间隔。将它们列成一张表只有几个字节。 - 如果只需要一个闭式解,就移植它。守时反演是对多项式方差做的一次简短的单调求根,其方程记录在
SLOT-TIMING.md中。在飞行代码中重新实现它很简单;源自Kshana的代码仍受Kshana的许可约束。
同样不在范围之内#
硬实时保证(Kshana会分配内存,也不对最坏情况执行时间作任何声明);任何东西的飞行资质鉴定;以及同步协议、控制器或路由协议栈。Kshana提供的是这些系统据以设计的授时证据。它本身不是其中之一。