公告

FujoOS公布日延期,以仓库发布为准

首页 FOC 内核线

机器怎么跑,由内核决定;凭什么这么说,也由内核兜住。

FOC 是 FujoOS 的内核线。它一面管最底下那些不能出错的事——内存、调度、中断、驱动、系统调用;另一面让上面每一层的说法都能落回一份可引用的字节。这一页讲它管什么、不管什么,以及哪些还没做。

内核不等于整个系统。 —— 设备驱动、文件系统、网络栈都不在 Ring 0,它们跑在用户态服务里。这样做的好处很直白:它们崩了可以重启,内核崩了不行。
内核也不等于 AI。 —— 模型跑在机器外面。内核给它的是三样东西:一条通道、一本账、一道闸门。
5 层:应用 / 能力 / 服务 / 驱动 / 地基
3 套 ABI 共用同一个系统调用门
78/79 全量回归:0 失败、1 例已知竞态(已归因)
156.3 波 镜像预算余量折算出的可写波数

内核管什么

内核不是一份功能清单。它管的是几件不能出错、也不能绕过的事:谁能用 CPU、谁占哪块内存、谁可以发系统调用、出了错留给谁看。其余的功能都长在这几件事上面。

管的事 怎么管
机器怎么起来 可从三种方式引导——GRUB multiboot、直接把镜像交给虚拟机、或从一张可引导 ISO。起来之后自己认出显示、键鼠、磁盘、网卡。
内存与处理器 4 KiB 页配 2 MiB 大页;抢占式多任务,每个进程有自己的地址空间。一个程序越界,被终止的是它自己,不是整台机器。
系统调用门 三套 ABI 共用同一个内核服务面,只在编号上做映射:Linux 程序直接调、不需要翻译;Windows 与 macOS 各经自己的一层薄垫片。
存储 内核只管块设备怎么读写,文件语义整个交给用户态的文件服务。自己的文件系统能在真实 SATA 盘上落盘、重启后读回。
出错之后 可能失败的路径必须留痕,且痕迹写在可以带外读出的地方——机器死了,账还在。这条纪律是整个项目判据的地基。
在系统里编译 系统自带一套小工具链——汇编器、链接器、一个 C 子集编译器。它编译并运行过自己的 hello 克隆,不用离开这台机器。
一件被刻意排除在外的事: 内核里没有推理。模型跑在宿主机上,内核只负责把它的建议送进来、把结果记下来、把不该做的挡回去。所以「内核里的 AI」这句话,准确说法是「内核为 AI 开了一道受管制的门」。

分层:Ring 0 只留两件事

越靠近硬件的代码越难改、越难重启。所以这套系统把「与硬件无关」的部分尽量往上推:驱动、文件系统、网络栈全在用户态。内核那一层只留下 CPU 调度与空间管理。

Ring 3 · 用户态 应用层 shell · 会话 · 安装器 · 更新 · 打包 能力层 能力 · 上下文 · 进程间通信 · 契约 服务层 文件系统 · 网络 · 装载器 · 日志 驱动层 ATA · AHCI · virtio · PS/2 · PCI · ACPI · 音频 Ring 0 · 内核 地基 内存 · 调度 · 中断 · 全局描述符表 · 多核 · 定时器 · 地址布局
越往上越容易换,越往下越不能错 驱动是唯一允许直接碰硬件端口的一层
为什么把驱动挪出去 —— 驱动是系统里最容易出错、也最爱改的一层。放进内核意味着一次写错就带走整台机器;放进用户态,它崩溃可以被重启,还可以单独升级。
硬件的门只开一处 —— 直接读写端口的指令只允许出现在驱动层。别处想碰硬件,必须经过它。规则靠评审和门禁一起守,不靠自觉。

验证读数:每个数字对着一份字节

这些读数不是对着一句「当前版本」说的,是对着一份可以被人取到、也可以被人复跑的字节快照说的。写下来是为了让复核的人拿着同一个东西重跑一遍,而不是听一句「测过了」。

读数
并行开发门禁 tools/parallel_gate.py VERDICT: OK (8/8)
全量回归(79 例) 78 PASS · 0 FAIL · 1 FLAKY
镜像预算余量(镜像末 0x2A6950) 562,864 B ⇒ T = 156.3 波
池账本 Σ(r+h) = 80,312 B,B = 102,400 B slack 22,088 B ⇒ T = 308.3 波
全新克隆可构建(从 index 抽树冷编) 0 error(预算断言 6/6)

「T」是把当前余量除以每波的平均增长算出来的——它回答的是「照这个速度还能写多少波」,不是一个性能指标。完整口径写在 路线图 里。

已知边界(诚实记)

  • 真机只覆盖一部分 —— 磁盘持久化与 ISO 引导链已经在真机上跑通;视频输出与 USB 驱动还没有。
  • 回归里有一例不稳定 —— 它是已知的「连续两个用例抢同一个串口」竞态,重跑即过,归因是环境噪声而不是内核回归。但它是 79 例里唯一不是全绿的一格,所以写在这里。
  • 余量的算法有两种读法 —— 历史序列混了内存池迁移前后的两种布局;按同一种布局算,每波增长约 1,148 B,对应约 490 波。两种读法都远高于 50 波的门槛,不影响任何结论。
口径检查: 这一层有了一个可引用的快照,不等于内核已经发布。它是给复核者用的参照物,不是一次对外发布——发布与外部审计仍未达。

从哪儿接着看

内核这一层是地基。上面还站着另外两条线:一条是安全体系,讲 AI 的动作怎么被管住;一条是语言线,讲写系统用的那门语言。三条线在同一个项目里,各自说清自己做到哪儿。