83 lines
1.9 KiB
Markdown
83 lines
1.9 KiB
Markdown
# Tianole
|
|
|
|
Tianole 是一个面向 `UEFI x86_64` 机器的自制操作系统项目。
|
|
|
|
当前目标不是一次性做“大而全”的系统,而是按 Linux 风格的分层思路,逐步把启动链、内核基础设施、用户态和文件系统建立起来,最终能在真机上安全启动,并逐步具备运行本地 `git` 的能力。
|
|
|
|
## 当前状态
|
|
|
|
- 已跑通 `QEMU + OVMF` 下的最小 `UEFI` 启动链
|
|
- 已拆分为 `bootloader + kernel`
|
|
- `bootloader` 已能加载独立 `kernel.elf`
|
|
- `kernel_main()` 已能实际执行
|
|
|
|
## 当前目录
|
|
|
|
```text
|
|
tianole/
|
|
AGENTS.md
|
|
Makefile
|
|
arch/
|
|
docs/
|
|
include/
|
|
kernel/
|
|
mm/
|
|
scripts/
|
|
```
|
|
|
|
当前还没有直接复制 Linux 的完整目录树,但已经开始按接近 Linux 的方式分层:
|
|
|
|
- `arch/`:架构相关代码
|
|
- `kernel/`:通用内核主体逐步放这里
|
|
- `mm/`:架构无关内存管理
|
|
- `include/tianole/`:项目自有共享接口
|
|
- `docs/`:正式设计和路线图
|
|
|
|
## 开发顺序
|
|
|
|
当前建议的实现顺序是:
|
|
|
|
1. 启动链
|
|
2. 早期调试输出
|
|
3. 内存与异常基础
|
|
4. 执行流与调度
|
|
5. 用户态入口
|
|
6. 文件系统与存储
|
|
7. shell / 工具
|
|
8. 面向 `git` 的补齐
|
|
9. 真机落地
|
|
|
|
更细的阶段说明见:
|
|
|
|
- [docs/roadmap.md](//wsl.localhost/Ubuntu/home/indole/tianole/docs/roadmap.md)
|
|
|
|
## 构建与运行
|
|
|
|
在 WSL2 / Ubuntu 中:
|
|
|
|
```bash
|
|
make
|
|
make run
|
|
```
|
|
|
|
无界面调试:
|
|
|
|
```bash
|
|
make run-headless
|
|
cat build/debug.log
|
|
```
|
|
|
|
本地完整检查:
|
|
|
|
```bash
|
|
scripts/check.sh
|
|
```
|
|
|
|
GitHub Actions 会在 push 和 pull request 时运行同一个检查入口。具体检查拆在 `scripts/checks/`,共享函数放在 `scripts/lib/`。
|
|
|
|
## 文档
|
|
|
|
- 路线图:[docs/roadmap.md](//wsl.localhost/Ubuntu/home/indole/tianole/docs/roadmap.md)
|
|
- 本机环境与真机启动约束:[docs/host-machine.md](//wsl.localhost/Ubuntu/home/indole/tianole/docs/host-machine.md)
|
|
- agent 入口:[AGENTS.md](//wsl.localhost/Ubuntu/home/indole/tianole/AGENTS.md)
|