obhq/obliteration

GitHub: obhq/obliteration

一个使用 Rust 从零重写的实验性 PS4 内核,通过定制虚拟化技术让 PS4 系统软件在 PC 上运行。

Stars: 782 | Forks: 24

Logo

## 关于 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/07f8151e8b111056.svg)](https://github.com/obhq/obliteration/actions/workflows/main.yml) [![Zulip](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://obkrnl.zulipchat.com) Obliteration 是一个使用 Rust 重写的免费开源 PlayStation 4 内核。我们的目标不是在 PlayStation 4 上运行,而是通过专门为 Obliteration 优化的定制虚拟化技术栈,在 Windows、Linux 和 macOS 上运行转储的 PlayStation 4 系统软件。

Architecture

该项目最初是 [Kyty](https://github.com/InoriRus/Kyty) 的一个硬分叉。随后我们决定参考 Kyty 和 [Uplift](https://github.com/idc/uplift),从零开始重写整个项目,以帮助我们启动这项工作。 我们的最终目标是成为一个宽松许可的、针对游戏优化的免费开源操作系统,并能在多种硬件上运行。我们想要构建它的原因如下: - Windows 过于臃肿,而且 Microsoft 一直在往里面塞入太多的东西。 - Linux 对初学者来说是一场噩梦。其许可证也使其不适合作为专有硬件的选择。 - macOS 的硬件选择有限,且价格过于昂贵。同样的价格可以买到配备高端显卡的 PC。 - FreeBSD 和其他系统并非为游戏设计。它们的目标要么是服务器,要么是通用桌面。 所以既然我们已经在构建操作系统内核,我们希望借此机会超越 PlayStation 4 模拟器的范畴。 项目的 Logo 和图标由 [VocalFan](https://github.com/VocalFan) 设计。 ## 状态 目前我们还无法运行任何游戏。我们已经拥有了一个可运行的 [64 位](https://en.wikipedia.org/wiki/Long_mode)内核以及用于运行它的 VMM。该内核已成功设置 [GDT](https://en.wikipedia.org/wiki/Global_Descriptor_Table)、[TSS](https://en.wikipedia.org/wiki/Task_state_segment)、[IDT](https://en.wikipedia.org/wiki/Interrupt_descriptor_table) 和 [syscall](https://en.wikipedia.org/wiki/System_call) 指令。目前我们正在开发 [UMA](https://man.freebsd.org/cgi/man.cgi?query=uma) 系统。一旦完成,我们将开始从我们的[旧版用户模式内核](https://github.com/obhq/obliteration/tree/main/legacy/src)迁移代码,然后执行 `mini-syscore.elf`。 进度较慢的原因是我们试图在不进行存根(stubbing)的情况下尽可能完整地实现内核。 ## 主要特性 - 跨平台,为每个平台提供原生二进制文件。 - 通过直接使用 [Windows Hypervisor Platform](https://learn.microsoft.com/en-us/virtualization/api/#windows-hypervisor-platform)、[KVM](https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine) 或 [Hypervisor Framework](https://developer.apple.com/documentation/hypervisor),配合定制虚拟设备优化的 MMIO,实现接近原生的性能。 - 内核行为与 PlayStation 4 内核几乎完全一致。尽管目前还不能运行任何游戏,但我们相信这一选择将使我们能够拥有极高的兼容性。 ## 系统要求 - 支持 [SLAT](https://en.wikipedia.org/wiki/Second_Level_Address_Translation) 的 CPU。 - 16 GB 内存。 - 64 位操作系统。 ## 获取每日构建版 请注意,如上所述,目前我们还无法运行任何游戏。但如果您想尝试或协助测试,可以在[此处](https://github.com/obhq/obliteration/actions/workflows/main.yml)下载最新提交的二进制文件。您**必须**登录 GitHub,否则将无法下载文件。 我们的开发人员使用 Linux,因此 Windows 和 macOS 用户可能会遇到一些未实现的功能。欢迎提交 PR 来实现这些功能,或者如果您愿意成为测试者,可以报告问题,我们会尝试为您实现以便测试。 ## 构建与开发 有关 Obliteration 开发及从源代码构建的信息,请参阅我们的[开发者文档](https://dev.obliteration.net)。 ### UI 图标 我们的 UI 使用了来自 https://materialdesignicons.com 的图标。 ## 许可证 所有源代码均根据 MIT 许可证或 Apache 许可证 2.0 版;或两者之一进行许可。 除非您明确声明,否则根据 Apache-2.0 许可证的定义,您有意提交以包含在 Obliteration 中的任何贡献均应按上述方式双重许可,不附带任何额外条款或条件。 请注意,如果其他 PlayStation 4 模拟器的代码是根据 MIT 或 Apache-2.0 以外的许可证授权的,除非您是该代码的作者,否则我们无法接受任何此类代码。
标签:Kyty, Obliteration, PlayStation 4, PS4, Rust, Uplift, VMM, x86-64, 云资产清单, 仿真器, 内核, 内核开发, 可视化界面, 实验性项目, 底层开发, 开源, 操作系统, 游戏, 游戏主机, 系统开发, 系统架构, 系统软件, 网络流量审计, 虚拟化, 虚拟机监控程序, 逆向工程, 通知系统