In another life, way back in 2003, I was looking at going into the field of parallel computing. I was building a Beowulf cluster in my room at home at the time and would ask anyone I knew for their used computers to extend it. I was highly interested in what it took to perform calculations on what is now just called Big Data and how a small group of computers could often out perform many of the largest supercomputers at the task. For nearly a year, I got very deep into the technology and even picked my university, in part, because they had a department dedicated to it.
It was around this same time that Xen first came out and interest in using hypervisor software pushed many developers to start thinking of ways of layering operating systems. One would run at a kernel level and others could be put on top of it. While not a new concept (there are are papers for the late 1970s detailing the process), the rise of Xen, VMware and other companies and services in 2004 specializing in the techniques and software needed to create virtual machines on a single set of hardware has its roots in the cloud computing of today. Separating the operating system level away from the hardware one was a very important step toward system agnostic design. Finally, the operating system itself could become not the bottom level, but any one of the indeterminate layers between the user, the software they were using and the actual hardware.
However, while many companies were looking at building bigger machines and uniting them through software abstract levels, other companies were looking at the mobile market and bringing the same design ideas of hypervisors to handheld technology. It’s where the term “jailbreaking” entered the general public’s usage. Instead of allowing any number of programs access to a system, they could be put into a “jail” that was their own private virtual environment. The core operating system on a device would act in a hypervisor capacity, issuing new “jails” for programs to run in and from which they could not affect the security of the device.
It became the standard design for all current devices and is how the iOS and Android operating systems work. There is a core kernel and all other programs run in a different operating space. There are effectively two different operating systems running at the same time. One that has root access and another that loads and runs the various apps. (Android’s is named Dalvik, for example.)
This is also, by the way, how the Xbox One has been detailed to work too.
“‘Snapping in’ is the Xbox One’s task-switching mechanism, and it’s made possible by some serious operating system kung fu. The Xbox One simultaneously runs three separate operating systems. First comes the tiny Host OS, which boots the machine and then launches two other hard-partitioned systems: the Shared partition, an environment that runs any apps (Skype, Live TV, Netflix, etc.) and helps provide processing power for the Kinect sensor and its gesture and voice controls; and the Exclusive partition, which is where games run. Because of the way memory is apportioned in the Shared partition, you can switch between apps with little to no load times, and even snap them into another app or game to use both at the same time.”
— Wired, Xbox One Revealed
“…the Xbox One runs three separate operating systems; a tiny ‘Host OS’, which powers on the machine and then runs two other systems; the Shared petition for secondary apps such as Skype and Netflix, as well as Kinect sensor functionality; and the Exclusive partition, which handles all of the fancy new video games.
Microsoft has gone down this route to ensure that users can switch between apps near-instantaneously and also run them side-by-side with no lag whatsoever.”
“(As Microsoft explained, the box has an Xbox OS, a special version of Windows and a bridging OS which melds the two into one experience.)”
Such a move effectively means that the Xbox One, from a software architecture perspective, is really no different than a tablet or other handheld computing device. The basic principle of having a host OS (hypervisor) and other partitioned (“jailed”) programs has been around for a number of years now. It’s how the the iPhone works. Android devices do this.
That the Xbox One is following in these footsteps means that this technique is important for the future of system design too. It won’t mark the first usage in a gaming platform, many Android-based devices like the Ouya do this, but it will cement it in the way consoles are constructed and planned in the future. And it also introduces new problems too.
Run multiple apps in either Android or iOS for an expended period of time and the device will slow down. The reason for this, and also why Microsoft can advertise its ‘snapping’ jargon, is because they are all kept in memory. The user space of the device maintains the apps indefinitely. Processing power is being consumed by running processes in the background. That the Xbox One has a separate partition for apps is encouraging , but it also means that the 8 GB of total RAM won’t be exclusively for games.
Some part of the system will always be monitoring the Kinect, processing its signals, and maintaining the running apps. The Xbox One will be the first major console to step away from the long past of only doing one thing at a time. The first seven generations of gaming systems were about that, gaming. The eighth, the one the Xbox One is a part of, is in no small way stepping away from consoles built and designed for gaming. The Xbox One (and most likely the PlatStation 4 too) with its multiple operating systems means that media machines now rule.
The ‘gaming system’ is just one of many others now. The idea of separating the system from the hardware has finally come to consoles. And it is here to stay.