Veda 发布智能体原生操作系统,用 Rust 从零实现并开源
Veda: The First Agentic Hobby Operating System
Veda 发布一个智能体原生操作系统,把 AI 智能体做成开机即启动的系统服务,而非后加的助手,全部代码用 Rust 从零编写并已在 GitHub 开源。应用通过 agentapp 协议声明带类型参数和风险等级的动作与结构化状态,智能体调用与键鼠走同一套代码,内置应用合计提供 70 多个动作;动作分为常规、敏感、破坏性三级,敏感与破坏性动作需用户在桌面外壳确认后才执行。
Veda:智能体原生操作系统
Veda 是一个内置 AI 智能体的操作系统——不是添加到桌面上的助手,而是系统的一部分,每个应用程序都必须与之协同工作。你可以像和房间里的人说话一样与它交谈——“嘿 Veda,把我的壁纸换成沙丘”——它就会通过与你键盘和鼠标相同的操作,在任何应用程序中完成工作,并且在执行任何难以撤销的操作之前都会先征求你的同意。
一切都用 Rust 从零编写,并位于这个仓库中:UEFI 引导加载程序、基于能力的微内核、驱动程序、系统服务、窗口系统、工具包和应用程序。少数成熟的 crate 提供了 TCP/IP 引擎、TLS 和加密功能(smoltcp、rustls、RustCrypto)。Veda 可在 x86-64 PC、QEMU 和 VirtualBox 上运行。
为什么是智能体原生
操作系统的设计初衷是供人在键盘前使用。后来添加的助手通常必须读取屏幕、模拟点击,或者将就使用少数提供 API 的应用程序,而系统对其行为没有发言权。Veda 扭转了这一局面:智能体是系统的一等用户,而系统的构建方式使其工作可靠、可见且安全。
- 智能体是系统的一部分。它是一个系统服务,在启动时启动,如果失败则重新启动,在任务栏上以一个小圆环的形式存在,在你召唤它之前一直休眠——你可以叫它的名字、点击圆环或按 Super+Space 来唤醒它。
- 每个应用程序都原生地与它对话。智能体支持是应用程序平台的一部分:应用程序描述其操作,带有类型化参数和风险级别,将其显示的内容报告为结构化状态,并通过与键盘和鼠标相同的代码执行操作——因此窗口显示的结果与你亲自操作时完全一样。无需屏幕抓取,无需模拟点击。内置应用程序总共提供了 70 多个操作,从在文档中书写到开始一场比赛。
- 系统让智能体服从你的同意。每个操作都是常规、敏感或破坏性的。常规操作直接执行;其他操作则等待你的确认。强制执行这一点的是智能体服务,而不是语言模型:调用会被挂起,直到你做出回应,只有桌面外壳才能回应(系统通过
init附加到其连接上的身份来识别每个程序),智能体在文档或应用程序中读到的任何内容都不能批准任何操作。 - 它基于真实上下文工作。每次对话都从智能体提供帮助所需的信息开始:时间、屏幕上的窗口、每个应用程序的操作、你告诉过它的关于你自己的信息,以及你上次对话是如何结束的。在工作过程中,它会读取应用程序的状态,因此它基于真实存在的内容采取行动。
- 你的记忆始终属于你。它会记住你明确告诉它的内容——你的名字、你生活中的人、你喜欢的方式——而绝不是它自己的猜测。这些记忆保存在你的计算机上,设置会显示全部内容,也可以忘记其中任何部分。
- 语音优先。对话实时进行:打断智能体,它就会停下来倾听。音频系统为此而构建——回声消除和回声门,使智能体永远不会听到自己的声音,并且在它与你交谈时其他声音会被调低。当它休眠时,计算机上的语音检测器会监听语音,因此没有人说话时不会有任何数据离开计算机。
- 智能是一个设置项。 语音识别、语言模型和声音都来自 Deepgram 的 Voice Agent 平台,音频已选择退出 Deepgram 的模型改进;模型、声音甚至智能体的名称都在“设置”中选择。
智能体如何工作
┌───────────────────────────────────────────────────────────────────────┐
│ You: voice, keyboard, mouse │
├───────────────────────────────────┬───────────────────────────────────┤
│ Agent service │ Desktop shell │
│ conversation (Deepgram Voice │ the ring and the agent's window │
│ Agent) · name listener · memory │ consent requests · notifications │
│ worker: functions and consent │ │
├───────────────────────────────────┴───────────────────────────────────┤
│ Applications: actions · state · invoke (the agentapp protocol) │
├───────────────────────────────────────────────────────────────────────┤
│ Services: windows · files · audio · network · Wi-Fi · launcher │
├───────────────────────────────────────────────────────────────────────┤
│ vkernel: capabilities · IPC · isolation · scheduling │
└───────────────────────────────────────────────────────────────────────┘
- 聆听。 休眠时,智能体在电脑上运行语音检测器。当有人说话时,语音会发送到一个知道智能体名称的识别器;一句呼唤它的话(“嘿 Veda,……”、“……,Veda?”)会唤醒它,而带着名称说出的内容就是它听到的第一件事。
- 对话。 唤醒会开启一个 Deepgram Voice Agent 会话,其中包含智能体的指令、上述上下文及其功能。Deepgram 负责轮流对话、语言模型和声音;Veda 的音频服务双向传输声音。
- 行动。 模型调用智能体自身的功能——窗口、文件、音量、Wi-Fi、壁纸、通知、计时器和提醒、记忆、系统及其运行中的程序——并且通过
use_app和read_app,调用每个应用程序的操作和状态。智能体服务运行每次调用并以结构化结果作答。 - 同意。 需要你许可的调用会被暂缓,并显示在智能体窗口中(窗口关闭时则作为通知显示),准确说明将发生什么以及对什么发生。允许它,它就会运行;拒绝它,或让它过期,它就不会运行。敏感操作可以永久允许;破坏性操作每次都会询问。
该智能体完整描述了其设计:协议、语音管线、同意、记忆以及智能体如何被测试。
操作系统
- 微内核。
vkernel只负责隔离、调度、内存和 IPC:带权限的能力句柄、传递句柄的通道、VMO、事件、futex、中断对象。支持 x2APIC 的 SMP、无滴答定时器和 XSAVE。驱动程序、文件系统、窗口系统和智能体都是用户空间进程,由init监管:如果窗口系统崩溃,它会被重启,桌面会自行恢复。 - 桌面。 一个启动序列,无缝延续启动画面(圆环周围呼吸的光、名称和标语升起、启动音效),并在桌面就绪后将其融入桌面;一个合成窗口管理器,具有服务端装饰、阴影、动画、窗口吸附和带实时缩略图的 Alt+Tab 切换器,在配备 Intel 显卡的 PC 上使用 OpenGL ES 在 GPU 上合成,每一帧都在垂直消隐期整体翻转,在其他设备上则在处理器上合成;一个带有壁纸、桌面图标、任务栏、可搜索开始菜单、日历和通知的 shell;
vui工具包(控件、菜单、对话框、矢量图标、使用 Inter 和 JetBrains Mono 字体的抗锯齿文本),其应用程序与智能体兼容。 - 网络和 Wi-Fi。 一个用户空间网络服务(IPv4 和 IPv6、DHCP、DNS、路由、TCP、UDP、ICMP)和一个 Wi-Fi 服务,可扫描、加入 WPA2、WPA3 和开放网络并支持管理帧保护,记住网络、自动重连和漫游。驱动程序只负责移动帧。应用程序,包括智能体,从
vtls获得 TLS 1.3 和 1.2(HTTPS、安全 WebSockets),证书对照 Mozilla 根证书进行检查。在 QEMU 下,模拟的 Wi-Fi 环境提供桥接到互联网的接入点。参见 网络。 - 音频。 一个混音音频服务,具备回声消除采集和闪避功能,既为音乐也为智能体的对话而构建。
- 存储。 virtio-blk 和 AHCI (SATA) 驱动以及一个文件系统服务,将主目录保存在自己的磁盘上,并具有崩溃安全的快照,因此你的文件在重启后依然存在。智能体的内存和密钥位于只有智能体才能打开的私有目录中。
- 应用程序。 文本编辑器、照片、音乐、文件、终端、任务管理器、设置和关于,以及两个 3D 游戏,Velocity(赛车)和 Starfall(太空射击游戏),由
v3d软件 3D 引擎渲染。 - 3D 图形。 OpenGL ES 3.0 支持 GLSL ES 1.00 和 3.00(
vgl,vglsl),每个调用都按照规范要求进行检查。它通过 QEMU 的 3D virtio-gpu 在宿主机的 GPU 上渲染,通过 Mesa 的 iris 驱动在 Intel 的 Iris Xe 上渲染(Tiger Lake 到 Raptor Lake),或者在没有这些的情况下使用多线程软件渲染器。Prism 展示了这一点:一个反射结、使用实例化绘制的阴影映射水晶,以及使用变换反馈模拟的火花喷泉,在 QEMU 下达到每秒 55 帧。 - C,以及 Veda 内的 GCC。 在终端或文本编辑器中编写 C 程序,使用 GCC 16 编译并运行,无论是在模拟器还是在 PC 上。C 程序是 musl C 库上的静态 ELF 可执行文件,其系统调用转到
vposix,一个用 Rust 编写的 POSIX 层:文件、目录、管道、带有行编辑和termios的终端、线程、mmap、posix_spawn、时钟和它们自己引发的信号。工具链由上游版本构建,带有小补丁(ports/),并且交叉编译器在开发机上为 Veda 构建 C 和 C++ 程序。参见 C on Veda。 - 工具。 一个命令即可构建可启动磁盘映像并在 QEMU 或 VirtualBox 中运行它;脚本化的无头运行驱动 GUI 和智能体,并检查屏幕截图和日志。
屏幕截图
![]() |
![]() |
|---|---|
| 文本编辑器 | 照片 |
![]() |
![]() |
| 音乐 | 文件 |
![]() |
![]() |
| Velocity | Starfall |
![]() |
![]() |
| 终端中的 GCC | Prism(OpenGL ES 3.0) |
所有屏幕截图都是在 QEMU 中由 cargo xtask script docs/screenshots.vts 拍摄的(智能体与 Deepgram 的替身对话)。Veda 也可以在 VirtualBox 中运行(见下文)。
快速开始
要求
- Windows 10 或 11,x64。(用户空间程序是由 Microsoft 链接器链接的 PE 可执行文件。)
- Rust(稳定版)。
rust-toolchain.toml使 rustup 在首次使用时安装额外的x86_64-unknown-uefi目标。 - Rust 在 Windows 上使用的 Microsoft 链接器:Visual Studio 2022 或带有 MSVC 构建工具的 Visual Studio Build Tools(
link.exe)。Rust 安装程序会提供设置这些的选项。 - 适用于 Windows 的 QEMU,其中包括 OVMF UEFI 固件,和/或 VirtualBox 7.1 或更高版本(不需要扩展包)。
- 对于智能体:在 Veda 的设置中输入 Deepgram API 密钥。
- 对于映像中的 C 和 GCC(可选):MSYS2 以及几个包,使用
cargo xtask toolchain一次性构建工具链(参见 C on Veda)。
检查环境:
cargo xtask doctor
构建并运行
cargo xtask run
这会构建每个组件,写入磁盘映像 target/veda/veda.img 并在 QEMU 窗口中启动它。在最近的 PC 上,首次构建需要一到两分钟(它还会渲染示例图片和音乐);后续构建是增量的。有用的选项:
cargo xtask run --resolution 1920x1080 --smp 4 --memory 2048
cargo xtask run --cmdline "run=editor"--cmdline "run=NAME" 在启动后启动 /system/bin/NAME.exe。默认情况下,机器通过有线网卡连接到 QEMU 的 NAT;对于 Wi-Fi:
cargo xtask run --net wifi
这也会启动 airsim,一个模拟的 Wi-Fi 环境,其网络("Veda Home"、"Veda WPA3"……;密码 veda-wifi)可通往互联网。--net both 添加有线网卡。所有命令和选项见 cargo xtask help。
VirtualBox
每条命令都接受 --vm virtualbox 来使用 VirtualBox 而非 QEMU,选项相同:
cargo xtask run --vm virtualbox
xtask 创建(并在每次运行时更新)一个名为 "Veda" 的 VirtualBox 虚拟机,其磁盘与 QEMU 使用的镜像相同,因此构建无需转换,且主目录在两者之间共享。VirtualBox 使用 CPU 的硬件虚拟化(Windows 上的 QEMU 以软件模拟 CPU)。该虚拟机更接近真实 PC:SATA 磁盘、Intel PRO/1000 网卡、PS/2 键盘和鼠标、AC'97 声音,使用主机的扬声器和麦克风(Windows 必须允许 VirtualBox 使用麦克风,在设置 → 隐私中)。点击窗口内以使用鼠标;右 Ctrl 键可释放它。
在高 DPI 显示器上,窗口会像 QEMU 那样按显示缩放比例的整数部分放大屏幕(250% 时为 2 倍),若窗口放不下则更小。--scale 设置倍数(--scale 2.5 在 250% 时与其他程序匹配;整数看起来最清晰),--resolution 给 Veda 一个更大的桌面:
cargo xtask run --vm virtualbox --resolution 1600x1000 --scale 2
要通过主机的网络适配器(包括 Wi-Fi)将 Veda 接入你的真实网络(路由器的 DHCP 和 DNS、真实互联网):
cargo xtask run --vm virtualbox --net bridged
shot、script 和 test 也适用于 --vm virtualbox;需要 QEMU(模拟 Wi-Fi)的脚本会被跳过。
真实 PC,从 USB 盘启动
cargo xtask iso
写入 target/veda/veda.iso,一个 live 系统。用 Rufus 将其写入 USB 盘(分区方案 GPT,目标系统 UEFI,ISO 模式),或按原样用任何镜像写入工具写入,然后以 UEFI 模式、关闭 Secure Boot 从该盘启动 PC(通常在固件的启动菜单中:开机时按 F12、F11 或 Esc),因为 Veda 的加载器未签名。Veda 从内存运行,不碰 PC:不启动磁盘驱动,因此它从不读写 PC 的磁盘或其上安装的系统,其主目录持续到 PC 关机。要先在 QEMU 中试用该盘:
cargo xtask run --live
在真实硬件上,桌面以固件提供的屏幕模式出现(1920x1080,或低于它的最大分辨率)。在最近几代 Intel 集成显卡上(Tiger Lake 到 Raptor Lake:Iris Xe 和 UHD Graphics),显示驱动在屏幕垂直消隐时整帧翻转显示每一帧,因此动画运行如虚拟机中一样流畅;在其他地方,窗口系统绘制到固件的帧缓冲中。USB 键盘、鼠标和集线器可在约 2012 年以来 PC 配备的 USB 3(xHCI)控制器上工作,PS/2 键盘和鼠标也一样;其他 USB 设备,包括该盘,则不被触碰。声音通过 HD Audio 播放,这是自 2005 年以来几乎所有 PC 的声音硬件:通过扬声器,或插入耳机时通过耳机,以及线路输出,麦克风(内置的,或插入插孔时在插孔上的)供代理使用。连接到音频 DSP 而非编解码器的内置麦克风,如许多近期笔记本电脑中的那样,保持静音;HDMI 和 DisplayPort 音频需要比 Veda 目前拥有的更多的图形驱动(它保持固件的屏幕模式);且很少有 PC 拥有 Veda 支持的网络硬件。要在 QEMU 中试用 USB 输入或 HD Audio:
cargo xtask run --input usb cargo xtask run --sound hda
与 Veda 对话
- 打开 设置 → 代理 并添加你的 Deepgram API 密钥。代理的名称、声音、语言模型、聆听和记忆在同一页面上。
- 说 "Hey Veda",点击任务栏右侧的小圆环,或按 Super+Space。
- 自然地说话,随时追问,随时打断,说完再见。它会重新进入休眠,等待听到自己的名字。
Veda 通过你 PC 的麦克风听到你,并通过扬声器回答你,在 QEMU 和 VirtualBox 下都一样。
可以问的事情:
- “把我的壁纸换成沙丘。”
- “播放 Neon Horizon。”
- “写一份购物清单,包含鸡蛋、牛奶和咖啡。”
- “给我看那张灯塔照片,全屏。”
- “提醒我二十分钟后去伸展一下。”
- “什么占用的内存最多?”
- “在 Velocity 里开始一场比赛。”
- “删除 City Lights 照片”——然后看它先征求你的同意。
- “你对我了解多少?”
使用桌面
- 点击徽标(任务栏中间的圆环)或按 Super 键打开开始菜单;输入以搜索应用程序。
- 点击任务栏按钮可打开、聚焦或最小化应用程序;中键点击会打开另一个窗口。点击时钟查看日历。
- 双击桌面图标。右键点击桌面可更改壁纸。
- 将窗口拖到屏幕顶部可最大化,或拖到一侧以填满那一半(或使用 Super+Left/Right/Up/Down)。Super+D 显示桌面,Alt+Tab 切换窗口,Alt+F4 关闭当前活动窗口。
- 任务栏上的扬声器图标可打开音量控制(在其上滚动可更改音量)。旁边的网络图标显示 Wi-Fi 信号,并打开可加入的网络列表。
你的文件位于 /home/user,保存在 target/veda/home.img 中,重启和重建后依然存在(--fresh-home 会重新开始)。
应用程序
每个应用程序都兼容智能体:你能用鼠标和键盘做的事情,智能体也能通过应用程序自身的操作完成。
| 应用程序 | 功能 | 智能体能做什么 |
|---|---|---|
| 文本编辑器 | 标签页、语法高亮(Rust、C、TOML、Markdown)、查找和替换、自动换行、行号、缩放、无限撤销、打开/保存对话框。 | 创建、打开、读取和写入文档;查找和替换、选择、撤销、保存;另存为或放弃更改(需你同意)。 |
| 照片 | ~/Pictures 的缩略图库,以及一个查看器,支持缩放、平移、旋转、全屏、幻灯片、详细信息和“设为壁纸”;支持 PNG、JPEG(包括渐进式)、BMP 和 QOI。 |
显示任意图片、缩放、旋转、全屏、运行幻灯片、显示详细信息、将图片设为壁纸。 |
| 音乐 | ~/Music 的曲库,正在播放时显示封面艺术和实时频谱可视化、跳转、随机播放和重复;通过音频服务播放 QOA 和 WAV。 |
按名称播放歌曲、暂停、停止、跳过、跳转、随机播放、重复、设置音量。 |
| 文件 | 位置侧边栏、面包屑导航、带缩略图的列表和图标视图、搜索、复制/剪切/粘贴、重命名、删除、新建文件夹和文档、属性、可用空间。 | 打开文件夹和文件、搜索、显示属性、创建文件夹;复制、移动和重命名(需你同意);删除(每次都会询问)。 |
| 终端 | 一个命令 shell,内置约五十条命令,用于文件、进程、网络(wifi、ifconfig、ping、nslookup、curl……)和系统,支持历史记录和 Tab 补全。像 Unix 终端一样运行程序、C 程序和包含的 GCC:行编辑、termios、Ctrl+C、管道和重定向。 |
运行命令(需你同意)、读取其输出、中断它。 |
| 任务管理器 | 显示进程及其 CPU 和内存使用情况、“结束任务”以及实时性能图表。 | 列出进程、显示和读取性能图表、结束程序(每次都会询问)。 |
| 设置 | 壁纸库、代理(Deepgram 密钥、名称、语音、语言和语音模型、监听、记忆、权限)、网络和 Wi-Fi(连接、范围内的网络、已保存的网络、接口、诊断)、显示信息和系统详情。 | 打开页面、更改代理的语音和语速;重命名代理或更改其语言模型(需经你同意)。绝不更改密钥。 |
| Velocity | 一款在程序生成的赛道上与电脑对手对战的街机风格 3D 赛车游戏。 | 开始、暂停、继续或重新开始比赛;更改赛道、圈数或对手。 |
| Starfall | 一款穿越小行星带和敌人波次的 3D 太空射击游戏。 | 开始、暂停、继续或重新开始游戏。 |
这些游戏由 v3d(一个多线程定点软件 3D 渲染器)和基于 OpenGL ES 的 Prism 绘制。除应用程序外,代理自身的功能还涵盖窗口、文件、声音、Wi-Fi、壁纸、通知、计时器和提醒、其记忆以及系统。
构建代理兼容的应用程序
代理支持是 vui 应用程序平台的一部分。应用程序描述它能做什么、报告它显示什么并执行操作;vui::run 将其注册到代理服务,并在帧之间应答代理:
use vui::agent::{self, Action, AppAgentInfo, Risk, Value, arg_path, arg_str, object, show_path}; impl vui::App for Notes { fn update(&mut self, ui: &mut vui::Ui) { /* ... */ } fn agent_info(&self) -> Option<AppAgentInfo> { Some(agent::info( "A notes app: one note per file in ~/Notes.", vec![ Action::new("add_line", "Adds a line at the end of the note shown") .param("text", "string", "The line", true) .build(), Action::new("delete_note", "Deletes a note for good") .param("path", "string", "The note's file, such as ~/Notes/Ideas.txt", true) .risk(Risk::Destructive) .build(), ], )) } fn agent_state(&self) -> Value { object! { "note" => self.title.as_str(), "lines" => self.lines.len() } } fn agent_invoke(&mut self, action: &str, args: &Value) -> Result<Value, String> { match action { "add_line" => { self.append(arg_str(args, "text")?); Ok(object! { "lines" => self.lines.len() }) } "delete_note" => { let path = arg_path(args, "path")?; self.delete(&path).map_err(|e| format!("{} could not be deleted: {e}", show_path(&path)))?; Ok(object! { "deleted" => show_path(&path) }) } other => Err(format!("Notes has no action called {other}")), } } }
操作是为语言模型编写的(简短的命令式描述,明确说明单位和默认值),声明其风险,明确指定其目标,并与键盘和鼠标走相同的代码路径。同意、记忆和对话是系统的职责,而非应用程序的。参见 使应用程序与代理兼容。
测试
cargo xtask test运行各库的主机单元测试(代理的协议、工具、提示、记忆、唤醒词和回声门控,内核 ABI、堆、IPC、服务协议、数学、光栅化器、字体、图像编解码器、2D 图形、文本编辑、路径和文件类型、音频、ELF 加载、POSIX 层、构建工具),然后以 systest 集成测试无头启动 Veda(IPC、套接字、内存、线程、文件系统、启动器、崩溃报告、窗口系统被杀死后的恢复,以及检查 C 库和 POSIX 层的 C 程序),任何 panic 都会导致失败。
代理针对运行在主机上的 Deepgram 替身(tests/agent/)进行端到端测试:对话、函数调用、打断、回声、窗口和通知中的同意、在音乐中按名称唤醒、每个应用程序的操作和重启——确定性、离线且免费。tests/real/agent-*.vts 使用 DEEPGRAM_API_KEY 中的密钥与真实的 Deepgram 通信,并通过虚拟麦克风播放合成语音。
网络有其自己的主机测试(802.11 协议和密码学对照已发布的测试向量、站点对访问点、模拟电缆上的 TCP/IP 栈、Wi-Fi 模拟器、针对 rustls 服务器和真实证书链的 TLS 握手),而 nettest 从 Veda 内部检查 DNS、TCP、HTTP、HTTPS 和 ping。
tests/ui/ 中的 GUI 自动化脚本点击桌面和应用程序,检查日志并保存截图;其中两个在终端中运行 C 程序,并在 Veda 内用 GCC 编译一个(它们需要工具链,没有工具链则跳过)。Wi-Fi 脚本通过桌面加入网络,并以多种方式破坏模拟网络(访问点消失、断开连接、中断、无线电或 Wi-Fi 服务消失),以检查 Veda 能否自行恢复。将所有这些脚本(包括代理的脚本)与单元测试和集成测试一起运行,或一次运行一个:
cargo xtask test --uicargo xtask script tests/agent/wake-name.vts
cargo xtask shot --wait 20
(shot 无头启动并保存 target/veda/screen.png。)
串行控制台(内核日志加上每个程序的输出)保存到
target/veda/serial.log。
仓库布局
| 路径 | 内容 |
|---|---|
services/agent/ |
agent:对话、名称监听器、函数、同意、记忆 |
lib/agent/ |
agent 的逻辑:Deepgram 协议、函数、指令、唤醒词、回声门、记忆、配置 |
boot/ |
vboot,UEFI 引导加载程序 |
kernel/ |
vkernel,微内核 |
lib/ |
共享库:abi(系统调用 ABI)、rt(运行时)、posix(C 库之下的 POSIX 层)、elf(ELF 可执行文件)、ipc(消息编解码器和协议宏)、proto(服务协议,包括 agent 的)、gfx/raster/font/image(2D 图形)、ui(工具包及其 agent 支持)、v3d(3D 引擎)、glsl 和 gl(GLSL ES 编译器和 OpenGL ES 3.0)、net 和 tls(应用程序的网络和 TLS)、web(HTTP 和 WebSocket)、json、audio(混音、回声消除、语音检测、合成)、usb(描述符、HID 报告、xHCI 结构)、hda(HD Audio 编解码器及其路由)、igpu(Intel 的显示引擎)、text、math、... |
services/ |
init(服务注册表、启动器、进程身份)、vfs、devmgr(PCI)、compositor、audio、agent、netd(网络)、wlan(Wi-Fi) |
drivers/ |
ps2、virtio-input、xhci(USB 3 控制器:集线器、键盘、鼠标)、virtio-blk、ahci(SATA)、hda(Intel HD Audio)、virtio-snd、ac97(AC'97 声音)、virtio-net、e1000(Intel PRO/1000)、vwifi(虚拟 Wi-Fi 无线电)、virtio-gpu(在宿主 GPU 上的 3D)、intel-gpu(Intel 的集成显卡:在垂直消隐时翻转帧,以及用于 OpenGL ES 的 GPU 引擎)、flipsim(用于测试的会翻转的显示器)、gemsim(用于测试的不运行任何东西的 Intel GPU) |
apps/ |
桌面 shell(agent 的环、窗口和同意请求)以及应用程序,包括 racer(Velocity)和 starfall |
ports/ |
从源码构建的 C 工具链:GCC、binutils、GMP、MPFR、MPC 和 musl,每个都是上游版本加上 Veda 的补丁 |
tests/ |
agent 的脚本(agent/,以及用于真实服务的 real/)、systest 和 nettest(系统内测试)、C 和 C++ 测试程序(c/)、GUI 自动化脚本 |
tools/ |
在构建时生成壁纸、示例图片和音乐的宿主程序,以及 airsim(模拟的 Wi-Fi 环境) |
third_party/ |
带有 Veda 补丁的 vendored crate(smoltcp) |
xtask/ |
构建系统:交叉编译、磁盘映像、QEMU 和 VirtualBox、自动化、Deepgram 的替身 |
assets/ |
字体、应用程序清单,以及笔记本电脑扬声器放大器的固件 |
docs/ |
文档、README 的截图,以及图标和社交预览(docs/icon/) |
文档
- agent:语音 agent、它的函数、同意和 记忆,以及应用程序如何变得与 agent 兼容。
- 架构:系统如何组合在一起。
- 网络:网络和 Wi-Fi 服务、 模拟的 Wi-Fi 环境、安全和测试。
- Veda 上的 C:编写、编译和运行 C 程序、 POSIX 层,以及工具链是如何构建的。
- 开发:构建命令、系统映像、 编写应用程序、性能说明。
- 编码约定。
许可证
版权所有 © 2026 Vahid Mohammadi。
Veda 是自由软件:你可以根据自由软件基金会发布的 GNU 通用公共许可证第 3 版条款重新分发和/或修改它 (见 LICENSE)。分发它是希望它会有用, 但不提供任何担保;甚至没有 适销性或特定用途适用性的默示担保。
捆绑字体(Inter、Lato、JetBrains Mono)采用 SIL Open Font License 1.1 授权;参见 assets/fonts/。assets/firmware/cirrus/ 中的固件属于 Cirrus Logic,来自 Linux 固件集合:它运行在扬声器放大器自带的 DSP 上,而非 Veda 中,并且依据 Cirrus Logic 的许可证(LICENSE.cirrus 处)以未修改形式再分发,仅限与其设备配合使用。内置的第三方代码保留其自身许可证;参见 third_party/。镜像可能包含的 C 工具链同样保留其自身许可证:GCC 和 binutils 采用 GPL 第 3 版或更高版本(GCC 运行时库附带其运行时库例外条款,因此 GCC 构建的程序保留其自身许可证),GMP、MPFR 和 MPC 采用 LGPL 第 3 版或更高版本,musl 采用 MIT;其源代码为 ports/*/port.toml 所命名的上游发布版本,补丁位于其旁。
来源:Hacker News · github.com








