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.
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.
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.