XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
README.md

XFESystem

2026-10-16:其他磁盘已接入读写。 0.3.0-dev.4-disks.1 的 Console / Desktop 两个独立版本支持 NVMe、AHCI SATA 和其他 USB BOT 盘的 NTFS/FAT/exFAT 数据分区,可创建、读写、修改、重命名、删除文件,并读取兼容 ConsoleIL 的外部 .NET 控制台应用。图形文件管理器通过 Disks 打开,终端使用 ls /Disks。17 组、1496 项宿主检查、两版实际双冷启动和独立逐卷回读通过;ZIP 全回读与 Windows PowerShell 5.1 启动计划通过。本轮管理员提升被取消,尚未更新实体 U 盘,已保留未写记录。当前单文件 4 MiB,脏卷/休眠卷只读,实体存储及掉电行为未验收。使用与限制、验证与交付状态。

2026-10-16:文件和设置已支持保存到启动 U 盘。 0.3.0-dev.4-usb-storage.1 提供分别构建的 Console / Desktop 256 MiB 单系统镜像,专用 U 盘已更新为 Desktop 并完整回读校验。X:\UsbFiles 读取 U 盘 FAT32 的 UserFiles,可运行符合 ConsoleIL 范围的外部 .NET 控制台程序集;工作区和主题设置在冷启动后恢复。无可用启动 USB BOT 时明确回退到 RAM。1461 项宿主检查、两版实际 USB 冷启动和原有应用验收通过;实体持久化和掉电行为仍待实测。使用与限制、验证与交付记录。

2026-10-15 的 0.3.0-dev.4-monaco.1 已合并品牌启动动画:按需分析 Jint 函数、复用标识符/属性键,直接创建最终文件模型并按版本缓存 C# 分词。1411 项宿主检查、847 项输入绑定及原生双系统验收通过。同动画基线下完整首显实测 10.219 → 9.687 秒,热启动中位数 6.2185 → 6.0315 秒,仍未达到一秒目标;严格逐轮像素对照中的基线变体与管理员提升被取消、尚未写入的 U 盘状态均如实记录。详见 Monaco 初始化验证记录。

XFESystem 默认使用 C# 自研裸机内核:页分配与映射、中断、单 BSP 调度、线程/事件、PS/2 输入及 framebuffer 平台由本项目实现。原有 Desktop、Browser、Documents 与 Terminal 运行在外部 Microsoft .NET 10 NativeAOT 上。当前开发分支 codex/csharp-system 的默认 解决方案、构建、启动和打包统一使用自研内核,不引用 Cosmos;引导仍使用 Limine,内核 bootstrap 使用 bflat Zero,C/ELF 工具使用 LLVM,数学函数使用 musl。GC、EH、BCL、编译器、字体解析器和浏览器库的来源见 THIRD_PARTY.md。

当前目标是 x86_64、QEMU q35、UEFI、1 GiB RAM、TCG。即使配置 8 个虚拟 CPU,仍只有 BSP 执行,托管线程由该 CPU 调度。启动 USB BOT 存储可用时,文件与设置保存到 U 盘工作区;无法匹配启动 U 盘时明确回退到 RAM。详见 U 盘工作区说明。当前开发基线及实际验证范围见 自研内核合并记录;早期独立分支记录保留于 0.3.0-dev.1 摘要。

两个独立版本

从 0.3.0-dev.4 起,共享自研 C# 内核和官方 .NET 10 NativeAOT,分别编译两个入口、两个内核和两个启动包:

版本 启动后的界面 应用入口
Console 参考旧 Rust 版的深色全屏控制台、品牌页眉、状态栏和文本光标;RAM 文件命令、历史、光标编辑与 ConsoleIL Source/XFESystem.NativeRuntime/ConsoleApplication/ConsoleApplication.csproj
Desktop 原有图形桌面、窗口、任务栏、文件、浏览器、文档与终端 Source/XFESystem.NativeRuntime/Application/NativeApplication.csproj

Console 入口不初始化桌面、窗口管理器、浏览器、Monaco、文档或网络,不链接这些应用依赖;直接使用 framebuffer 输出文字,使用现有 PS/2 或 xHCI HID 输入。外部字体和运行时许可仍适用。两版均已接入启动 U 盘工作区,保留明确的 RAM 回退。2026-10-16 用户纠正交付方式:一张镜像、一次 U 盘写入只包含其中一个系统,启动后直接进入所选版本,不提供 Console / Desktop 选择菜单。本轮选择 Desktop。 两个版本继续分别提供独立镜像和启动包;切换版本需要重新写入另一张单系统镜像。

# 分别构建;省略 Edition 时仍默认 Desktop
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\IndependentKernel\BuildSystem.ps1 -Edition Console
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\IndependentKernel\BuildSystem.ps1 -Edition Desktop

# 使用各自构建回执中的实际 KernelPath 验收
python .\Tools\IndependentKernel\TestBoot.py <Console的Kernel.elf> --console --virtual-cpus 8 --timeout 180
python .\Tools\IndependentKernel\TestBoot.py <Desktop的Kernel.elf> --desktop --browser --documents --bing --virtual-cpus 8 --timeout 360

分别向 Tools/OpenCSharp.ps1 或 Tools/PackageCSharp.ps1 传入 -Edition Console / -Edition Desktop 及对应版本的镜像和验收回执。控制台验收不替代图形版的 Bing、Monaco、Markdown 和终端验收。版本拆分与单系统写入方式见 独立版本说明。镜像生成器已移除组合两个内核的入口,写盘器拒绝旧双启动配置;历史双启动回执只用于只读审计。

2026-10-16 的 0.3.0-dev.4-single.1 已分别生成 Console / Desktop 单系统镜像和 ZIP。16 组、1451 项宿主检查、单系统策略及写盘保护检查通过;两版独立 QEMU 动画和应用验收、ZIP 全回读、解压哈希和 Windows PowerShell 5.1 启动计划通过。专用 U 盘已按用户选择写入 Desktop 单系统,完整 128 MiB 与实际盘尾备份 GPT 校验通过,保持离线。源与回读哈希、源码绑定、历史失败见 单系统交付摘要。

现有 run X:\Programs\ManagedHello\ManagedHello.dll 能运行符合 ConsoleIL 指令/API 范围的标准 .NET C# 控制台程序集;这是真实 PE 解释执行,不是预设输出,也不是任意 .NET 应用兼容。本版通过启动 U 盘 FAT32 的 UserFiles 文件夹导入外部文件,映射为只读的 X:\UsbFiles;工作文件和设置保存到 Workspace.bin。可执行 run X:\UsbFiles\UsbHello.dll,也可复制到工作区再运行。程序运行兼容性与其他盘文件读取是两个独立功能;内核采用 NativeAOT 不代表已经具备通用 DLL 动态加载。

以下 2026-10-15 的双启动交付属于历史记录;后续按上述单系统政策交付。0.3.0-dev.4 当时的 16 组、1332 项宿主检查通过;两版独立镜像及同一 256 MiB 双启动镜像的两个实际菜单入口均通过 QEMU 8 虚拟 CPU(实际一个 BSP)验收。两个独立 ZIP 已完整回读、解压核验,并通过重定位后的 Windows PowerShell 5.1 启动计划。专用 U 盘已更新为双启动镜像,完整回读与真实盘尾 GPT 校验通过,保持离线。实际哈希、源码绑定、保留的失败和复测记录见 本轮验证摘要。实体启动与输入仍待验收,当前不是完整发行版。

2026-10-15 的 0.3.0-dev.4-loadspeed.1 修复了 CSS 解析的二次方扫描,按选择器右端筛选候选规则,复用 DOM 引导语法及同源 HTTP/TLS 连接,并移除文档加载任务之间的 50 ms 轮询空档。同一固定网页在原生 QEMU 中的三次加载中位数由 921 ms 降至 375 ms,网页区域逐像素一致;九个实际资源请求由九条 TCP 连接降为一条。合并后的 Markdown 验收样例首帧为 0.44–0.90 秒,完整 Monaco 初始化尚未稳定提速。16 组、1377 项宿主检查、独立图形镜像与新双启动镜像的两个入口均通过验收;新图形 ZIP 和专用双启动 U 盘已完整校验。原始计时、Chromium 源码对照、复测命令和能力边界见 加载优化验证记录。

2026-10-15 的 0.3.0-dev.4-bootsplash.1 为 Console / Desktop 接入同一套品牌启动动画:黑底蓝色星环 Logo 与 XFESystem 字样,主动画约 2.4 秒。主动画结束且应用完整首帧就绪后直接进入系统;尚未就绪则在下方显示反向旋转的分段加载环。正常加载不显示阶段编号、提示语或进度条,原有 Desktop / Console 菜单和按需 F2 显示设置保留。可查看 动画预览 和 实现说明。

最终 16 组、1390 项宿主检查通过;两个独立镜像及同一双启动镜像的两个入口均完成实际 QEMU 动画截图和原有应用验收。等待动画用不启动应用的原生诊断镜像单独验证,无串口启动也有独立画面记录。两个新 ZIP 全回读、解压校验与 Windows PowerShell 5.1 启动计划通过;专用 U 盘已完整回读 256 MiB、校验真实盘尾 GPT 并保持离线。哈希、源码绑定与能力边界见 本版验证摘要,实体启动和输入仍待复测。

当前能力与边界

  • 桌面、任务栏、文件、普通文本编辑器、终端和 Settings,继续使用现有公共接口。PS/2 报告来自实际 8042 初始化与设备队列;Win/Alt/Ctrl 快捷键、鼠标位移和输入丢失恢复使用同一生产解码器。当前为 US 键盘布局,没有 USB HID/输入法。
  • CPU framebuffer 绘制、裁剪、alpha 混合、场景/Web 缓存和独立字体包装为自研;TrueType 解析/抗锯齿直接引用固定 MIT LunarFonts 原文件,字形使用已授权字体。
  • 有限 DOM/CSS/布局与绘制结合 AngleSharp、Jint/Acornima;文档预览使用 Markdig/HtmlSanitizer、自家网站快照及其中的第三方资源。官方 Monaco 0.52.2 核心在该浏览器中运行。模型 ready、实际画面和键盘编辑必须分别验证。
  • 原生 QEMU e1000 网络、ARP/IPv4/DNS/TCP 与 BouncyCastle TLS 已接入独立导航 worker,使用显式 Mozilla 根证书和硬件随机源,验证证书链、主机名、有效期与用途。当前仅支持 8086:100e 和静态 user NAT,RTC 需设为 UTC;实体网卡与 DHCP 尚未适配。来源、原生证据和兼容边界见 原生 HTTPS 与经典终端记录。
  • 终端恢复深色蓝字命令行,提供 RAM 文件命令、64 条历史、光标编辑和 Delete/Insert,移除 Run Demo 工具栏。真实 ANSI 文本单元和 XFEConsole 2.6.0 API 继续使用;实际 .NET PE 示例通过受限 ConsoleIL 在独立程序 worker 中执行,完成后输出到终端。默认 System.Console.Out/Error 显式绑定串口 TextWriter,不提供完整 POSIX tty 或任意 .NET 程序装载能力。

官方运行时的 GC、弱引用/终结器、硬件异常到托管 EH、托管线程、Monitor/TLS、压缩 GC 期间 mutator 根与 join 在独立 Probe 中验收。完整桌面应用另有与其自身源码/镜像绑定的输入、RAM 保存重开、JavaScript、Monaco、ConsoleIL 与终端验收;只认实际回执和 framebuffer 画面,不把宿主编译当作裸机运行。

此前 0.3.0-dev.3 使用同一最终镜像通过 QEMU 8 虚拟 CPU(实际一个 BSP)的原生 HTTPS Bing、JavaScript DOM 结果 12、Monaco 实际字形/颜色和第四行键盘编辑、Markdown 八项流程及经典终端九次命令验收。1314 项宿主检查通过;同一内核的单 CPU 随机源缺失测试正确拒绝 HTTPS 并保持桌面响应。地址栏后台刷新覆盖输入、裸机默认 LF 导致提示符缩进的问题均有实际复现与修复。该版 ZIP 完整回读、重定位验证和 PowerShell 5.1 启动计划通过。历史范围和交付状态见 0.3.0-dev.3 验证摘要;此前 0.3.0-dev.2 的记录保留于 合并摘要。

专用 U 盘此前的 0.3.0-dev.3 更新、首次管理员提权取消及后续成功重试均保留历史记录,详见该版摘要。最新交付以 U 盘持久化摘要 为准。DeliveryComplete=true 表示实验镜像交付完成,实体启动与输入仍需实测,不代表完整发行版验收。

RTX 5090 的只读硬件与 CUDA 前提诊断已合入双启动版本;Windows 宿主 CUDA 参考结果不代表 XFESystem 内 CUDA 已实现。详见 原生 CUDA 状态。

独立内核现已接入 C# xHCI/USB HID,经过关闭 PS/2 的 QEMU 集线器输入与重新插入验收;实体 Corsair 键鼠兼容仍待测试。启动 U 盘工作区已通过 QEMU 冷启动持久化验证;实体存储、实体网络、GPU/CUDA、多屏、SMP、独立用户进程隔离及长期稳定性仍未验收。实体启动/输入兼容尚未验收。浏览器没有 Worker、完整语言服务器、WebAssembly、图片/背景图或完整 CSS/SVG/shaping 支持,Bing 的页面布局仍不完整。Jint 的反射/动态代码路径仍有 NativeAOT 裁剪和动态代码警告,当前验收不证明全部 Jint/.NET API 兼容。TLS 尚无吊销查询、CT、公共后缀表及外部 distrust 元数据。后台编辑、独立导航与字体快照已接入自研运行时;实际 240 Hz 与完整预览一秒目标仍未通过。

Windows 构建与验收

需要 Windows x64、global.json 固定的 .NET SDK、PowerShell、Python/Pillow,以及锁定的 QEMU、EDK2、Limine、LLVM 和 bflat。基础工具由 scripts/fetch-deps.ps1 校验下载/解包;官方 NativeAOT 包及新应用依赖由各自锁文件固定。完整许可在 独立许可证目录。

在仓库根目录执行:

powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\BootstrapCSharp.ps1 -Build
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\TestCSharp.ps1

默认 Tools/CSharpBoot/BuildKernel.ps1 转入 Tools/IndependentKernel/BuildSystem.ps1,编译真实 NativeApplication、完整官方运行时移植与独立 Kernel ELF。也可直接运行 BuildSystem.ps1。-DiagnosticProbe 仅构建运行时诊断应用;-RestoreOnly 只恢复/校验依赖。dotnet build XFESystem.slnx 是托管宿主构建,不生成可验收启动镜像。

从本轮 build/IndependentKernel/System-*/Result.json 读取实际 KernelPath,执行:

python .\Tools\IndependentKernel\TestBoot.py <Kernel.elf的实际路径> --desktop --browser --documents --bing --virtual-cpus 8 --timeout 240

回执位于新的 build/IndependentKernel/Proof-* 目录,包含镜像/内核/源码 SHA256、串口、QMP 实际设备输入和 framebuffer 截图。运行时 Probe 则用 --runtime。不同源码、镜像、内存/CPU配置和验收要求的结果不能互相替代。

打开与打包已验证镜像

选择通过完整桌面、浏览器、文档、经典终端和原生 Bing 验收且清理成功的同一镜像回执:

$proof = '.\build\IndependentKernel\Proof-实际编号'
powershell -NoProfile -ExecutionPolicy Bypass -File .\Tools\OpenCSharp.ps1 -ImagePath "$proof\System.img" -VerifiedBootResult "$proof\Result.json" -Acceleration tcg

独立启动器核对镜像、内核、源码及完整应用验收,使用私有镜像与固件变量副本。打包使用 Tools/IndependentKernel/Package.ps1 或兼容包装入口 Tools/PackageCSharp.ps1,必须提供对应的通过宿主和来宾回执;完整新许可证目录随包携带。已有发行目录和 ZIP 保留。专用启动 U 盘的自动安全更新及提交推送遵守 AGENTS.md,介质写入校验不替代实体启动验收。

迁移结构、源码绑定及细节见 独立内核说明。迁移前的 Cosmos 预览说明已移到 Legacy 文档,旧内核只通过 Tools/CSharpBoot/BuildCosmosKernel.ps1 或 XFESystem.Legacy.slnx 显式使用。历史发行/验收继续保留。