目录

文档 / 概念 / 架构

架构

QingOS 分成哪几层,每层管什么,层和层之间怎么通信。

分层

层 是什么
脸 人看到、听到的地方:屏、语音、灯环、局域网控制台
app wasm 模块,在运行时里隔离着跑
运行时 qing 这个程序:大脑、守门人、存储、模型服务、控制台
底座 qinit、网络 qnet、音频进程、状态盘、升级
内核 Linux 主线,从 allnoconfig 起配,只编要用的驱动
硬件 SoC 跑上面全部;MCU 管灯、键、传感器

内核

我们不写内核,但自己配内核。只开三样东西要用的选项:驱动、进程隔离、快启动。没有模块,没有图形栈。QEMU 用的 x86_64 内核是 3.2 MB。

底座

底座全是我们自己的 Rust:

运行时

部分 管什么
大脑 组提示,调模型,把模型要的动作交给守门人
守门人 调用能力的唯一入口。查授权,该问就问,执行,写日志
存储 一个 SQLite 文件:授权、记忆、设置
模型服务 按角色选模型,限预算,请求出门前替掉私事
控制台 局域网里的 HTTP 服务。手机打开它做设置、看日志

部分之间只用总线上的事件通信。

三条规则

  1. 大脑只能通过守门人做事。大脑不直接碰网络、文件、硬件。
  2. 守门人不调模型。模型挂了,守门人照常工作。
  3. 操作系统这一层不知道 agent 存在。音频进程不知道录音给谁。

人和 agent 都调 app

人通过脸和按键调 app。agent 通过守门人调 app。app 自己联网、推卡,不经过 agent。

agent 只在一种情况出现:人说了一句话,要决定调哪个 app 的哪个能力。