Files
Deshab-OS/README.md
T
LinehuandCursor 8554a82677 feat(panic): FUCK [panic] mode=strict|fallback + realtest image variant
- UTSM panic_full returns in fallback mode (logs [PANIC:FALLBACK] + code + hit
  count); panic_halt keeps always-halt sites (CPU exception, VMM-E11 LA57,
  VMM-E15 DSK jump, UTSM-E42 test hook). Call sites given safe continuations.
- Mode passed to DSK/FirstInit/login/desktop via DSK_BOOT_FLAG_PANIC_FALLBACK;
  DKM kernel_api.panic / kern.log.panic return to driver; ext4 fatal aborts the
  op via setjmp/longjmp and DSK falls back to FAT32 ESP.
- build.ps1/Makefile: dev=strict, release=fallback, new realtest (release
  options + strict); default -Variant all; serialized iso packing under -j.
- Fix '*/' inside comments (dkm.h, kernel_api.h, bus.c) that broke the build.
- Includes pending work: dkm_bus service bus, mt7920/wlan drivers, desktop
  files/startmenu/prank, pe-tools, diskinfo, docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 23:57:19 +08:00

92 lines
5.7 KiB
Markdown
Raw 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.
# Deshab-OS
# 致力于打造极差的用户体验
> 实验内核 · QEMU 可启动演示 · 非生产系统
Deshab-OS 是一个从零编写的独立 64 位操作系统,基于 x86_64 long mode,采用单地址空间 Ring0(SAS-R0)内核架构,配套封缄内存(UTSM)、专用恢复根(DRR)与可加载驱动模块系统(DKM)。
当前已完成可启动的实验内核闭环:Limine 引导 → UTSM 首阶段内核 → DKM 驱动加载 → DSK 主内核 → 桌面/登录/向导。
**进行中的大改造(万物互联 / D6-D7)**:正在把系统从"UTSM→DSK→app"层级结构改造成**没有主内核**的形态——一切(文件系统、向导、登录、桌面、shell)皆平等 DKM 内核模块,模块间只经**按名服务总线**(`kern.*` / `srv.*` 注册-消费)互联,DSK 将退役,调度器转常驻。设计定稿见 [万物互联与服务总线设计](docs/RE/万物互联与服务总线设计.md),P0-P6 六阶段逐步落地(进度见 [TASKBOARD.md](docs/TASKBOARD.md))。
## 项目特质
Deshab 的灵魂是**自相矛盾**:一边封圣一边爆粗,一边敞开门一边焊死锁——**疯的是姿态,稳的是时序**。
1. **疯但好使。** 提交历史像涂鸦墙,但 `run_qemu.bat` 一下,莲花确实开了。每个里程碑必须有 QEMU 证据,疯要有画面证据。
2. **毛坯神殿,不是赛博保险柜。** SAS-R0 单地址空间 Ring0——没有隔断的机房,每面墙上写着"此处无墙"。自由是默认值:用户代码即内核代码,想改就改;卡了按时光键(DRR 回滚)。
3. **仪式感是功能。** 给空气上锁(UTSM 封缄)不是因为有人窥探,是因为喜欢咔哒声——所以它必须是可开关的旋钮(`@sealed` 可选标记),而不是强加的道袍。崩溃也要崩出莲花(DEAICUP 莲花崩溃屏)。
4. **诚实比体面重要。** 不假装安全,只声明边界;不假装完成,只标⬜。状态唯一来源是 [STATUS.md](docs/STATUS.md),每个 ✅ 都带证据路径,⬜ 是坦白不是路线装饰。
5. **错也错得有章法。** 0bug 不靠形式化验证,靠 B0-B4 启动契约、分级自检(F4)、看门狗与 A/B checkpoint 回滚兜底。
完整宣言与三条箴言见 [docs/PHILOSOPHY.md](docs/PHILOSOPHY.md)。
## 核心架构
```text
SAS-R0-PCQ 单地址空间 Ring0 + Per-CPU O(1) 位图调度器(当前 BSP-only)
UTSM UUID 调谐封缄内存(明文须经 UTRW 读写器)
UTRW 带标记读写器(Fast/Slow Path ✅,RFC 8439 KAT 对拍)
DRR 专用恢复根(看门狗 / checkpoint / A-B 回滚 / 独立 Emergency Pool)
DKM 驱动模块系统(ELF64 .drv ABI,分 stage 加载,manifest depends 依赖图强制)
DKM-BUS 按名服务总线(kern.* / srv.* 双向注册-消费)——万物互联的神经,
目标形态:没有主内核,一切皆内核模块(进行中,见设计文档)
```
## 项目状态
**唯一状态源见 [docs/STATUS.md](docs/STATUS.md)**,本表只是引用摘要。
| 子系统 | 状态 |
|--------|------|
| 早期启动 / IRQ / DMA / DKM 14 驱动 | ✅ |
| UTSM 封缄(Fast/Slow Path + RFC 8439 KAT + @sealed 旋钮) | ✅ |
| AHCI / e1000 / FAT32 写盘 | ✅ |
| NVMe / virtio-net / FAT32 完整路径 | 🔶 |
| PCQ 调度器 / DRR 恢复根 | ✅(BSP-only / 演示级) |
| 万物互联改造(服务总线 / 应用 DKM 化 / DSK 退役) | 🔶 P0-P6 进行中,见 [设计文档](docs/RE/万物互联与服务总线设计.md) |
| 五期填补计划进度 | 一期二期全勾,见 [docs/TASKBOARD.md](docs/TASKBOARD.md) |
### 已知边界(Non-Goals)
1. **无进程隔离**:SAS-R0 单地址空间 Ring0,驱动 bug = 内核全盘崩。这不是安全 OS,是敞开工坊。
2. **UTSM 仅 selftest 覆盖**:封缄是"设计意图 + 演示级实现",不是机密计算。
3. **驱动为演示级**:QEMU 能演示 ≠ 真机可依赖;NVMe/virtio-net 尚未走完数据路径。
## 文档
| 文档 | 内容 |
|------|------|
| [STATUS.md](docs/STATUS.md) | **单一状态源**(全子系统三色表 + 证据) |
| [万物互联与服务总线设计.md](docs/RE/万物互联与服务总线设计.md) | 万物互联架构:服务总线 / DSK 溶解 / P0-P6 路线 |
| [ROADMAP_INSANE.md](docs/ROADMAP_INSANE.md) | 五期填补计划(F/U/D/R/E 唯一任务编号) |
| [TASKBOARD.md](docs/TASKBOARD.md) | 可勾选任务表 |
| [PHILOSOPHY.md](docs/PHILOSOPHY.md) | 疯圣典:矛盾美学与「疯但好使」物理学 |
| [ARCHITECTURE.md](docs/ARCHITECTURE.md) | 架构设计 + 非目标章 |
| [BOOT_SEQUENCE.md](docs/BOOT_SEQUENCE.md) | B0-B4 五阶段启动序列(演示版) |
| [ROADMAP.md](docs/ROADMAP.md) | Phase 0-9 历史存档 + 用户态主线 |
| [CONTRIBUTING.md](CONTRIBUTING.md) | 开发环境、代码规范、Git 工作流 |
| [CLAUDE.md](CLAUDE.md) | 项目当前状态与下一阶段路线 |
| [LESSONS_LEARNED.md](LESSONS_LEARNED.md) | 开发经验与教训 |
## 构建
> Windows 走 `build.bat`;Linux/macOS 用根目录 [Makefile](Makefile)(`make dev|release|realtest`,打包需 mkfs.vfat/mkfs.ext4)。
```powershell
# Windows:LLVM Clang + ld.lld + Python/Pillow + QEMU + WSL(mkfs)
.\build.bat # 构建 utsm.elf + deshab.elf + 14 个 .drv + ISO/deshab.img
.\build.bat -Variant dev # 开发者模式(自动跑 shell 测试,调试全开)
.\build.bat -Variant release # 发布版(进桌面+登录)
.\ISO\run_qemu.bat # QEMU UEFI 启动验证(串口输出到 stdio)
```
```bash
# Linux / macOS(F3 跨平台构建)
make dev # 等价 build.bat -Variant dev
make both # dev + release
```
---
> "Deshab 不假装安全,只声明边界;不假装完成,只标⬜。" 🪷