Architecture

系统架构

分层而治、无循环依赖、ABI 长期稳定。硬件之上的一切,全部由 Novus 自己定义。

Layers

分层结构

自上而下:用户态 → 窗口图形 → 系统调用 → 内核 → 文件系统 → 驱动与硬件。

U

用户态 User Space

Novus Shell · 内置系统套件 · Win32 兼容层 · cppcc · MicroPython

W

窗口与图形层

Novus-WM 窗口管理器 · 自研 IPC 协议 · NovusDisplay 渲染栈

S

系统调用层 ABI

x86_64 syscall 门 · 编号 1-7 / 60 保留 · 新增 8-18

K

内核核心 Kernel

抢占式多进程调度 · 异常隔离 · 虚拟内存 · OOM 保护

F

文件系统层 FS

NovusFS · WAL 事务日志 · Merkle 校验 · fsck 修复

H

驱动与硬件层

blkdev_t 存储抽象 · VGA / DP · PCI 枚举 · NKM 驱动

Source Tree

源码目录结构

模块化组织,每个子系统都可以独立编译与替换。

arch

arch/x86_64

架构相关汇编、UEFI 引导与启动代码

core

kernel

内核核心、调度器、系统调用与内存管理

fs

fs/novusfs

NovusFS、WAL 日志与 Merkle 树

sec

security

CAP 权限模型与 NKM 签名校验

drv

drivers

VGA / DisplayPort、PCI 与存储驱动

gfx

graphics

NovusDisplay 图形栈与 HAL 抽象

wm

wm/novus-wm

Novus-WM 窗口管理器与 IPC 协议

lib

lib

内核通用库与公共基础设施

apps

apps

用户态内置应用(Rust 实现)

user

user

shell / cppcc / micropython / win32compat

tools

tools

主机端镜像制作与打包工具

build

scripts

Kbuild 脚本与默认配置

Boot Flow

启动流程

阶段一 · A 核(BSP)
UEFI 加载引导代码,完成硬件自检与 NovusFS Merkle 根哈希校验,确认未被篡改后写入共享内存并休眠。

阶段二 · B 核(AP)
作为 AP 加载主内核,从共享内存获取自检结果与硬件信息并校验自旋锁,进入内核主流程。

阶段三 · 用户态
boot-stage 读取 ESP 中的 APPS/DEMO.NUC,由内核 nuc_load 映射至 ring3,桌面与 Shell 随之启动。

关键设计原则

  • 自研不依赖任何外部开源项目
  • 无环模块之间无循环依赖
  • 稳定系统调用 ABI 长期不变
  • 模块化Make + Kbuild 按需编译
  • 容错用户态异常不拖垮内核
  • 安全签名 · CAP · Merkle 三重防护

把源码拉下来编译试试

使用 Make + Kbuild 体系,make menuconfig 选择模块,make 即可构建。