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

XFESystem

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

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

XFESystem

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 调度。文件与设置保存在 RAM 会话,关机后消失。当前开发基线及实际验证范围见 自研内核合并记录;早期独立分支记录保留于 0.3.0-dev.1 摘要。

当前能力与边界

  • 桌面、任务栏、文件、普通文本编辑器、终端和 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 启动计划通过,实际 QEMU 交互窗口已打开。范围和交付状态以 本轮验证摘要 为准;此前 0.3.0-dev.2 的记录保留于 合并摘要。

专用 U 盘现已更新为同一 0.3.0-dev.3 实验镜像:完整 128 MiB 回读、容量调整后的 SHA256 与真实盘尾备份 GPT 校验通过,句柄已关闭,辅助进程退出码 0,设备保持离线。首次管理员提权取消的记录保留,并已关联本次成功重试;详细身份、哈希和 Completion/Postflight 记录见本轮验证摘要。DeliveryComplete=true 表示本次实验镜像交付完成,实体启动与输入仍需实测,不代表完整发行版验收。

持久存储、实体网络、GPU/CUDA、USB HID、多屏、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 显式使用。历史发行/验收继续保留。