项目概览
XTOS 的组件、目标架构、使用步骤和验证范围。
本页目录
XTOS 提供什么
OpenXTOS 是 XTOS 的公开源码发行。它包含 Linux 6.6.0-rt15 内核、静态 BusyBox 1.37.0 用户态、根文件系统、三套 SDK、信号处理工具、示例,以及构建和验证脚本。
公开源码可以生成内核和 initramfs,并启动开发控制台。“完整”不表示包含桌面、包管理器或硬件认证产品栈。
| 组成 | 具体内容与产物 |
|---|---|
| 实时内核 | 已集成 PREEMPT_RT rt15 的 Linux 6.6.0,包含可选 XTOS_SCHED 辅助及 BCI 驱动;生成 bzImage 或 Image 与模块。 |
| 系统用户态 | 静态 BusyBox、/init、模块目录与开发 shell;以 cpio.gz initramfs 随内核启动。 |
| SDK | libxtos-rt 提供调度、亲和性、锁内存和 SPSC;libxtos-signal 提供信号算法;libxtos-bci 封装采集会话。 |
| 工作负载与验证 | EEG CSV 管线、信号基准、Python 回放校验、BCI 示例;QEMU 自检覆盖实际构建出的客体程序。 |
项目以超级智能(SI)为发展方向,研究 BCI、确定性信号处理和智能应用的实时系统。项目也支持接入现有 AI 模型和算法。
公开源码提供运行基础和接口。模型权重、推理服务、反馈策略和业务应用需要另行实现。项目定位不表示已集成超级智能能力、模型或闭环。
组件职责
Linux 主调度器负责线程调度。PREEMPT_RT 提供实时抢占基础。XTOS_SCHED 是可选的带锁 O(1) 优先级队列辅助,不是 Linux sched_class。它不新增 SDK 专用系统调用,也不替换 task_struct 或系统调用 ABI。
默认构建启用 XTOS_SCHED,只表示该辅助编入内核。它不表示所有应用都通过该辅助执行。
libxtos-rt 调用标准 sched_setscheduler、sched_setaffinity 和 mlock。libxtos-signal 在用户态计算。BCI ioctl 控制采集设备。
应用负责窗口、缓存预算、线程优先级、超时、降级、推理和反馈。采集控制不是通用执行器控制。用户态算法也不是内核推理或安全保证。
使用步骤
- 先在“快速开始”安装 Linux 主机依赖、获取公开源码并固定提交;Linux 与 BusyBox 已随仓库提供,无需另外下载或重复应用补丁。
- 在“构建系统”选择架构和构建目录,生成内核、静态用户态、模块及 initramfs;保留最终 .config 与工具链信息。
- 在“运行与验证”执行对应 QEMU 验证。x86_64 的 verify_system.sh 包含客体自检;ARM64/RISC-V64 还应执行 verify_guest_*,不能只看启动脚本的 PASSED。
- 进入交互 shell,检查 /sys/kernel/realtime、模块和 SDK 测试,再按实际需求开发应用。CSV fixture 路径与真实设备路径分别验证,不互相替代。
JOBS=$(nproc) ./scripts/build_system.sh
QEMU_TIMEOUT=180 ./scripts/verify_system.shx86_64 默认交付 .build/images/xtos-bzImage、.build/images/xtos-rootfs.cpio.gz 和 .build/images/kernel.config。
验证日志是 .build/system-qemu.log。
内核镜像、根文件系统和日志各有不同用途:存在镜像只证明构建产物存在,不证明启动或测试已通过。
目标架构
| 目标 | 构建与客体验证 | 虚拟平台 |
|---|---|---|
| x86_64 | build_system.sh → verify_system.sh;run_system.sh 进入交互模式。 | qemu-system-x86_64,pc,ttyS0;默认 512 MiB、2 个 vCPU。 |
| ARM64 / AArch64 | build_system_arm64.sh → verify_system_arm64.sh → verify_guest_arm64.sh。 | qemu-system-aarch64,virt,cortex-a57,ttyAMA0。 |
| RISC-V 64 | build_system_riscv64.sh → verify_system_riscv64.sh → verify_guest_riscv64.sh;需要 OpenSBI。 | qemu-system-riscv64,virt,rv64,ttyS0。 |
公开项目验证这三个 QEMU 客体。ARM64 和 RISC-V64 的 rootfs 与 x86_64 不完全相同。
交叉脚本把 SDK 测试安装到 /bin,并使用 BusyBox init。x86_64 使用完整工具集和 /usr/bin/xtos-selftest。x86_64 的 CSV 和基准自检不自动覆盖其他架构。
验证范围
QEMU 验证检查内核启动、PREEMPT_RT 运行标志、三个 BCI 模块加载和 SDK 测试。
模块加载只证明模块能装入该内核。它不证明真实 OpenBCI 设备被枚举、串口链路正确或样本进入算法。真实硬件、硬件时延、抖动和 OpenBCI bring-up 不在已验证范围内。
真实设备工作的验收应另外记录板卡型号、固件、连接与设备树、包格式、采样单位、时钟来源、丢包与溢出、负载及端到端测量方法。模型准确率、反馈安全性和医疗用途需要各自的应用验证,不能从 Linux 实时配置或 guest PASS 标记推出。
源码
本文以 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 为基线。仓库内可核对 README.md、VERSION、scripts/build_system.sh、scripts/build_system_arm64.sh、scripts/build_system_riscv64.sh、scripts/verify_system.sh、system/rootfs/usr/bin/xtos-selftest、system/rootfs/xtos-guest-check。源码树及系统组成页面继续解释这些文件的职责。
调度与采样边界分别依据 kernel/linux/kernel/sched/xtos_sched.c、sdk/libxtos-rt/src/rt.c、kernel/linux/drivers/xtos/bci/devices/openbci_cyton.c 与 sdk/libxtos-bci/src/session.c。
用户态 SDK、工具、示例和系统文件采用 Apache-2.0;内核、PREEMPT_RT 集成补丁和 BusyBox 采用 GPL-2.0。SDK 通过 ioctl/syscall UAPI 与 GPL-2.0 内核通信,不与内核源码链接。