Deshab-OS 开发路线图
分阶段开发路线。✅已完成 · 🔶部分完成 · ⬜待实现
当前状态总览
| 子系统 |
状态 |
说明 |
| 早期启动 |
✅ |
IDT 0–47,PIC remap 0x20–0x2f |
| UTSM封缄内存 |
🔶 |
selftest闭环,占位XOR stream |
| DKM驱动加载 |
✅ |
14/14闭环 |
| DMA分配器 |
✅ |
物理页bitmap,低4G钳位 |
| AHCI块设备 |
✅ |
IDENTIFY/READ/WRITE DMA+ahci0 provider |
| NVMe |
🔶 |
PCI discovery only,BAR0>4G待映射 |
| FAT32 |
🔶 |
DKM只读;DSK读写(根目录) |
| e1000 |
✅ |
RX/TX+DHCP/ARP/UDP/DNS,polling |
| 字体系统 |
✅ |
DBF 16/24/32px,GB2312全覆盖 |
| FirstInit |
🔶 |
UI+输入+SHA256密码+写盘;B6按键崩溃修复中 |
| 正常启动路径 |
✅ |
login→desktop |
| SAS-R0-PCQ |
✅ |
O(1)位图调度+LAPIC tick+xv6式切换,selftest闭环 |
| DRR |
🔶 |
看门狗/快照/回滚闭环(CRC64+AB双槽),MAC仍为占位 |
Phase 0 — 内存与MMIO底座
| 任务 |
状态 |
验收标准 |
| 物理页bitmap分配器 |
✅ |
已根治e1000 DMA |
| 页表映射接口(map/unmap) |
⬜ |
mmio_map(phys,size,flags)通用接口 |
| 高位PCI MMIO映射(4G以上BAR) |
⬜ |
NVMe BAR0可安全读register |
| 替换arena为真实页分配 |
⬜ |
移除16MB arena上限 |
风险:页表操作需关中断;高位MMIO需独立页表项避免破坏HHDM。
Phase 1 — DMA与块设备数据路径
| 任务 |
状态 |
验收标准 |
| DMA buffer统一接口 |
🔶 |
dkm_dma_api已定义,cache屏障待完善 |
| AHCI IDENTIFY/READ |
✅ |
SATA盘可读LBA0 |
| AHCI WRITE DMA |
✅ |
WRITE DMA EXT(0x35)已注册 |
| AHCI批量read稳定化 |
🔶 |
256扇区成功,单扇区偶发超时 |
| AHCI block provider |
✅ |
ahci0已注册 |
| NVMe admin queue/identify |
⬜ |
依赖Phase 0高位MMIO |
| NVMe block provider |
⬜ |
nvme0,支持READ |
Phase 2 — IRQ后端升级
| 任务 |
状态 |
验收标准 |
| IDT扩展256 vectors |
🔶 |
当前0–47 |
| Vector allocator |
⬜ |
动态分配中断向量 |
| APIC EOI后端 |
⬜ |
替代PIC EOI |
| IOAPIC redirection |
⬜ |
迁移设备IRQ到IOAPIC |
| LAPIC timer |
⬜ |
替代PIT |
| MSI/MSI-X |
⬜ |
NVMe/e1000使用MSI-X |
风险:未扩展IDT前不能禁用PIC或重编IOAPIC RTE。
Phase 3 — 网络数据路径
| 任务 |
状态 |
验收标准 |
| e1000 RX/TX ring |
✅ |
LINK_UP+TX_READY+RX_READY |
| e1000中断驱动收发 |
⬜ |
替代polling(依赖Phase 2) |
| virtio-net feature negotiation |
⬜ |
完成 |
| virtio-net virtqueue RX/TX |
⬜ |
建队列收发包 |
| 最小协议栈 |
✅ |
DHCP+ARP+DNS(netman闭环) |
Phase 4 — VFS与真实块设备接入
| 任务 |
状态 |
验收标准 |
| FAT32接入真实block provider |
🔶 |
优先block provider回退boot module |
| FAT32子目录路径解析 |
⬜ |
支持完整路径 |
| VFS统一路径语义 |
⬜ |
DSK与VFS路径统一 |
| 目录遍历+错误路径完善 |
⬜ |
枚举目录项+正确回退 |
Phase 5 — block write与FAT32 write
| 任务 |
状态 |
验收标准 |
| dkm_block_api.write |
✅ |
AHCI WRITE DMA EXT已注册(@+0x18) |
| FAT32文件创建/FAT链更新/覆写 |
✅ |
user.conf/firstInit.txt已写盘 |
| firstInit.txt标志写盘 |
✅ |
dsk_persist_userconf写1\n+dev_mode |
注:写路径当前由DSK内嵌FAT32实现,DKM fat32驱动仍只读。
Phase 6 — FirstInit完善
| 任务 |
状态 |
验收标准 |
| 按键崩溃修复(B6) |
🔶 |
fb_text在-O2下稳定 |
| 鼠标光标移动 |
⬜ |
PS/2 IRQ12+包解码+光标 |
| user.conf写盘 |
✅ |
重启后login可读取 |
| 网络配置界面+时区/语言 |
⬜ |
— |
| 设置完成后跳转+正常启动路径 |
✅ |
FirstInit返回→持久化→desktop |
Phase 7 — SAS-R0-PCQ调度器
| 任务 |
状态 |
验收标准 |
| TCB+task_create |
🔶 |
64槽TCB+entry/arg/stack;process_uuid/cap table待接 |
| Per-CPU runqueue |
🔶 |
结构就位(8 CPU),当前BSP-only |
| O(1)位图调度器 |
✅ |
ready_bitmap ctz选 prio0最高,selftest PASS |
| context_switch |
✅ |
xv6式栈切换(switch.S),只触碰crypto指针 |
| task_kill crypto erase |
⬜ |
key_epoch++, state=DESTROYED |
tick源=LAPIC timer宿主自持(arch/x86_64/lapic_timer.c);demo窗口含tick失速兜底;
selftest含runqueue O(1)、block/wake、看门狗负向测试(demo_fault=1检出+回滚)。
风险:切换路径禁止扫描capability/计算MAC/重加密。
Phase 8 — DRR恢复系统
| 任务 |
状态 |
验收标准 |
| Emergency Pool+Watchdog+Recovery log |
🔶 |
看门狗register/kick/timeout闭环+负向测试PASS;独立调度器待做 |
| Dirty Shard+Bitmap |
✅ |
snapshot_dirty按shard位图收集dirty页 |
| A/B Checkpoint双槽 |
✅ |
ckpt_a/ckpt_b+CRC64+active slot切换 |
| Page/Segment/System Rollback |
🔶 |
page级回滚+verify PASS;segment/system级待真实加密后验证 |
| 驱动recovery ops |
⬜ |
quiesce/reset/reinit |
注:快照区为静态区域(UTSM arena 内),页快照容量编译期 128 页;
MAC 当前为 CRC64 占位(Phase 9 替换真实 MAC)。
风险:恢复路径禁用普通堆;Emergency Pool耗尽→system rollback。
Phase 9 — 真实加密落地
| 任务 |
状态 |
验收标准 |
| 加密原语选型 |
⬜ |
HKDF/BLAKE2/AES-CTR/Poly1305 |
| KDF+Stream cipher(64B line)+MAC(4KB page) |
⬜ |
占位XOR替换 |
| DRR root key管理+PCKC key schedule |
⬜ |
真实key schedule |
风险:加密原语需在-mno-sse下可用(或此阶段启用SSE/SIMD)。
用户态与生态主线
| 子系统 |
状态 |
说明 |
| desktop.elf |
✅ |
三页面+窗口+任务栏+双命令行+6应用+双缓冲 |
| shell.elf |
✅ |
linux/cp/mv/echo/ls/cat/rm+/bin+lls/lcat+Tab补全 |
| cmd.elf |
✅ |
Windows风格+pe/peinfo |
| login.elf |
✅ |
USER.CONF+skip_login |
| PE/EXE兼容层 |
✅ |
PE32+原生/PE32走x86emu32 |
| Linux兼容层 |
🔶 |
VMM+park-and-resume+IPC exec+文件传输;VMX运行时验证待VT-x/KVM |
| virtio-mmio模拟 |
🔶 |
blk/net/rootfs后端;未在真实guest验证 |
| Pacman |
⬜ |
五阶段方案;Arch rootfs已含pacman |
主线依赖:VMX环境→Arch guest pacman→文件传输/命令委托→desktop Linux图标集成。
DKM工程化收尾
| 任务 |
状态 |
| 统一驱动ABI公共头 |
⬜ |
| kernel_api typed sub-struct迁移 |
⬜ |
| 零warning |
⬜ |
| QEMU场景自动化 |
⬜ |
| log API printf变参 |
⬜ |
里程碑
| 里程碑 |
阶段 |
标志 |
| M1 真实块设备启动 |
Phase 0+1+4 |
从AHCI/NVMe FAT32读deshab.elf |
| M2 配置持久化 |
Phase 5+6 |
FirstInit设置可写盘,重启后正常启动 |
| M3 网络可用 |
Phase 2+3 |
DHCP+UDP收发 |
| M4 多任务调度 |
Phase 7 |
SAS-R0-PCQ多任务 |
| M5 容错恢复 |
Phase 8+9 |
DRR checkpoint/rollback+真实加密 |
相关文档