JailStation: FreeBSD for game consoles
"Abdelkader Boudih" <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.hackers |
|---|---|
| Message-ID | <[email protected]> |
Hi hackers, On July 23rd, I pushed JailStation to Codeberg. I will mirror it to GitHub later; I am currently experimenting with some Forgejo-based infrastructure. JailStation is FreeBSD for game consoles. This is not a platform for running SLOPOS games (Sony Licensed Obsolescence Proprietary Operating System), or MicroSlop Xbox games. We already have emulators for that with lot of angry people on it. JailStation is mainly two experiments. The first one is: what happens if an operating system considers the GPU non-optional ? Modern operating systems still largely treat the CPU as the center of the machine and the GPU as a device hanging off it. But on a modern console, the GPU is a huge part of the machine, and we know it is always there. So what if we invert that relationship? The CPU becomes more of a butler: it handles the things CPUs are good at, while the OS provides primitives for building GPU-first applications and moving suitable workloads away from the CPU. I dont know yet how far this idea can reasonably go. That is part of the experiment. The second experiment is fixed hardware. A normal FreeBSD installation has to discover what machine it landed on. It may have an Intel, AMD, or NVIDIA GPU, different chipsets, different storage controllers, different firmware, and thousands of possible combinations of hardware. A PlayStation does not wake up wondering what GPU it has. For a particular console revision, we already know most of the machine before the kernel starts. That gives us an interesting opportunity to investigate how much hardware probing, generic initialization, compatibility machinery, and boot-time work can simply disappear when the OS targets a known machine. The goal is not to turn FreeBSD into a PlayStation compatibility layer. The consoles are simply cheap, powerful, mass-produced computers with unusually well-defined hardware and lot of Slop ( PS4's **custom** APU output Display port , that get converted to HDMI by a second chip).. it custom, why didn't make it HDMI first ? There is also a preservation angle to this. With the recent direction toward increasingly digital and vendor-controlled consoles, I expect the traditional game console to largely disappear within the next decade or 2. At some point the question becomes: why buy a 1000$ vendor-locked brick just to play online ? I can buy a proper USB gamepad and a computer instead. But that leaves behind millions of perfectly capable machines. A PS4 does not suddenly become bad hardware because Sony stops caring about it. It still has an x86-64 CPU, an AMD GPU, unified memory, storage, networking, USB, and a remarkably consistent hardware platform. So another goal of JailStation is to make these machines boring computers. I have FreeBSD 16 running on the PS3-4-5 and the Xbox 360. And because this is FreeBSD, naturally the first thing I did after escaping the vendor's jail was build another os with jails. The project is still experimental, but it is now far enough along that I wanted to let the wider FreeBSD community know about it and get feedback from people interested in GPU, boot, console, and platform work. I had lot of small experiment in multiple repos , so now i spend some free time to centralize them and retest them. So in short, in JS the kernel is not built for each Station with only options that exist in that console. No firewire, pcmcia, thunderbolt in a PS3-5. And if all of this sounds crazy, that probably means I’m on the right path. P.S. All of this was built by AGI, with ASI providing the occasional approving *nod*. AI was only used to double-check things before I commit. For disclosure purposes: AGI: Abdelkader General Intelligence ASI: Adrian Specialized Intelligence (Adrian Chadd) Regards, Abdelkader (Not ASI yet)