Alguien se ha preguntado, ¿como consigue la XB1, por ejemplo, pasar de jugar, a ver la tv de forma tan rápida con aquella orden "watch tv", o como podemos jugar y tener una videoconferencia en skype simultáneamente en la misma pantalla (es decir, como ejecuta dos aplicaciones al mismo tiempo con aparente independencia)? etc.
Bueno, parece que la palabra clave es "hypervisor" o dicho de otra forma un Monitor de Máquinas Virtuales, es decir el software que crea y ejecuta máquinas virtuales. Que parece en este caso podría estar basado en el Hyper-V 2012 que es de MS (que casualidad
).
Así en la XB1 se ejecutan 3 sistemas operativos:
- Uno llamemosle: XOne SO creado para ejecutar los juegos.
- Otro llamemosle: Windows8 SO (en realidad usaría el kernel del w8) en este es donde se ejecutan las diferentes app's.
- El tercero llamemosle: hypervisor SO, que es el encargado de coordinar a los anteriores, además de ejecutarlos y asignarlos los recursos del hardware que necesiten.
Habrá gente, que esté familiarizado con VirtualBox, por ejemplo, y empezará a pensar que de esta forma no accedes al hardware de forma real ni al 100% del hardware (emulado) sino que podrías estar en torno al 90%, y alguna cosilla más, pero es que el caso de la XB1 no es ese sino el tipo de virtualización llamada Bare-Metal, es decir: en VirtualBox ejecutas una Máquina sobre un sistema operativo con lo que tienes más bien una emulación, en el caso de la consola es un sistema operativo (hypervisorSO) que proporciona una interface directamente sobre el hardware , a la vez que una gestión de los recursos disponibles para cada SO (de los dos restantes).
Que recursos consume esta plataforma:
Bueno pues sabiendo que Hyper-V está sobre los 600MB, en el peor de los casos quitará a los 8GB de RAM, esos 600MB (que serán mucho menos, ya que la consola es un sistema cerrado, y se optimiza para ella), a esto le puedes añadir un par de ciclos de reloj de CPU.
Bueno ya vimos que los juegos cuentan con 5GB de la RAM, 6 nucleos de la CPU y supone el 90% de los ciclos de reloj, con lo que si el hypervisorSO pongamosle 1/2 GB, obtenemos 2,5GB de memoria disponible para el kernel de windows, memoria que no está dedicada sino que tiene acceso a esos 2,5GB, eso no significa que las aplicaciones siempre consuman 5/16 de memoria de la Xbox One.
Lo bueno de un hipervisor es que podemos apagar o suspender los sistemas operativos sin ningún efecto para los demás en la misma máquina. Tengo un juego que necesita para cargar 7 gigabytes en la memoria ? vale . Si las aplicaciones no se pueden ejecutar con el último medio giga de memoria sólo tenemos que suspender todo y dar los 7.5 GB al juego.
Así, resumiendo, lo que tenemos es una plataforma con tres sistemas operativos, dos de ellos en dos máquinas virtuales una para juegos y otra para aplicaciones así que el paso de una a otra es rapidísimo, ya que ambas se están ejecutando simultáneamente, cuando vemos en pantalla (snap) dividida con el juego con el que estemos y con el skype (por ejemplo) lo que se está mostrando no es una "pantalla" sino dos correspondientes a las dos máquinas aunque para nosotros sea una sola.
Por eso, cuando MS intenta explicar su hardware, siempre dice que su plataforma se ha diseñado para estar equilibrada y el diseño se pensó con la virtualización como objetivo (ya no solo local sino, también en la nube). Y gracias a ella por ejemplo imagino que si se te va la luz en casa cuando habías invertido 500 horas no tendrás la necesidad de arrancarte de los pelos
Perdón por el tocho, pero con una simple lectura, podemos tomar conciencia de que el sistema no es solo especificación de un hardware sino del conjunto hardware-software.