Hacker News new | ask | show | jobs
by est31 2002 days ago
The Xbox operating system does base on Windows though. It's just locked down in some areas and lacks some higher level builtin programs of Windows and has a different launcher/DE. It's a half-lie at most.

Also, the parts of Windows that Xbox does ship with are the most important ones for Microsoft shareholders. Nobody would want to edit their documents from their Xbox. That would in fact be harmful because some people might not buy a proper PC then (as is observable years later with the advent of smartphones). But the Xbox uses the DirectX API as well as builds on all the Windows-isms. So if you built a game for Windows, it's not hard to port it to Xbox, and vice versa.

2 comments

It's a little more complicated than that.

A lot of the code in the NT kernel running on XBox was written specifically for the console. The filesystem drivers, the TCP/IP stack, the HAL, and possibly other components were rewritten from scratch for XBox specifically. It wasn't just locked down, a significant portion of "Windows" was entirely missing, and a decent chunk was replaced with new, Windows-incompatible code.

I suppose it depends on what "based on" means, though. It is technically based on Windows, but not like most people would take that to mean. e.g, when you say "based on linux", you don't take it to mean, "based on our custom kernel based on the initial loader and memory management and debugger functions in linux with the rest scrapped and replaced with a custom stack".

Using a little hyperbole there, but yeah. It does use DirectX, and is more Windows than not. But I can definitely see why someone might see it as a "lie" that it's "based on Windows".

My reading of https://en.wikipedia.org/wiki/Xbox_system_software + https://en.wikipedia.org/wiki/MinWin was that it was more like an embedded device that does in fact use Linux as the kernel but throws out the userspace and runs busybox + custom code, or even further like https://gokrazy.org/ - at which point it is Linux, but ... I mean, there's a reason why people don't think of Android as being a Linux system.
It's way less Windows than Android is Linux.

They took out the idea of processes for instance. A single executable runs at a time, and it's dynamically linked against the kernel and running in kernel space. There are no system calls instructions used, just normal call instructions that get fixed up on load.

USB, network, and graphics stacks all live in the executable, not the kernel provided by the box (despite everything running in kernel space).

I've been writing a Rust based devkit for the Original Xbox recently and it feels more like uCOS than Windows.

Oh, it's a NT-shaped unikernel. That's actually pretty neat:)
Yeah, in a lot of ways RTOSes in general are unikernels, and the concept is wayyyy older than the webdev side of the industry gives credit for.

They even derive from the same sorta lineage with the ancient SABRE (now z/TPF) being both the first major API server and the first major real time OS.

MinWin is arguably the windows kernel without most of the userspace. Though it's still massive and contains a lot of userspace: 25MB on disk, 40MB in memory.

The xbox kernel has absolutely no connection, it forked off at a completely different point and was hacked and slashed until it fits into just 256KB.

I’ve had coworkers who were on the original Xbox team and they told me that the OS was not Windows. One of the things about the Xbox OS is that the OS itself gets a fixed timeslice each frame to do whatever it needs while the game is running, in order to make it so the game can get the rest of the frame to run. This sounds to me like a decision that has far-reaching consequences.

I’m sure that it shares plenty code with Windows. You might say that the OS is based on Windows. But it’s definitely not Windows.

Hmmm. So I estimated too much Windows in Xbox's OS. Thanks for your anecdotes.
By that standard, is a Hyper-V server running Windows? AFAIK, that's also just running NT as a guest.
I too remember the "Xbox kernel is not Windows" narratives in 2000s-2010s. Clearly Microsoft then considered it "not Windows", IIRC especially on Xbox 360. It's not that a VMM that reside parallel to the Xbox kernel makes it not Windows or not. Sometimes they said it's "built with technologies from Windows" or sometimes it was "built specifically for Xbox" but they maintained it's not Windows.
Yes, Hyper-V is a type 1 hypervisor, Windows is just another guest OS.