ITADN
obhq/obliteration
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Logo

关于

CI Zulip

Obliteration 是一个用 Rust 重写的免费开源 PlayStation 4 内核。我们的目标不是在 PlayStation 4 上运行,而是使用专为 Obliteration 优化的定制虚拟化栈,在 Windows、Linux 和 macOS 上运行已转储的 PlayStation 4 系统软件。

Architecture

本项目始于对 Kyty 的硬分叉。随后,我们决定使用 Kyty 和 Uplift 作为参考,从头开始重写整个项目,以帮助我们启动该项目。

我们的最终目标是成为一个宽松的、自由且开源的操作系统,针对游戏进行了优化,并且可以在各种硬件上运行。我们想要构建它的原因是:

  • Windows 臃肿,并且微软不断向其中塞入太多东西。
  • Linux 对初学者来说是一场噩梦。其许可证也使其不是专有硬件的理想选择。
  • macOS 的硬件支持有限,且价格过于昂贵。你可以用同样的价格买到配备高端显卡的 PC。
  • FreeBSD 和其他系统并非为游戏而设计。它们的目标要么是服务器,要么是一般桌面。

因此,我们想抓住这个机会,超越 PlayStation 4 模拟器,因为我们已经在构建一个操作系统内核。

项目标志和图标由 VocalFan 设计。

状态

目前我们还无法运行任何游戏。我们拥有的是一个可工作的 64-bit 内核以及用于运行它的 VMM。内核已成功设置 GDTTSSIDTsyscall 指令,虚拟内存系统现在基本可用。目前我们正在着手启动 mini-syscore.elf

耗时如此之久,是因为我们尽可能避免使用桩代码来实现我们的内核。困难之处不在于编写代码,而在于精确理解 PlayStation 4 内核的工作机制。以下是我们内核在 2026 年 7 月 12 日的日志:

[I]: Starting Obliteration Kernel on KVM (x86_64 7.0.13-arch1-2).
     cpu_vendor                 : AuthenticAMD × 8
     cpu_id                     : 0x740f30
     boot_parameter.idps.product: UC2/USA/CANADA
     physfree                   : 0x21a4000
     kernel/src/main.rs:57
[I]: Memory map loaded with 2 maps.
     initial_memory_size: 8554659840 (8.55 GB)
     basemem            : 0x280
     boot_address       : 0x9c000
     mptramp_pagetables : 0x90000
     Maxmem             : 0x80000
     0x0000000000000000-0x0000000000090000 (589.82 kB)
     0x0000000002244000-0x0000000200000000 (8.55 GB)
     kernel/src/main.rs:120
[I]: DMEM initialized.
     Mode  : 20 (GL8 release)
     Maxmem: 0x80000
     0x0000000000000000-0x0000000000090000 (589.82 kB)
     0x0000000002244000-0x0000000060000000 (1.57 GB)
     0x00000001b8000000-0x00000001fd600000 (1.16 GB)
     0x00000001ff000000-0x0000000200000000 (16.78 MB)
     kernel/src/main.rs:147
[I]: Available physical memory populated.
     Maxmem    : 0x80000
     physmem   : 168210
     phys_avail:
     0x0000000000004000-0x0000000000090000 (573.44 kB)
     0x0000000002244000-0x0000000060000000 (1.57 GB)
     0x00000001b8000000-0x00000001fd600000 (1.16 GB)
     0x00000001ff000000-0x00000001ffff0000 (16.71 MB)
     dump_avail:
     0x0000000000000000-0x0000000000090000 (589.82 kB)
     0x0000000002244000-0x0000000060000000 (1.57 GB)
     0x00000001b8000000-0x00000001fd600000 (1.16 GB)
     0x00000001ff000000-0x0000000200000000 (16.78 MB)
     kernel/src/main.rs:257
[I]: VM stats initialized.
     v_page_count[0]: 102670
     v_free_count[0]: 102670
     v_page_count[1]: 65536
     kernel/src/vm/mod.rs:115
[I]: Activating stage 2 heap.
     kernel/src/main.rs:286
[I]: Creating init process.
     kernel/src/main.rs:514
[E]: Kernel panic - not yet implemented.
     kernel/src/proc/process.rs:42

主要特性

  • 跨平台,为每个平台提供原生二进制文件。
  • 通过直接使用 Windows Hypervisor PlatformKVMHypervisor Framework 以及为优化 MMIO 而定制的虚拟设备,实现接近原生的性能。
  • 内核行为与 PlayStation 4 内核几乎完全一致。虽然目前我们还无法运行任何游戏,但我们相信在此做出的选择将使我们拥有极高的兼容性。

系统要求

  • 支持 SLAT 的 CPU。
  • 16 GB 内存。
  • 64 位操作系统。

获取每日构建版本

请注意,如上所述,我们目前尚无法运行任何游戏。但如果您想尝试或协助测试,可以从最新提交中 此处 下载二进制文件。您必须登录 GitHub,否则将无法下载文件。

我们的开发人员使用 Linux,因此 Windows 和 macOS 用户可能会遇到一些未实现的功能。欢迎提交 PR 来实现这些功能,或者如果您愿意成为测试人员,可以报告一个问题,以便我们尝试为您实现以供测试。

构建与开发

有关 Obliteration 开发和从源码构建的信息,可在我们的 开发者文档 中找到。

UI 图标

我们使用来自 https://materialdesignicons.com 的图标用于 UI。

许可证

所有源代码均根据 MIT 许可证或 Apache 许可证,第 2.0 版;或两者兼有进行授权。

除非您明确另有说明,否则您有意提交以纳入 Obliteration 的任何贡献,如 Apache-2.0 许可证所定义,均应按上述方式双重授权,不附加任何额外条款或条件。

请注意,如果其他 PlayStation 4 模拟器的代码采用 MIT 或 Apache-2.0 以外的许可证,我们无法接受这些代码,除非您是该代码的作者。