« Xbox 360 Architecture (index)

Xbox 360 Architecture

Chapter 7: Operating System


Table of Contents

  1. Overview
    1. A tumultuous progress
    2. A recallable security design
  2. Architecture
    1. The Hypervisor
    2. The Kernel
    3. The User land
  3. Backwards compatibility
  4. Storage medium
    1. Boot ROM
    2. Internal NAND
    3. Memory Units and HDDs
    4. External USB
  5. Boot process
    1. Multicore chaos
    2. Boot procedure
  6. Updatability
  7. Interactive shell
    1. The 'Blades' dashboard (2005)
    2. The 'New Xbox Experience' (2008)
    3. The 'Kinect' update (2010)
    4. The 'Metro' revamp (2011)

The Xbox 360 was subject to the same needs and fashions that the PlayStation 3 went through. So the former offers many services, including online gaming (through Xbox Live), a digital marketplace, media player, file system explorer (albeit extremely simple) and other utilities.

Overview

The Operating System of the Xbox 360 is a collection of bare-metal utilities and userland applications tightly squashed together to fit into 16 MB of NAND. Just like the PlayStation 3, Microsoft built their OS to provide multimedia and networking (i.e. multi-player) capabilities, plus the ability to play games and secure the system from external intrusion.

That being said, the system contains a few core components that take care of the low-level area of this console (hardware access, security and resource management). The rest is composed of applications (i.e. the splash animation, the interactive shell called 'Dashboard' and the game itself) and user data (i.e. game saves, user profile, network settings).

A tumultuous progress

Throughout the life of this console, I noticed a more chaotic evolution than its competitor, which involved constant re-branding and radical redesigns of the user interface. I presume Microsoft was trying to shift from one target audience to another. So, to understand this section better, I've organised its evolution into these periods:

A recallable security design

If you recall my deconstruction of the PlayStation 3's operating system, the latter was divided into three areas:

This design is correlated to the PPU's privilege levels (affecting both Cell and Xenon) which prevents 'casual' applications, like games, from accessing sensitive resources, such as decryption keys.

IBM enacted three privileges (instead of just two) to allow multiple operating systems running at the same time. With this idea, each OS would only live under the two lowest levels while the highest level would be reserved for the program supervising all operating systems. In practice, the PlayStation 3 and Xbox 360 only require a single operating system (except for OtherOS, but that was quickly scrapped). Consequently, Sony and Microsoft designed a hypervisor that enforces their respective security model and performs memory management tasks. Conversely, the architectural differences between Cell and Xenon led to very distinct implementations of hypervisors, so each is subject to unique flaws and strengths.

Image
Diagram showing how the components of the Xbox operating system fit in Xenon's privilege levels.

The most notable difference between the security model of the Xbox 360 and the PlayStation 3, is that the former runs both the Kernel and user-space programs under the same privilege mode (the second level) . So, all critical tasks rest within Hypervisor, which enjoys extra acceleration from the hardware side (I'll explain more about it in the 'Anti-piracy' section).

Architecture

Let's take a deep dive at the operating system's main components, note this doesn't include the boot loaders, but for that, I've dedicated a separate section. For now, we'll check the components that reside in memory after the console boots up.

The Hypervisor

The Hypervisor is an incredibly small program that only occupies 128 KB . Furthermore, by being assigned the highest privilege level available, it's tasked with:

The hypervisor is operated through the use of 'system calls' , external programs invoke these to request functions from the hypervisor. Though whether the hypervisor complies or not is a matter of the program's accreditations.

The Kernel

Since the Hypervisor focuses on bare-metal services, an extra layer of abstraction is added in the form of a Kernel. The latter also resides in memory but gets assigned a lower privilege level. The main job of the Kernel is to expose routines that userland programs can benefit from, for instance:

To work, the kernel reserves 32 MB from main RAM to allocate all of its resources.

The User land

Userland programs encompass any executable running on top of the kernel. These are found in the form of a special container called Xbox EXecutable or 'XEX' ; and follow a similar structure to the traditional EXE container used by Windows - albeit tailored to the specifications of the Xbox 360. The most important difference is that XEX's executable code follows the PowerPC ISA binary structure (instead of x86) and it must be encrypted to run (the code is signed with Microsoft's private keys and the headers/meta-data store a hash to prevent tampering).

From the boot animation to the game itself, everything is a distinct XEX file. Some are automatically loaded by the Kernel (the boot animation and the interactive shell) and others by the user (the game, the media player, etc) using the shell. When the user or the Kernel request to run a XEX, the Kernel copies it to main memory and the Hypervisor checks its signature, re-encrypts it, marks the area as 'executable' and finally instructs the CPU to run it .

While this console doesn't provide any fancy multitasking between games (which is not a priority for a console, in my opinion), the Kernel still takes the aforementioned 32 MB of main RAM as its working area. This is what makes it possible to open the Xbox Guide (that popup menu that shows up after pressing the 'Xbox logo' button on the controller) and/or play music mid-game. To switch between full-screen applications, the Xbox Guide contains an entry to return to the dashboard (loading it up again) so the user can select another program.

Finally, all user data is grouped into a virtual Profile. Thus, the Kernel runs another program called 'XAM' which provides profile-related services (achievements tracking, avatar selector, save data storage) . A new profile is set up upon powering the console for the first time and there can be more than one profile stored.

Backwards compatibility

As a compelling side note, the Xbox 360 can run a considerable subset of games belonging to the previous Xbox (to avoid confusion, let's call it the 'classic' one). This was done through pure and hard software emulation and, while it didn't provide the same degree of compatibility of the CECHA PS3 revision, I believe the methods were more clever, cost-effective and consistent.

The emulator was called 'FU' (found as xefu.xex) and it could only be installed in the Hard Drive, residing next to other optional assets for the operating system. FU loads every time the user booted up a classic Xbox game into the Xbox 360. However, for an 'enjoyable experience', FU only proceeds with the emulation if the game is listed in its local whitelist, where Microsoft tracks which games are deemed 'playable'. As more system updates were released, more games were added to the whitelist.

Michael Brundage, one of the authors of FU, described the development process as 'probably the hardest technical challenge of my career' and also mentions 'how inefficient most standard libraries are, especially at math.' .

Storage medium

Now that we've seen the structure of the OS, let's now check how information is scattered across this console. You'll soon find that there's an abundance of media available, and Microsoft had to devise different file systems and protocols to keep the security integrity in place.

Boot ROM

Here lies the most critical and fragile program of this console. Similarly to the PlayStation 3 (again, both share IBM technology), the Xenon hides 32 KB ROM that stores the first stage of the boot loader, along with Microsoft's RSA public keys and SHA-1 hashes used to decrypt and validate further boot stages, respectively .

This area happens to be unencrypted, as the security system is not set up yet and the CPU only understands unencrypted machine code, but it's not a concern for Microsoft since the boot ROM is sealed within the CPU die and the public key can't be used against the system. Although, being a 'ROM' also means that this code can't be patched after it leaves the factory.

In any case, the boot ROM is only executed once after the console is powered on.

Internal NAND

Image
The NAND chip

In the motherboard of every Xbox 360, you'll find a NAND Flash chip. This is what Microsoft uses to store :

All of this data is encrypted in a multitude of ways. The majority uses Microsoft's private key combined with others, which makes it quasi impossible to tamper with, in theory!

Contrarily to the PS3, Microsoft managed to fit all of this in a smaller 16 MB chip, although some revisions from 2008 and 2009 featured 256 MB and 512 MB NAND chips . This wasn't a breaking change, however, as the extra space was partitioned and treated as a Memory Unit instead.

Memory Units and HDDs

Image
Memory Units, the least expensive storage medium. Although, they only work with Xbox 360 revisions before 2010.

Image
External HDD. Sold as a separate accessory and bundled with 'premium' editions. Inside the case there is a conventional 2.5" hard disk connected to a data & power adapter.

Image
Internal HDD, an alternative packaging for the Slim models (2010). The case is fitted into a hidden slot and doesn't require any type of adapter (its only purpose is to prevent wobbling).

If you place the console in a vertical position, on the front you'll see two 'Memory Unit' slots. On the top of it, you'll find a modified SATA socket for a hard drive (only fits those encased and sold by Microsoft). Both of these media are optional and used as mass storage devices.

Upon fitting any of them, the Xbox 360 initialises it and adds a multitude of partitions. Though it doesn't write a master partition table! It turns out the locations (offsets) of each partition are already hard-coded into the Kernel and all partitions - except the one storing user data - are fixed in size. Additionally, every partition uses proprietary and undocumented filesystems (recall that this is coming from the company that co-authored FAT, NTFS and exFAT), including one called 'FAT Xbox' (FATX) for generic data and 'Secure Transacted File System' (STFS) for caching purposes .

As long as there's space, either medium can store user profiles, game saves, downloaded games (initially called 'arcades') and downloadable content (DLCs). Only the HDD can store the Xbox classic emulator (the console automatically downloads it after a classic disc game is inserted).

Microsoft sold Memory Units of up to 512 MB and hard drives of up to 500 GB . You may think "Well, what if I swap the hard drive inside the case for a bigger one?" but that's been predicted, as all hard drives sold by Microsoft embed a Security Sector partition that prevents users from using third-party hard drives . This block encodes unique properties of the hard drive (serial number, model number, size, etc) that the Kernel compares with the hard drive's metadata, along with a bitmap of Microsoft's logo (to mitigate distribution with the use of trademark laws) and an RSA signature (to prevent third-parties from crafting their own security sector) . Although, some users eventually found workarounds by manually overriding the hard drive's metadata .

External USB

Image
Typical USB stick .

In April 2010, Microsoft conceded to the invasion of the cheapo USB sticks (which already conquered every household) and released a software update that allowed to use USB drives in the Xbox 360, as a method for expanding storage space.

USB drives can store most of the content located in hard drives (including games) except the Xbox classic emulator. It's fair to say that the theoretical bandwidth of USB 2.0 (480 Mbit/sec or 60 MB/sec) is no match for the internal SATA I protocol (1.5 Gbit/sec or 187.5 MB/sec), but having an extra storage option is always appreciated.

Behind the scenes, USBs are formatted with the popular FAT32 filesystem. Now, the Kernel also adds a hidden folder storing blobs that contain FATX-structured data , which is where Xbox 360-related data resides. This design enables the console to maintain its security requirements within an 'insecure' medium, albeit at the cost of only accessing up to 16 GB from the USB drive .

Boot process

Okay, so you've seen how this system works, how it's structured and where it's stored. But, there's still a missing piece, how do you go from 'nothing' (off state) to a 'Hypervisor running an encrypted Kernel loading up executables signed by Microsoft'? That's what the boot loader is for, and there are many, many stages in this system.

Multicore chaos

Before we begin, we need to address something fundamental. With homogeneous multi-core CPUs, all cores are entitled to 'own' the system, but this would only lead to chaos, so only one is tasked with directing the rest. The leader is commonly called 'master core' while the rest are named 'slave core' or just 'core'.

Outside the Xbox world, this hierarchy is sometimes found hardwired into the chip, while other architectures need manual intervention. For instance:

In the case of PowerPC, well... it's a tricky situation because Xenon was a custom order and not part of IBM's PowerPC 2.02 spec. But by looking at some low-level homebrew source code for this console , I presume the boot handling is similar to x86.

Boot procedure

With all being said, I will now describe what the Xbox 360 does after the user presses the power button.

First things first, the reset vector of the master core appears to be 0x80000200.00000000 , this points to a secret location within the CPU: the aforementioned 32 KB of BootROM, where the first stage of the boot process is located.

For the sake of completion, there will be a tiny mention of a special device called 'eFuse'. This is another storage medium similar to ROM or RAM, but with distinct physical qualities. I'll talk more about it in the 'Anti-piracy' section to avoid overwhelming you, so for now, just remember those basic facts.

Without further ado, here is how the boot chain works. It all begins with the boot ROM and proceeds as follows :

  1. 1BL (as in '1st Boot Loader'): The master core is instructed to fetch the next stage (called 'CB') from NAND into the internal SRAM. CB is found encrypted with the RC4 algorithm. So, the CPU derives a decryption key using a key stored in 1BL and another stored in the header of CB. Once decrypted, the CPU checks its validity by hashing the decrypted area and comparing the resulting hash with another stored in CB. The latter also uses Microsoft's public RSA key, stored in the internal ROM, for validating the hash. Finally, if the whole process completes without problems, the CPU continues execution at CB, otherwise, the CPU triggers a POST error and the Xbox 360 starts flashing red lights.
    • This process involves a combination of many cyphers, such as HMAC, SHA-1 and ROT.
  2. 2BL or CB: The CPU, now executing from the internal SRAM, queries the eFuses to check that the version of CB running matches the one written on the eFuses. Then, it initialises most of the hardware. Finally, the CPU proceeds to fetch another block from NAND called 'CD' onto main RAM and repeats similar decryption and verification tasks 1BL did, this time using another key derived from the 'CPU key' (stored in the eFuses). If everything goes well, the next stage proceeds.
    • In later software updates, this process was split into two bootloaders (named CB_A and CB_B) to mitigate faults that were exploited to execute homebrew (more details in the 'Anti-piracy' section).
  3. 4BL or CD: This is another decryption stage, albeit closer to the actual payload. This time, the CPU fetches yet-another block called CE, which goes through familiar verification processes (involving RSA checks) and it's subsequently decompressed in main RAM. Once unpacked, the CPU finds itself in front of the Kernel and the Hypervisor. But it's not over yet, I'm afraid, as the CPU must now fetch system updates to apply to these two programs, a process known as CF. Before continuing, however, CD orders to compare the number of updates installed against a designated counter in the eFuses block. This is done to prevent downgrades.
    • The decompression algorithm used is called 'LZX Delta' and it's authored by Microsoft.
  4. CF: This stage takes care of fetching update blocks stored on NAND, these are decrypted and decompressed with LZX as well. Once they are ready, they are applied to the kernel and the hypervisor residing on main RAM. Once all updates are done, CF returns to CD.
  5. CD (upon return): Now that everything is set, the CPU is redirected to the Hypervisor in main RAM.
  6. Hypervisor: This program takes over the hardware and then redirects execution to the Kernel, which in turn loads up the Splash animation and the Dashboard.
  7. The user is now in control.

Updatability

I guess it's no news for you, but yeah, this console has an updatable operating system.

Though, it may surprise you that no matter the revision, all consoles ship with the same initial kernel (version 2.0.1888) from 2005 . What happens is that the software updater installs 'update packets' in NAND, in the form of delta patches, and these are applied during boot, as you've seen in the previous section.

Image
Old Xbox interface from 2005 installing an update (bye bye Blades).

Updates can be fetched from Xbox Live (as an online download), through a retail game, by burning a conventional CD (that's how we shared files before the 2010s); or through a USB stick. A typical update will install the aforementioned patches for the hypervisor and kernel, but it will override userland files like the dashboard. Finally, to prevent rolling back, the updater will finish by blowing an eFuse so, from now on, the Xbox will only be able to boot the updated version of the system.

Updates don't usually require extra storage. However, when Microsoft released the 'NXE' update in 2008, the updater also installed static resources onto the Hard Drive (mainly themes and assets for the new 3D avatars) as NAND wasn't big enough. This led Microsoft to increase the size of NAND in further revisions of the motherboard to bundle up to 512 MB of NAND, and later include internal memory units of up to 4 GB instead. You would only find these enhancements on hard-drive-less models.

Interactive shell

I think it's time to take a break from so much theory and go over the different graphical interfaces that this console underwent. I know this is an article about computer architecture, but user interfaces are as important as all the fancy hardware we've been discussing. Also, user interface patterns go hand in hand with my interest in hardware!

In the following paragraphs, you may sense that I'm very critical of each interface, but I think it's important to correctly identify the strength and flaws of each design so we can understand the reasoning behind its next iteration.

The 'Blades' dashboard (2005)

Image
The home screen, the controls are shown on the centre, while the horizontal edges indicates the existence of other blades to navigate to.

Image
List of games installed, previously downloaded from the Xbox Live Arcade (a digital marketplace). Notice how this is a full-screen view, as there wasn't enough space on the previous type of screen.

Image
Settings menu.

Image
Storage menu, enabling the user to delete or copy user-only content. Notice how it removes the other blades indicators to reclaim a bit more screen space.

Image
A simple avatar selector screen.

Image
Pressing the guide button (a.k.a Xbox logo on the controller) for a long period would bring in the 'Xbox Guide', a popup menu offering various shortcuts.

The 'Blades' dashboard. Screens are from and .

The first iteration of the user interface, now an element of nostalgia for some, was the Blades dashboard. Here, each group of services (game, multimedia, settings, etc) is organised into different overlapping layers called 'blades'. All share the same hierarchy level and focus, meaning the user can only open one blade/category at a time. To navigate around, the user must swap between blades and interact with the actionable controls placed.

In my opinion, this style reminds me of one of those brochures with eye-catching foldable designs (in fact, the manual that came with the console replicated this). Furthermore, the design language (typography, colour palette and blur effects) is somewhat relatable to Windows XP and its Media Center pack, even the first iterations of Windows Longhorn exhibit common traits.

Image
Windows Longhorn, Build 4015 (2003) . Before it became Windows Vista, Microsoft had experimented with many types of UI patterns and colours. This build, in particular, seems to share small peculiarities with the Blades design.

Image
The Media Center app, included with Windows XP Media Center Edition (2005). This edition of Windows XP bundles an extra set of apps that target the TV, as opposed to the PC.

Truth be told, the overall design was strongly compromised to comply with both 4:3 and 16:9 aspect ratios, without being able to take advantage of the latter. The organisation of elements wasn't very consistent either, as some views, like the Xbox Guide, felt like all controls had to be squashed into a small space. The most limiting aspect, in my opinion, is the fact the indicators for navigation (list of available blades) were always shown on both edges of the screen. This consumed useful space for the opened blade. Thus, exceptional navigation segues had to be used to move away from the home screen hierarchy and reclaim full-screen space, at the cost of adding more inconsistency to the user interface.

Nevertheless, this is the GUI that gave this console an identity, and it's obvious that it targeted the 'young' audience group, which worked fine for a few years.

The 'New Xbox Experience' (2008)

Image
The new home menu. Notice how the user can't see all elements available unless he/she scrolls.

Image
As the Xbox Live expands its repertoire, many types of applications can now be installed (not only arcades anymore).

Image
The settings menu keeps the same layout but inherits a new colour palette.

Image
The storage menu and its similar palette update. In this example, a custom background has been set by the user.

Image
2D avatars are still available, though users are now encouraged to define their own 3D avatar too. This will be used by games (à la Nintendo's Mii).

Image
As a nice tribute, the new guide menu resembles the old Blades design, which also helps provide more and better-organised shortcuts.

The 'NXE' dashboard. Screens are from and .

As Microsoft expanded its catalogue of services and features, the navigation pattern of the blades turned into a liability (as it constrained the number of navigation screens on the top hierarchy) and the lack of available space became apparent in later software updates. In 2008, Microsoft released a revamped Dashboard interface called New Xbox Experience (NXE) which focused on 'infinite scrolling' patterns to offer a wider selection of services on the front page. It also incorporated other elements like a glossy filter and 3D transitions recently popularised by Windows Vista and the new range of Windows Live applications.

Image
Windows Vista (2007). Showing the use of the iconic 'Flip 3D' to switch between windows.

Image
Windows Live Mail during 2008 , featuring a Vista-like theme with glossy effects.

With the new design, screens could now enjoy full-screen space without being conditioned by the hierarchical level they were placed in. Curiously enough, the navigation layout is very similar to what Sony designed with XMB, where vertical arrows change category and horizontal arrows navigate through the elements of the same category.

The 'Kinect' update (2010)

Image
The new home screen built for Kinect controls. Notice how the container at the bottom right corner indicates what Kinect is capturing at the moment.

Image
The Game Library gets a brighter colour scheme.

Image
The Settings menu with minor changes applied.

Image
The same goes for the Storage menu.

Image
3D avatars get some enhancements as well.

Image
The Guide menu goes through a minimalistic phase.

The 'Kinect' dashboard with a custom wallpaper. Screens are from .

With the arrival of Kinect, Microsoft had to adapt the Dashboard to remove its dependency on the controller. As part of the update, the designers replaced the glossy touch with faded greens and greys. The 3D aero-like touches were also succeeded by typical zoom-in animations. This coincides with the arrival of Windows 7 and its modest reduction of visual effects.

Image
Windows 7 (2009). Showing the new 'Aero Peek' to preview minimised windows.

Image
Windows Live Mail during 2011 , part of a desktop suite called 'Windows Essentials'.

I don't think there's anything else to mention apart from the fact it only lasted a year before being replaced by a considerably more radical redesign.

The 'Metro' revamp (2011)

Image
The new home screen, where news, advertisements and applications share equivalents amount of screen space. Some types of information (like adverts) are granted more space than what the user would agree.

Image
The new app selector resembles a retail shelf.

Image
The Settings menu hasn't changed much.

Image
The same applies for the Storage menu.

Image
It seems the minimalistic phase is here to stay.

The 'Metro' dashboard. Screens are from .

The year 2010 saw the debut of Windows Phone 7 and a new type of interface called Metro, whose style now relies on solid colours and white silhouettes. Due to its versatile design, Microsoft envisioned porting Metro to all of its platforms, which became a reality the following year with the arrival of Windows 8 and a new update for the Xbox 360. Though the degree of adoption varied drastically between device, the Xbox 360 enjoyed a mostly unified implementation of Metro (unlike Windows 8, where the majority of applications still relied on the 'classic' design).

Image
Promotional screens of Windows Phone 7 (2010), showing the new Home screen, the contacts app (featuring the new 'Panorama' layout) and the lock screen.

The most significant changes lie in the home screen, which has reverted its two-dimensional navigation style for a new multi-row distribution called 'Panorama'. The latter borrows similar navigation patterns to the old Blades dashboard, except the new layout does not repeat the same mistakes. Icons now take prevalence over labels, and their uniform shapes lead to a more apathetic composition. But hey, at least the layout is now consistent across all home screen views (although I must confess I miss the unpredictability of previous eras).


Previous: 6. I/O

Next: 8. Games


Rodrigo Copetti © 2026 RSS Feed

Switch to modern edition

Home · Writings · Support · About author · About website