实验内核 · 从零构建 · 非生产系统 Experimental Kernel · Built From Scratch · Non-Production

Deshab-OS

一个从零编写的独立 64 位操作系统。单地址空间 Ring0 内核,封缄内存(UTSM)、带标记读写器(UTRW)、专用恢复根(DRR)与可加载驱动模块系统(DKM),内置 Linux / PE 双兼容层。 An independent 64-bit OS written from scratch. Single address-space Ring0 kernel, sealed memory (UTSM), tagged read/write mediator (UTRW), dedicated recovery root (DRR), and loadable driver module system (DKM), with built-in Linux / PE compatibility layers.

x86_64 long mode · Limine · C11 + ASM · LLVM · SAS-R0 · UTSM · UTRW · DRR · DKM

14/14 DKM 驱动14/14 DKM Drivers
桌面 / Shell / LoginDesktop / Shell / Login
网络栈 (DHCP/ARP/DNS)Network Stack
UTSM 加密原语UTSM Crypto
C Apache-2.0 Machmagical-IT

目录Contents

疯圣典The Mad Scripture

Deshab 不假装安全,只声明边界;不假装完成,只标 。Deshab does not pretend to be secure, it only declares boundaries; it does not pretend to be finished, it only marks .

docs/PHILOSOPHY.md

Deshab 的灵魂是自相矛盾:一边封圣一边爆粗,一边敞开门一边焊死锁——疯的是姿态,稳的是时序。 Deshab's soul is self-contradiction: it canonizes while it curses, it opens the door while it welds the lock shut — mad in posture, disciplined in sequencing.

箴言一Precept I

最自由的系统,需要最隆重的仪式来证明它本不需要仪式。The freest system needs the most solemn ritual to prove it never needed ritual.

箴言二Precept II

单地址空间里,隔离是一种修辞,不是一种机制。In a single address space, isolation is rhetoric, not a mechanism.

箴言三Precept III

0bug 不是没有错,是错也错得有 B0–B4 的章法。Zero bugs isn't "no mistakes" — it's failing with the discipline of B0–B4.

矛盾美学Contradiction Aesthetics

不承诺安全(环境假设无攻击者),不承诺完成( 是坦白),但承诺可演示(每个里程碑都有 QEMU 证据)、承诺边界(// 三层分离)。No promise of security (zero-attacker assumption), no promise of completion ( is honesty), but a promise of demonstrability (every milestone has QEMU evidence) and of boundaries (// separation).

Deshab-OS:一个把锁焊在敞开的门上、用莲花崩溃屏收殓每一次 panic 的毛坯神殿。敞开工坊,不是赛博保险柜——一把扳手走天下,卡了按时光键。Deshab-OS: a raw temple that welds the lock onto an open door, collecting every panic in a lotus crash screen. An open workshop, not a cyber vault — one wrench for everything, and when it stalls, press the time-key.

气质定位Positioning

系统架构System Architecture

Deshab-OS 采用双阶段内核架构:UTSM(首阶段内核)负责平台初始化、封缄内存与驱动加载,DSK(主内核)负责运行时调度与用户交互。两者通过版本化的 dsk_boot_context 结构体交接(RDI=ctx,magic DSK1BOOT)。 Deshab-OS uses a dual-stage kernel: UTSM (first-stage) handles platform init, sealed memory and driver loading; DSK (main kernel) handles runtime scheduling and user interaction. They hand off via a versioned dsk_boot_context (RDI=ctx, magic DSK1BOOT).

┌─────────────────────────────────────────────────────────┐ │ UEFI / BIOS │ │ │ │ │ ▼ │ │ Limine Bootloader │ │ │ │ │ ├──► utsm.elf (首阶段内核) │ │ │ │ │ │ │ ├── serial · IDT · arena · DMA │ │ │ ├── UTSM 封缄内存 初始化 │ │ │ ├── DKM 4-Stage 14 驱动 加载 │ │ │ │ │ │ │ │ Stage 0: timer · apic · acpi · pci │ │ │ │ Stage 1: console_fb · ahci · nvme · bootfs │ │ │ │ Stage 2: vfs · fat32 · devfs │ │ │ │ Stage 3: e1000 · virtio_net · ps2kbd │ │ │ │ │ │ │ └── dsk_boot_context ──► deshab.elf (主内核) │ │ │ │ │ │ │ FirstInit → mouseInit → netman → desktop │ │ │ 或 login → desktop │ └─────────────────────────────────────────────────────────┘

五大核心架构支柱Five Core Architecture Pillars

①

SAS-R0-PCQ

单地址空间 Ring0 + Per-CPU O(1) 位图调度队列。调度切换只加载加密上下文指针,绝不扫描 capability、不计算 MAC、不写 checkpoint。当前 BSP-only。Single Address Space Ring0 + Per-CPU O(1) bitmap queues. Context switches only load encrypted pointers — no capability scans, MAC calculations, or checkpoint writes. Currently BSP-only.

②

UTSM

UUID 调谐封缄内存。内存默认密文形态,明文读写须经 UTRW。每 CPU 密钥缓存 (PCKC),capability O(1) 定位。epoch 过期 / MAC 失败 → Slow Path 异常恢复。chacha20 KAT 已对拍 RFC 8439。UUID-tuned sealed memory. Memory is ciphertext by default; plaintext access requires UTRW. Per-CPU Key Cache (PCKC), O(1) capability lookup. Epoch expiry / MAC failure → Slow Path recovery. chacha20 KAT verified against RFC 8439.

③

UTRW

带标记读写器。所有明文内存访问必须经过 UTRW。读写分 Fast Path (PCKC 命中) / Slow Path (密钥缺失) / Raw Path (直接读密文)。Tagged Read/Write mediator. All plaintext memory access must go through UTRW. Three paths: Fast (PCKC hit) / Slow (key miss) / Raw (direct ciphertext).

④

DRR

专用恢复根。独立 Emergency Pool(普通 OOM 不阻断恢复),checkpoint 只处理 dirty shard/page。A/B 双槽 + CRC64 + active slot 原子切换,杜绝半写 checkpoint。Dedicated Recovery Root. Independent Emergency Pool (normal OOM can't block recovery), checkpoint only dirty shards/pages. A/B dual-slot + CRC64 + atomic active-slot swap — no half-written checkpoints.

⑤

DKM

驱动 ELF64 .drv,通过 driver_desc / driver_init / driver_exit ABI 与内核解耦。通过 dkm_kernel_api 调用内核服务,不直接依赖内核符号。ELF64 .drv modules decoupled via driver_desc / driver_init / driver_exit ABI. Kernel services via dkm_kernel_api, no direct symbol dependency.

FUCK 配置

启动配置文件 SYSTEM/system/deshab64/FUCK 采用 INI 格式,控制启动行为、驱动开关、UTSM 参数、桌面行为。UTSM 阶段经 Limine boot module 读取,DSK 阶段经 FAT32 读取。Boot config FUCK in INI format. Controls boot behavior, driver toggles, UTSM params, desktop behavior. Read via Limine module (UTSM) or FAT32 (DSK).

DBS 五阶段启动序列DBS Five-Stage Boot Sequence

Deshab Boot Sequence (DBS) 每阶段有明确的 Entry / Exit / Fail 承诺与可验证串口锚点。 Each stage has clear Entry / Exit / Fail contracts and verifiable serial anchors.

阶段Stage 代号Codename 含义Meaning 锚点Anchor
B0 Ignis 火种 固件 → Limine → utsm.elf 入内存Firmware → Limine → utsm.elf loaded [UTSM] boot
B1 Sigillum 封缄解封 UTSM 建立封缄内存 + 14 驱动 ACTIVEUTSM sealed memory + 14 drivers ACTIVE [UTSM] SELFTEST PASS
B2 Transitus 交接 UTSM → DSK 版本化 context 传递UTSM → DSK versioned context handoff [UTSM] jumping to DSK
B3 Origo 溯源 DSK 判定首次 / 正常启动DSK determines first/normal boot [DSK] context ok
B4 Excitas 唤醒 FirstInit 向导或登录 → 桌面FirstInit wizard or login → desktop [DSK] loading desktop

驱动矩阵 (14 DKM 驱动)Driver Matrix (14 DKM Drivers)

Stage 类别Class 驱动Driver 能力Capability 状态Status
0platform timer PIT 校准 + 精确延时PIT calibration + precise delay 完成
interrupt apic CPUID / MADT / LAPIC MMIO 只读 + PIC IRQCPUID / MADT / LAPIC MMIO + PIC IRQ 完成
platform acpi RSDP → XSDT,ACPI 表枚举RSDP → XSDT, ACPI table enumeration 完成
bus pci PCI config space 扫描,设备枚举PCI config space scan, device enumeration 完成
1console console_fb Limine framebuffer,图形清屏Limine framebuffer, graphical clear 完成
block ahci PCI AHCI + IDENTIFY/READ/WRITE DMA + ahci0 providerPCI AHCI + IDENTIFY/READ/WRITE DMA + ahci0 provider 完成
block nvme PCI NVMe 探测(BAR0>4G 待高位 MMIO)PCI NVMe discovery (high MMIO pending) 进行中
fs bootfs Limine boot module 内存文件系统Limine boot module in-memory filesystem 完成
2fs vfs 挂载 bootfs,文件查找 / 读取Mount bootfs, file lookup / read 完成
fs fat32 只读 FAT32(DSK 侧可写,用于持久化)Read-only FAT32 (DSK side writable for persistence) 进行中
fs devfs /dev/version /dev/platform /dev/fb0 /dev/modules /dev/boot/Virtual device filesystem 完成
3net e1000 PCI + MAC + RX/TX ring + DHCP/ARP/UDP/DNS (polling)PCI + MAC + RX/TX ring + DHCP/ARP/UDP/DNS (polling) 完成
net virtio_net PCI + modern virtio capability 枚举(未做 virtqueue)PCI + modern virtio capability enumeration (no virtqueue) 进行中
input ps2kbd IRQ1,scancode set 1 → ASCIIIRQ1, scancode set 1 → ASCII 完成

驱动状态机:DISCOVERED → QUEUED → DEP_WAIT → LOADING → ELF_CHECKED → MEMORY_ALLOCATED → RELOCATED → ABI_CHECKED → INITING → ACTIVE Driver FSM: DISCOVERED → QUEUED → DEP_WAIT → LOADING → ELF_CHECKED → MEMORY_ALLOCATED → RELOCATED → ABI_CHECKED → INITING → ACTIVE

网络栈Network Stack

e1000 完整收发链路Full TX/RX Path

DHCP 四步握手获取 IP → ARP 解析网关 MAC → DNS A 记录查询外部域名。netman 网络管理器由 DSK 调度,完成早期联网闭环。DHCP 4-step handshake → ARP gateway MAC resolution → DNS A record query. netman network manager scheduled by DSK for early networking.

ath9k WiFi 支持WiFi Support

Atheros AR928x 芯片组,EEPROM 解析、被动扫描、802.11 beacon 帧解析。需真实硬件测试(QEMU 不支持 WiFi 模拟)。Atheros AR928x chipset, EEPROM parsing, passive scanning, 802.11 beacon parsing. Requires real hardware (QEMU cannot emulate WiFi).

virtio_net

PCI + modern virtio capability 枚举。支持 QEMU virtio-net-pci 设备 (1af4:1001),virtqueue 数据路径待落地。PCI + modern virtio capability enumeration. Supports QEMU virtio-net-pci (1af4:1001); virtqueue data path pending.

桌面环境Desktop Environment

desktop.elf — 全屏独占 framebuffer,复刻 Winux-Kate 布局,提供完整桌面体验。 desktop.elf — Full-screen exclusive framebuffer, Winux-Kate-inspired layout, complete desktop experience.

多页面Multi-Page

DASHBOARD(四面板)/ IDE(多标签)/ DESKTOP(图标网格 + 浮动窗口)/ CUSTOM(外部 ELF 宿主)DASHBOARD (4-panel) / IDE (multi-tab) / DESKTOP (icon grid + floating windows) / CUSTOM (external ELF host)

窗口管理Window Management

最多 8 个窗口,支持拖拽 / 聚焦 / 最小化 / 关闭,6 个工作区。Up to 8 windows, drag / focus / minimize / close, 6 workspaces.

内置应用Built-in Apps

shell(25+ 命令,Linux 风格)/ cmd(Windows 风格)/ editor / fileman / calc / browser / curl / ping / settings / sysinfoshell (25+ commands) / cmd / editor / fileman / calc / browser / curl / ping / settings / sysinfo

渲染引擎Rendering Engine

双缓冲 + 脏矩形合并 + 行级脏标记增量渲染。"Sealed Arc" 设计语言(Arc 弧 / Seal 封 / Flow 流),暗色主题。Double-buffered + dirty rect merging + line-level dirty incremental rendering. "Sealed Arc" design language, dark theme.

字体系统Font System

DBF 格式 8bpp 灰度位图字体。GB2312 6763 汉字 + ASCII 全覆盖,16/24/32px 三档字号。索引按 codepoint 升序二分查找。DBF format 8bpp grayscale bitmap. GB2312 6763 Hanzi + ASCII full coverage, 16/24/32px sizes. Binary search by codepoint.

FirstInit 首次启动向导Wizard

圆角卡片 UI,PS/2 键盘 + 鼠标输入。引导用户设置计算机名 / 用户名 / 密码 → 网络配置(WiFi)。SHA256 + XOR 加密写入 USER.CONF。Rounded card UI, PS/2 keyboard + mouse. Guides through computer name / username / password → network setup (WiFi). SHA256 + XOR → USER.CONF.

双兼容层Dual Compatibility Layers

Linux 兼容层Linux Compat Layer

Park-and-Resume 双内核(类 WSL)。UTSM 充当 VMM (VMX root),Linux 6.6 LTS 作为 guest (VMX non-root) 常驻内存。IPC 委托执行:共享内存 ring + VMCALL hypercall + IPI。Shell 提供 dsl 命令。代码全链路就绪,VMX 实机验证待嵌套虚拟化环境。Park-and-Resume dual-kernel (WSL-like). UTSM as VMM (VMX root), Linux 6.6 LTS guest (VMX non-root) parked in memory. IPC delegation: shared memory ring + VMCALL hypercall + IPI. dsl shell commands. Full code path ready; VMX hw verification pending nested virt env.

PE/EXE 兼容层PE/EXE Compat Layer

极简 Wine。UTSM 内置 PE 加载器 + Windows API shim + x86-32 解释器。PE32+ (64 位) 重定位加载 → IAT 填 ms_abi shim → Ring0 原生执行。PE32 (32 位) 加载 → 合成 IAT → x86emu32 解释执行。Minimal Wine. UTSM built-in PE loader + Windows API shim + x86-32 interpreter. PE32+ (64-bit): relocate → IAT ms_abi shim → Ring0 native. PE32 (32-bit): load → synthetic IAT → x86emu32 interpreted.

构建与运行Build & Run

系统要求System Requirements

工具Tool 版本Version 用途Purpose
LLVM Clang14+C11 / 汇编编译C11 / ASM compilation
ld.lld14+链接器Linker
make任意Any各模块构建Module builds
Python 3 + Pillow3.8+字体生成Font generation
QEMU7+UEFI 启动验证UEFI boot verification
PowerShell / WSL5.1+构建脚本 / mkfs 打包Build script / mkfs packaging

build.ps1 会自动扫描 C:\Program Files\LLVM\bin 等常见目录发现 clang / ld.lld,即使不在 PATH 也可用。 build.ps1 auto-scans common directories for clang/ld.lld, so they work even when not in PATH.

构建Build

# Windows(项目根目录)Windows (from project root) .\build.bat # utsm.elf + deshab.elf + 14 .drv + ISO/deshab.imgutsm.elf + deshab.elf + 14 .drv + ISO/deshab.img .\build.bat -Variant dev # 开发者模式(自动跑 shell 测试,调试全开)dev mode (auto shell tests, full debug) .\build.bat -Variant release # 发布版(进桌面+登录)release (desktop + login) # Linux / macOS(跨平台 Makefile)Linux / macOS (cross-platform Makefile) make dev # 等价 build.bat -Variant devequivalent to dev make both # dev + releasedev + release

运行 (QEMU UEFI)Run (QEMU UEFI)

.\ISO\run_qemu.bat

预期启动锚点: Expected boot anchors:

[UTSM] boot [UTSM] SELFTEST PASS [UTSM] jumping to DSK [DSK] boot [DSK] context ok [DSK] FUCK config loaded [DSK] loading desktop

开发状态Development Status

状态唯一来源是仓库 docs/STATUS.md。 已实现 · 演示级(注明边界)· 仅设计。 Single source of truth: docs/STATUS.md. implemented · demo-grade · design-only.

子系统Subsystem 状态Status 备注Notes
早期启动 / IDT / PIC / IOAPIC-LAPIC 路由Early boot / IDT / PIC / IOAPIC-LAPIC routing完成
DKM 驱动加载 (14/14)DKM driver loading (14/14)完成
UTSM 封缄内存(Fast/Slow Path + @sealed)UTSM sealed memory (Fast/Slow Path + @sealed)完成chacha20 KAT 对拍 RFC 8439chacha20 KAT vs RFC 8439
AHCI 块设备 (读/写)AHCI block device (R/W)完成
ext4 读写驱动ext4 read/write driver完成extent 树 + 块/inode 分配回收extent tree + block/inode alloc
e1000 网络 (DHCP/ARP/DNS)e1000 network (DHCP/ARP/DNS)完成polling 轮询polling
字体系统 (GB2312 全覆盖)Font system (GB2312 full coverage)完成
桌面 / shell / cmd / loginDesktop / shell / cmd / login完成
PE/EXE 兼容层PE/EXE compatibility layer完成PE32+ 原生 / PE32 走 x86emu32PE32+ native / PE32 x86emu32
真实加密原语Real crypto primitives 演示级chacha20/KDF/MAC 已落,PCKC schedule 待接chacha20/KDF/MAC done, PCKC schedule pending
SAS-R0-PCQ 调度器SAS-R0-PCQ scheduler 演示级BSP-only,per-cpu 多核待做BSP-only, multi-core pending
Linux 兼容层Linux compatibility layer 演示级代码全链路;VMX 实机验证待 VT-x/KVMcode complete; VMX hw verify pending
FirstInit 首次启动向导FirstInit wizard 演示级输入+SHA256+写盘闭环input+SHA256+persist loop
NVMe PCI discovery待高位 MMIO 映射high MMIO mapping pending
Pacman 包管理器Package Manager 五阶段方案
DRR 回滚 (segment/system 级)Rollback (segment/system) 待验证page 级 + 看门狗 page-level + watchdog

非目标(Non-Goals)Non-Goals

Deshab 不假装是它不是的东西。以下为 v1 明确不做的目标: Deshab does not pretend to be what it is not. These are explicitly out of scope for v1:

无进程隔离No Process Isolation

SAS-R0 单地址空间 Ring0,无 per-process 页表、无 ring3。驱动 bug = 内核全盘崩,这是接受的代价。SAS-R0 single address space Ring0, no per-process page tables, no ring3. A driver bug = full kernel crash, an accepted cost.

非 TEE / 机密计算Not TEE / Confidential Computing

UTSM 无硬件信任根(无 IOMMU/MPK/TEE),封缄防的是「自己手滑」,不是攻击者(本环境假设无攻击者)。UTSM has no hardware root of trust (no IOMMU/MPK/TEE); sealing guards against self-slip, not attackers (zero-attacker assumption).

非形式化验证No Formal Verification

0bug 靠 QEMU 演示证据 + DRR 回滚兜底,不靠证明。Zero bugs relies on QEMU evidence + DRR rollback, not proofs.

DKM 不做故障隔离No DKM Fault Isolation

同地址空间插件,「能加载」≠「能安全卸载」;热卸载为待办。Same-address-space plugins: "can load" ≠ "can safely unload"; hot-unload is TODO.

文档索引Documentation Index

文档Document 内容Content
STATUS.md 单一状态源(全子系统三色表 + 证据)Single source of truth (three-color table + evidence)
PHILOSOPHY.md 疯圣典:矛盾美学与「疯但好使」物理学The Mad Scripture: contradiction aesthetics
ARCHITECTURE.md 架构设计 + 非目标章Architecture + non-goals
BOOT_SEQUENCE.md B0–B4 五阶段启动序列(演示版)B0–B4 five-stage boot (demo)
ROADMAP_INSANE.md 五期填补计划(F/U/D/R/E 唯一任务编号)Five-phase fill plan (F/U/D/R/E task IDs)
TASKBOARD.md 可勾选任务表Checkable task board