各子系统说明
按自底向上的顺序逐一介绍。每个部分都标注了当前完成度。
引导
BIOS 引导链
从 512 字节的 MBR 引导扇区开始,经过 stage2 在 32 位保护模式下用 ATA PIO 直接读入内核到 0x100000,然后切换 64 位长模式进入内核入口。
UEFI 引导链
固件加载 BOOTX64.EFI,通过 SimpleFileSystem 读取内核,收集内存图和帧缓冲后跳转。当前完成到加载跳转阶段。
内存与调度
物理内存
位图分配器,1 位对应 1 个 4 KiB 页帧,位图覆盖低 2 GiB;释放带重复释放与页对齐校验。
虚拟内存
四级页表,内核映射用 2 MiB 大页,每进程独立 PML4,支持大页拆分。
调度器
类分层 + 虚拟截止时间调度,前台交互任务不被后台批处理饿死。带宽节流保证抢占类任务不会独占到 100% CPU。
文件系统
内存文件系统
CanFS:运行时命名空间,4 KiB 块 + 链指针,块设备槽承载持久化后端,写入按扇区分批落盘。
块设备卷
FatFs:FAT16/FAT32,支持 /apps 与 /home 挂载。写入在每次 f_write 后立即 f_sync 并刷到 ATA,不依赖关机同步。
权限模型
以 uid 为主体,叠加 KERNEL / USER 两级权限;路径按可写挂载点路由到不同后端。
网络栈
已实现
e1000 网卡驱动、ARP、IPv4、ICMP、UDP、TCP(三次握手与优雅关闭)、DHCP 自动获取地址、NTP 对时。
已知边界
TCP 没有重传定时器、没有拥塞控制、没有乱序重组。定位是「能握手、能收发、能断开」的最小实现,距离生产级还差几块。
桌面
合成器
三层图层合成到帧缓冲,带脏区追踪,没有变化的帧不重复刷新。
渲染管线
纯 CPU 计算:抗锯齿圆角、渐变、高斯模糊面板,不依赖 GPU 驱动。
窗口管理
窗口开关动画、Alt-Tab 切换、多工作区、通知中心。
内置应用
下列应用目前仍以内核态(ring0)运行,尚未迁到 ring3; 文件管理器已先行迁入用户态,作为 ring3 GUI 的参考实现。
基础与表达式运算
语法高亮、文件树、剪贴板
浏览文件系统命名空间(ring3)
BMP 解码与缩放
主题切换与偏好
命令行与包管理命令
用户态
libc 与 shell
最小 libc 提供 malloc、printf 族和系统调用封装。shell 有 34 条内置命令,支持命令历史与行内编辑;暂不支持管道、后台作业与信号。
包管理器
本地 .ospkg 包格式:安装前校验依赖,支持搜索、列表、卸载。