tianole/docs/roadmap.md

71 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tianole 路线图
这个文件只做路线入口,不承载详细设计。详细任务放在
`docs/agents/tasks/`,避免每次修改都把长期上下文塞进总路线。
## 当前状态
基础已具备:
- 最小 `UEFI -> bootloader -> kernel` 启动链。
- bootloader 与 kernel 拆分。
- 独立 `kernel.elf` 加载。
- 进入 kernel 前调用 `ExitBootServices`
- `memory map` 通过 `boot_info` 传入 kernel。
- kernel 能统计 memory map 描述符数量和 conventional memory 页数。
- early log 基础通用前端、x86 backend、QEMU debug port、COM1 串口。
- panic 基础:最小 `panic()` 已接入 early log 和架构 halt 路径。
- CPU exception 基础x86_64 GDT/TSS/IDT、exception vector 0-31、统一 trap frame。
- trap 验证invalid opcode 已能进入 trap dispatch 并最终进入 panic。
- 物理内存基础:已从 boot memory map 建立最小物理页 allocator。
- 物理页验证:`alloc_page/free_page` selftest 已接入启动检查。
- 页表基础:已切换到内核自有 PML4并提供最小 `map_page/unmap_page/virt_to_phys`
- 页表验证:页表 map/unmap/query selftest 已接入启动检查。
- page fault 基础:已能输出 fault address、错误码、访问类型和权限来源。
- 内核堆基础:已提供 `kmalloc/kfree`,并接入启动 selftest。
- timer 基础:已接入 x86 PIC/PITtimer IRQ 能进入通用 tick 入口。
- kernel thread 基础:已建立线程对象、内核栈和 run queue。
- 调度基础:已建立 x86 上下文切换入口和协作式 round-robin。
- sleep/wait 基础timer tick 能唤醒 sleep 线程wait queue 支持 sleep 和 wake。
- 构建系统已拆成根 Makefile、`arch/x86/Makefile` 和目录 Makefile。
- `scripts/check.sh` 已验证启动日志、串口日志和 invalid opcode 异常路径GitHub Actions 已接入。
- `.clang-format` 已用于强制当前 C 代码风格。
后续未完成:
- 完整日志体系printk、log level、ring buffer、oops、符号化、crash dump。
- 完整中断体系IRQ handler 注册、APIC、外部设备 IRQ、优先级和屏蔽策略。
- 内存管理扩展长期内存区域模型、page metadata、buddy/slab、后续完整缺页策略。
- 后续主线:调度、进程、文件系统、用户态和 shell。
## 当前下一步
下一步执行:
- `docs/agents/tasks/04-time-scheduler.md`
目标:
- 建立 interrupt-safe lock。
- 建立线程退出资源回收。
- 把调度路径收敛为更明确的 interrupt-exit reschedule。
## 任务路由
按顺序推进:
1. `docs/agents/tasks/01-early-debug.md`
2. `docs/agents/tasks/02-cpu-interrupts.md`
3. `docs/agents/tasks/03-memory.md`
4. `docs/agents/tasks/04-time-scheduler.md`
5. `docs/agents/tasks/05-input-events.md`
6. `docs/agents/tasks/06-storage-vfs.md`
7. `docs/agents/tasks/07-user-mode.md`
8. `docs/agents/tasks/08-shell-tools.md`
9. `docs/agents/tasks/09-driver-expansion.md`
10. `docs/agents/tasks/10-real-machine.md`
Linux 级长期能力缺口和对应阶段,见:
- `docs/agents/tasks/README.md`