The Xbox Operating System

Sorry it's been a while since my last post - blogging is hard to keep up with, especially when it's not your job.  I'm off to Japan next week, so it will probably be another week of silence before you hear from me again.

One of the first questions I get when someone hears I work on Xbox is "So, what operating system do you guys use?  Windows 2000, right?"  I am honestly not sure where the Win2K misperception comes from, but Xbox runs a custom operating system built from the ground up.  While our operating system exports many of the same APIs found in Win32 (e.g. CreateThread or WaitForSingleObject), not everything is there.  For instance, there is no use for CreateWindow on Xbox - all graphics are done through (our own flavor of) Direct3D.

There are a number of reasons both Xbox and 360 have their own OS.  First, it gives Xbox a chance to own its own destiny in terms of architecture.  When you have your own operating system, it's easy to go in and change things.  Second comes performance.  There isn't much of a hardware abstraction layer on Xbox - most stuff talks almost directly to hardware.  This eliminates a lot of software overhead you might find on a PC.  Third is security.  With our own operating system, it also becomes a lot easier to design & implement our own security architecture.  As the community is finding out, there is a lot of custom stuff.

The operating system is more than just the kernel.  On Windows, you have critical components such as explorer.exe, shlwapi.dll, user32.dll, and others that are required for your system to function.  On Xbox 360, we have similarly critical components.  When you see a required system update from Xbox Live, we are mostly updating these critical components with fixes as well as new features.

That's a primer on our operating system.  I wouldn't want to spill all my guts in one post 'cuz then I'd have nothing to talk about later on.  Let us know if you want to know more about the OS in the comments...