Hacker News new | ask | show | jobs
by spijdar 2001 days ago
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".

1 comments

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.