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

XFESystem

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

公开
关注 0 Fork 0 Star 0
UTF-8

XFESystem

XFESystem 默认使用 C# 自研裸机内核:页分配与映射、中断、单 BSP 调度、线程/事件、PS/2 输入及 framebuffer 平台由本项目实现。原有 Desktop、Browser、Documents 与 Terminal 运行在外部 Microsoft .NET 10 NativeAOT 上。默认 解决方案 和构建不引用 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 会话,关机后消失。最新源码、镜像及实际验证范围见 2026-10-15 独立内核摘要。

当前能力与边界

  • 桌面、任务栏、文件、普通文本编辑器、终端和 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、实际画面和键盘编辑必须分别验证。
  • 终端使用真实 ANSI 文本单元和 XFEConsole 2.6.0 API;嵌入的真实 .NET PE 示例通过受限 ConsoleIL 执行和绑定。默认 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.1 的同一镜像已通过 QEMU 1/8 虚拟 CPU 的完整应用验收:实际 RAM 文件保存重开、JavaScript DOM 结果 12、Monaco 三行字形与颜色,以及 PS/2 输入后第四行模型和新像素。强化 Probe 与 14 组、1,137 项宿主检查亦通过。发行 ZIP 已完整回读,PowerShell 5.1 启动计划通过;该计划不代表打开交互窗口或实体硬件通过。U 盘结果以验证摘要内的实际完成记录为准。

专用 U 盘已更新为该独立内核实验镜像:完整 128 MiB 与真实盘尾 GPT 回读通过,句柄关闭、辅助进程退出,设备保持离线。前两次写前失败/提权取消记录保留并由后续成功解决;这不代表实体启动或输入验收通过。

持久存储、原生网络/TLS、GPU/CUDA、USB HID、多屏、SMP、独立用户进程隔离及长期稳定性尚未完成。实体启动/输入兼容尚未验收。浏览器不是完整 Chromium,没有 Worker、完整语言服务器、WebAssembly 或完整 CSS/SVG/shaping 支持。Jint 的反射/动态代码路径仍有 NativeAOT 裁剪和动态代码警告,当前验收不证明全部 Jint/.NET API 兼容。历史网络/GPU或后台编辑器结果不转移为本路径能力。

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 --virtual-cpus 8 --timeout 240

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

打开与打包已验证镜像

选择通过完整桌面/浏览器验收且清理成功的回执:

$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 文档,旧内核只通过 BuildKernel.ps1 -LegacyCosmos 或 XFESystem.Legacy.slnx 显式使用。历史发行/验收继续保留。