tianole/docs/agents/tasks
2026-05-12 17:11:13 +08:00
..
01-early-debug.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
02-cpu-interrupts.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
03-memory.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
04-time-scheduler.md fix(sched): guard wait queue state transitions 2026-05-12 17:11:13 +08:00
05-input-events.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
06-storage-vfs.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
07-user-mode.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
08-shell-tools.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
09-driver-expansion.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
10-real-machine.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00
README.md docs(tasks): expand staged kernel roadmap 2026-05-12 16:53:33 +08:00

Agent 任务索引

这个目录保存适合 agent 分阶段执行的任务说明。每个任务文档都应该说明:

  • 目标
  • 前置条件
  • 建议目录边界
  • 非玩具化约束
  • 验收方式

当前推荐顺序:

  1. 01-early-debug.md串口、panic、早期日志。
  2. 02-cpu-interrupts.mdCPU 基础、GDT、IDT、异常、中断入口。
  3. 03-memory.md:物理页分配、虚拟内存、内核堆。
  4. 04-time-scheduler.md:时钟、内核线程、调度与等待。
  5. 05-input-events.md:键盘输入、事件队列、终端输入模型。
  6. 06-storage-vfs.md块设备、页缓存、VFS、基础文件系统。
  7. 07-user-mode.md用户态、系统调用、进程、ELF 程序加载。
  8. 08-shell-tools.mdinit、shell、调试命令、最小工具集。
  9. 09-driver-expansion.mdPCI/ACPI/更完整设备驱动,音频等后期设备。
  10. 10-real-machine.md:真机启动、安全验证、硬件差异处理。

当前进度

阶段 状态 说明
01-early-debug.md 基础完成 已有 early log 前端、QEMU debug port、COM1 串口和最小 panic()
02-cpu-interrupts.md 基础完成 已有 GDT/TSS/IDT、exception vector 0-31、trap_frame 和 invalid opcode 回归测试。
03-memory.md 基础完成 已有最小物理页 allocator、页表 map/unmap/query、page fault 诊断和内核堆。
04-time-scheduler.md 进行中 已有 PIT timer interrupt、通用 tick、kernel thread、内核栈、上下文切换、timer 驱动 round-robin、sleep、wait queue、条件等待、timeout 等待、基础 interrupt-safe lock、IRQ exit reschedule 和最小 DEAD 回收;下一步要收紧 wait queue 锁语义、线程生命周期和 trap-frame aware interrupt-exit reschedule。
05-input-events.md 未开始 需要输入事件模型和键盘接入。
06-storage-vfs.md 未开始 需要块层、缓存、VFS 和基础文件系统。
07-user-mode.md 未开始 需要 syscall、进程、用户地址空间和 ELF 加载。
08-shell-tools.md 未开始 需要 init、shell、最小用户态工具和 libc 基础。
09-driver-expansion.md 未开始 需要设备模型、PCI/ACPI、存储、网络等驱动扩展。
10-real-machine.md 未开始 需要 U 盘真机启动验证和硬件差异记录。

当前最合适的下一步仍在 04-time-scheduler.md 内:先把 wait queue 条件检查、wakeup、timeout 和锁规则补成不会丢唤醒的模型,再收紧线程生命周期和更明确的 interrupt-exit reschedule。05-input-events.md 的键盘驱动应等这些边界稳定后再开始。

Linux 级能力缺口路由

这些能力不一定马上实现,但必须在路线中占位,避免后续走偏。

  • 硬件发现、平台层、总线、资源分配:09-driver-expansion.md
  • ACPI、Device Tree、PCI、USB、IRQ routing09-driver-expansion.md
  • NUMA、CPU topology、电源管理、热插拔09-driver-expansion.md
  • 内核对象生命周期、引用计数、资源释放:04-time-scheduler.md06-storage-vfs.md07-user-mode.md
  • 锁、等待队列、workqueue、timer、延迟执行04-time-scheduler.md
  • 完整虚拟内存、匿名页、缺页加载、COW、mmap、换页、内存回收03-memory.md07-user-mode.md
  • page cache、block cache、writeback、文件一致性06-storage-vfs.md
  • slab/slub、小对象缓存03-memory.md
  • POSIX syscall、fork/exec/waitfcntl/stat/chmoderrno、路径语义:07-user-mode.md08-shell-tools.md
  • uid/gid、文件权限、进程权限07-user-mode.md08-shell-tools.md
  • signal、pipe、socket、eventfd、futex、共享内存、poll/select、IPC07-user-mode.md
  • tty、session、job control05-input-events.md08-shell-tools.md
  • libc、动态链接、用户空间工具链08-shell-tools.md
  • printk、panic/oops、异常栈、内核符号01-early-debug.md02-cpu-interrupts.md
  • ftrace、perf、procfs、sysfs、debugfs、crash dump08-shell-tools.md09-driver-expansion.md
  • 用户/组、权限、capability、隔离模型07-user-mode.md
  • 网络栈和 socket API09-driver-expansion.md

当前不进入实现队列,但不能遗忘:

  • NUMA
  • CPU topology
  • 电源管理
  • 热插拔
  • cgroup/namespace
  • LSM 类安全框架
  • swap
  • 完整 USB 栈
  • 完整图形栈
  • 音频