jueves, mayo 23, 2013
|
En el anuncio de anteayer del nuevo Xbox One de Microsoft (lean mis impresiones preliminares), algo extraño que fue anunciado es que el Xbox One tiene no uno, o dos, sino que tres sistemas operativos, lo que sin duda dejó a unos cuantos rascándose la cabeza tratando de entender el por qué, o cómo es eso posible.
Así que hoy les explico todo el tema, y como verán no solo es todo bastante sencillo de entender, sino que incluso existe una muy buena razón con asociados beneficios... Pero antes de continuar, la pregunta es ¿por qué 3 sistemas operativos y no solo uno? Y la respuesta tiene que ver con lograr uno de los objetivos del Xbox One: El permitir hacer más de una cosa a la vez mientras juegas, lo que por ejemplo se traduce en que mientras juegas un juego una aplicación alterna pueda estar conectándote con otro jugador en videoconferencia con Skype, o si estás viendo TV el poder interactuar con un mini-juego relacionado al programa que estás viendo. Pero una vez más, ¿no es eso precisamente lo que se puede hacer hoy día con cualquier sistema operativo como Windows, Mac OS X, o incluso Android? Pues sí y no... Sucede que un problema natural de cualquier sistema operativo tradicional es que no es predecible el tiempo que cada aplicación puede tener alojada para sí. Así que por ejemplo, si tienes varias ventanas con varios documentos de Microsoft Office, y varias ventanas navegando el Internet con Google Chrome, y además tienes abierto a Photoshop más un par de otros programas, llega un momento en donde todos los programas empiezan a ponerse lentos, incluyendo los programas de fondo y el programa que activamente estés utilizando en ese momento. En una PC eso es aceptable (o cuando menos, lo que uno lamentablemente espera suceda), pero en una consola de videojuegos no sería algo bueno que si estás en medio de una batalla en Call of Duty el juego completo se caiga de rodillas y se ponga extremadamente lento simplemente porque en el fondo tienes una aplicación de Skype o el navegador web abierto con alguna página pesada. La solución tradicional a este tipo de problemas es lo que se llama un RTOS (Real-Time Operating System), que son sistemas operativos especializados (usualmente utilizados en aplicaciones industriales, incluyendo espaciales) en donde es posible predecir exactamente cuantos "ciclos" una aplicación necesitará para completar una operación específica. Sin embargo, un RTOS impone muchas restricciones que en sistemas operativos tradicionales de escritorio no son ideales, pues queremos que en ciertas circunstancias algunas aplicaciones se tornen un tanto más lentas que otras. Así que Microsoft ideó una solución, que en realidad no es nueva, y tiene que ver con un tipo de sistema operativo bastante especializado llamado técnicamente un "HyperVisor". Un HyperVisor es esencialmente un sistema operativo de muy bajo nivel que arranca antes que cualquier otro sistema operativo, y que se encarga de "virtualizar" los recursos físicos de la máquina para otros sistemas operativos. Noten que para aprender más del tema hace 4 años escribí un artículo acá mismo en eliax titulado "Pregunta a eliax: ¿Qué es un HyperVisor Tipo 1?" que recomiendo lean si son curiosos con estos temas. Y pues sucede que Microsoft ya tiene un producto llamado Microsoft Hyper-V que provee esa funcionalidad para entornos empresariales, y que ha simplificado, adaptado y optimizado para el ambiente del Xbox One. La idea del HyperVisor (que sería el primero de los tres sistemas operativos) en el Xbox One es dividir los recursos del hardware entre los otros dos sistemas operativos, y servir como mediador entre ellos. El primero de esos sistemas operativos es un sistema operativo de bajo nivel especialmente diseñado para videojuegos, y que el Hypervisor asume (aunque no lo sea realmente) es un RTOS, ofreciéndole prioridad del hardware en casi todos los sentidos, manteniendo así los videojuegos funcionando siempre a toda velocidad (al menos en teoría). Este segundo sistema operativo para videojuegos es esencialmente una actualización del sistema operativo del Xbox 360. El tercer sistema operativo es una versión de Windows basado en el kernel (núcleo) de Windows NT como utilizado en Windows 8, y este es el sistema operativo de menor prioridad (cuando se juega un videojuego) y que está encargado de arrancar aplicaciones genéricas, como Skype, Netflix, Internet Explorer, el manejo del Kinect 2, etc. En teoría será bastante fácil portar aplicaciones de Windows para que ejecuten en el Xbox One, no solo por tener un conjunto de librerías de software en común, sino además a que la arquitectura del Xbox One es basada en los chips x86 que son parte hoy día del 100% de todas las PCs con Windows en el mundo (a diferencia de la arquitectura PowerPC utilizada en el Xbox 360). Noten que cada uno de los dos sistemas operativos encima del Hypervisor creen que son el único sistema operativo ejecutando sobre el hardware del Xbox One, a grado tal que cada uno tiene su propia pantalla virtual (para los técnicos, su propio frame buffer), y es la labor del Hypervisor el de desplegar en la pantalla física el contenido de una o ambas de esas pantallas virtuales (como por ejemplo, en el modo "Snap-on" del Xbox One en donde puedes jugar un juego y hasta ver una película a la misma vez en la misma pantalla física). El Hypervisor está encargado también de asignar recursos de computación dinámicamente a cada sistema operativo, incluyendo acceso al CPU (procesador principal y sus 8 núcleos), GPU (encargado principalmente de gráficos con sus 768 hilos de ejecución en paralelo), y el cache y memoria principal (que es compartida entre los sistemas operativos para hacer el intercambio de información entre ambos lo más eficiente posible). Noten además que internamente, en términos de almacenamiento de estos sistemas operativos, que el primero (Hypervisor) ocupa una partición "privada" y totalmente invisible a los otros dos sistemas operativos, mientras que la partición de videojuegos utiliza una partición "exclusiva" (es decir, para su propio uso), y la partición de Windows utiliza una partición "compartida" (para uso propio y/o de los videojuegos). En resumen, esta es una arquitectura bastante interesante de Microsoft para garantizar la mayor velocidad posible en videojuegos, mientras también permite el uso de aplicaciones genéricas que funciona en paralelo o por sí solas, lo que en esencia ofrecerá (al menos teóricamente) una experiencia bastante fluída para los usuarios del Xbox One. autor: josé elías |
58 comentarios |
Educación , Hardware , Pregunta a eliax , Software , Video-juegos , Windows / Microsoft |
Comentarios
Añadir Comentario |
"No jugamos a ser dioses, la raza humana tiene que desarrollar este tipo de cosas, esta dentro de su misma evolución. Hay quienes se oponen, y sin duda creo que el avance de estas técnicas puede desarrollar cosas malas pero a la vez son necesarias ya que este planeta no es eterno, algún dia tendremos que mudarnos a otros mundos utilizando esta tecnología para poder crearnos en base a las necesidades del ambiente."
en camino a la singularidad...
©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax
Seguir a @eliax
Que suerte que me quedé hasta tarde para leer tu artículo de hoy, me gustó muchísimo y no había leído de esto en otro lado. Mañana ya tengo de que hablar en la oficina con los tigres!!
Pero tengo una pregunta Eliax, ¿que pasa si sale el pantallazo azul que se le mete a windows cundo se va abajo??