桜 Sakura Project 桜 · X86_64
Subsystems

各子系统说明

按自底向上的顺序逐一介绍。每个部分都标注了当前完成度。

01 / Boot

引导

BIOS 引导链

从 512 字节的 MBR 引导扇区开始,经过 stage2 在 32 位保护模式下用 ATA PIO 直接读入内核到 0x100000,然后切换 64 位长模式进入内核入口。

UEFI 引导链

固件加载 BOOTX64.EFI,通过 SimpleFileSystem 读取内核,收集内存图和帧缓冲后跳转。当前完成到加载跳转阶段。

已知边界 UEFI 链已完成「加载 + 跳转」;RuntimeServices 的保留动作与 ACPI 表的完整消费仍在推进 (ACPI 的 RSDP / SDT / FADP 解析已落地并用于关机、重启与电源状态查询,S3 睡眠尚未打通)。 BIOS 链为当前的默认门禁路径。

02 / Kernel core

内存与调度

物理内存

位图分配器,1 位对应 1 个 4 KiB 页帧,位图覆盖低 2 GiB;释放带重复释放与页对齐校验。

虚拟内存

四级页表,内核映射用 2 MiB 大页,每进程独立 PML4,支持大页拆分。

调度器

类分层 + 虚拟截止时间调度,前台交互任务不被后台批处理饿死。带宽节流保证抢占类任务不会独占到 100% CPU。


03 / Storage

文件系统

内存文件系统

CanFS:运行时命名空间,4 KiB 块 + 链指针,块设备槽承载持久化后端,写入按扇区分批落盘。

块设备卷

FatFs:FAT16/FAT32,支持 /apps 与 /home 挂载。写入在每次 f_write 后立即 f_sync 并刷到 ATA,不依赖关机同步。

权限模型

以 uid 为主体,叠加 KERNEL / USER 两级权限;路径按可写挂载点路由到不同后端。

已知边界 当前没有内容寻址去重,也没有 WAL 崩溃一致性日志;写一致性依赖后端自身的落盘时机。 持久化覆盖面仍在收窄,见文档页。

04 / Network

网络栈

已实现

e1000 网卡驱动、ARP、IPv4、ICMP、UDP、TCP(三次握手与优雅关闭)、DHCP 自动获取地址、NTP 对时。

已知边界

TCP 没有重传定时器、没有拥塞控制、没有乱序重组。定位是「能握手、能收发、能断开」的最小实现,距离生产级还差几块。

说明 系统启动只把网卡拉起,地址由 DHCP 租用,不硬编码 IP。NTP 服务器使用固定 IP,不依赖 DNS。

05 / Desktop

桌面

合成器

三层图层合成到帧缓冲,带脏区追踪,没有变化的帧不重复刷新。

渲染管线

纯 CPU 计算:抗锯齿圆角、渐变、高斯模糊面板,不依赖 GPU 驱动。

窗口管理

窗口开关动画、Alt-Tab 切换、多工作区、通知中心。

内置应用

下列应用目前仍以内核态(ring0)运行,尚未迁到 ring3; 文件管理器已先行迁入用户态,作为 ring3 GUI 的参考实现。

计算器

基础与表达式运算

文本编辑器

语法高亮、文件树、剪贴板

文件管理器

浏览文件系统命名空间(ring3)

图片查看器

BMP 解码与缩放

设置

主题切换与偏好

终端

命令行与包管理命令


06 / Userspace

用户态

libc 与 shell

最小 libc 提供 malloc、printf 族和系统调用封装。shell 有 34 条内置命令,支持命令历史与行内编辑;暂不支持管道、后台作业与信号。

包管理器

本地 .ospkg 包格式:安装前校验依赖,支持搜索、列表、卸载。


感兴趣的话,直接跑起来看

下载系统镜像 构建文档