
关于
Obliteration 是一个用 Rust 重写的免费开源 PlayStation 4 内核。我们的目标不是在 PlayStation 4 上运行,而是使用专为 Obliteration 优化的定制虚拟化栈,在 Windows、Linux 和 macOS 上运行已转储的 PlayStation 4 系统软件。
本项目始于对 Kyty 的硬分叉。随后,我们决定使用 Kyty 和 Uplift 作为参考,从头开始重写整个项目,以帮助我们启动该项目。
我们的最终目标是成为一个宽松的、自由且开源的操作系统,针对游戏进行了优化,并且可以在各种硬件上运行。我们想要构建它的原因是:
- Windows 臃肿,并且微软不断向其中塞入太多东西。
- Linux 对初学者来说是一场噩梦。其许可证也使其不是专有硬件的理想选择。
- macOS 的硬件支持有限,且价格过于昂贵。你可以用同样的价格买到配备高端显卡的 PC。
- FreeBSD 和其他系统并非为游戏而设计。它们的目标要么是服务器,要么是一般桌面。
因此,我们想抓住这个机会,超越 PlayStation 4 模拟器,因为我们已经在构建一个操作系统内核。
项目标志和图标由 VocalFan 设计。
状态
目前我们还无法运行任何游戏。我们拥有的是一个可工作的 64-bit 内核以及用于运行它的 VMM。内核已成功设置 GDT、TSS、IDT 和 syscall 指令,虚拟内存系统现在基本可用。目前我们正在着手启动 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 Platform、KVM 或 Hypervisor 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 以外的许可证,我们无法接受这些代码,除非您是该代码的作者。