桜 Sakura Project 桜 · X86_64
Sakura Project · 桜

一个从零写起的
x86_64 操作系统

Sakura Project 是一个个人自研项目。从 MBR 引导扇区开始,到桌面合成器, 中间的引导、内核、文件系统、网络栈、窗口管理都是自己写的。 目前没有 GPU 驱动,网络栈也只覆盖最小可用范围。

0内核代码行数
(.c / .h / .asm)
0内核单元断言
(p3 门禁)
0设计规格文档
(含 12 条架构决策)
0Linux 代码行数
▶
启动到桌面 从断电到第一帧桌面渲染

What is Sakura Project

它是什么

通常写操作系统会从 Linux 的内核分支出来,或者把大量现成代码搬进来。 Sakura Project 走的是另一条路——从 512 字节的 MBR 引导扇区开始, 自己写内存管理、进程调度、文件系统和网络栈,直到桌面画出来。 它不是一个能替代日常使用环境的系统,但整个过程中每个部分都能在源码里逐行读。


Capabilities

写了哪些部分

◈

内核核心

位图内存分配器、四级页表、内核堆、调度器和系统调用接口。

⬡

文件系统

内存文件系统 CanFS 负责运行时命名空间,FatFs 负责 FAT16/FAT32 块设备卷,两者经 VFS 统一命名空间。

⇄

网络栈

最小可用的 IPv4 / TCP / UDP,支持 DHCP 获取地址和 NTP 对时。

▤

桌面渲染

纯软件三层合成器,能画窗口、渐变和模糊面板,不依赖 GPU 驱动。

⏻

双引导

同一份内核通过 BIOS 或 UEFI 两条链加载。UEFI 链已完成加载与跳转;受限于 stage2 读盘方式,光盘引导需走 UEFI。

⌘

用户态

最小 libc、shell 和包管理器,应用以 ELF 载入 ring3 运行。


How to use

一条清晰的使用路径

01

下载或构建

下载预编译磁盘镜像,或从源码本地构建。

02

启动

写进 U 盘实体启动,或在 QEMU 里直接跑。

03

体验桌面

等待引导完成,窗口管理器和通知中心会自动出现。

04

阅读源码

每个子系统的源码结构在文档页有说明。


Get started

想试试看?

下载页提供最新镜像和启动指引,文档页有完整的构建说明。

前往下载 阅读文档