« Arquitectura de la PlayStation 3 (index)

Arquitectura de la PlayStation 3

Chapter 7: Sistema Operativo


Tabla de contenidos

  1. La seguridad privilegiada de Cell
  2. Visión general
  3. Jerarquía de seguridad del sistema operativo
  4. Soporte de almacenamiento
    1. Cell BootROM
    2. Memoria Flash NAND/NOR
    3. Disco duro
    4. eMMC
  5. Proceso de arranque
    1. Proceso de arranque revisado
  6. Visual Shell
    1. Préstame tu PS3
  7. Una propuesta multi-SO
  8. Capacidad de actualización

Ahora que las consolas domésticas se han convertido en potentes centros multimedia, se necesita un sistema operativo más elaborado para proporcionar a los usuarios más servicios y a los juegos una capa de abstracción más robusta. Todo ello manteniendo la seguridad y el rendimiento a la altura.

En consecuencia, términos como shell o BIOS ya no se usan para describir esta área, no porque hayan dejado de existir, sino porque describen solo una pequeña fracción del nuevo sistema. El término genérico ahora es 'sistema operativo', que abarca muchas áreas (boot loader, kernel, interfaz de usuario) que analizaremos por separado. Como siempre, recomiendo revisar primero el sistema operativo del PSP, ya que su diseño modular es un ingrediente recurrente en la PS3.

La seguridad privilegiada de Cell

Antes de entrar en detalles, debo mencionar los distintos modos de operación de Cell. En un principio tenía pensado describir esto en la sección 'CPU', pero dado lo densa que se puso esa sección, lo introduzco aquí, donde verás enseguida su uso práctico. Además, estos modos también condicionan el diseño de cualquier sistema operativo que corra en Cell, no solo el que Sony desarrolló para esta consola.

Dicho esto, para protegerse del acceso no autorizado a datos y/o recursos sensibles, Cell implementa un conjunto de niveles de privilegio heredados de la especificación PowerPC. En otras palabras, Cell ejecuta programas en dos modos:

Además, los SPE cuentan con un modo de operación llamado isolated mode, que protege el proceso de ejecución dentro del SPU de modo que ninguna unidad externa (el PPE u otros SPE) pueda acceder a él hasta que el SPU termine. Este modo puede activarse tras cargar un programa en cualquier SPE y garantiza que el procesador no sea manipulado mientras se ejecuta el código sensible (por ejemplo, una rutina de cifrado).

El sistema operativo de Sony, que describiré en los siguientes párrafos, utiliza todos los modos descritos para gestionar su seguridad.

Visión general

Como dije antes, el sistema operativo es bastante complejo. Para poder seguir esta sección sin demasiados problemas, podemos dividir los tipos de archivos que encontramos en el sistema operativo de esta consola en distintas capas:

Jerarquía de seguridad del sistema operativo

En términos generales, el sistema operativo de la PS3 está diseñado con el mismo enfoque modular que el del PSP. Como recordatorio del artículo anterior, el sistema operativo está compuesto de múltiples módulos. Estos pueden servir al usuario (como un juego o una aplicación) o residir en memoria de forma indefinida para servir a otros módulos (en forma de llamadas al sistema y/o drivers). Algunos módulos tienen más privilegios de acceso que otros (módulo del kernel vs. módulo de usuario).

Image
Diagrama que muestra cómo encajan los componentes del sistema operativo del PlayStation en los niveles de privilegio de Cell.
Las referencias a 'OtherOS' se explican más adelante en las siguientes secciones.

A lo largo de su ciclo de vida, el sistema operativo invocará a muchos módulos con distintos privilegios. Sony construyó su sistema operativo de modo que los módulos se ejecuten bajo los tres niveles de privilegio de Cell:

Soporte de almacenamiento

Con todo lo dicho, ¿dónde se almacenan todos estos datos? Desde la perspectiva del usuario general, solo hay dos soportes visibles: los discos Blu-ray para los juegos y un disco duro para las partidas. Pues bien, hay algunos más, así que los examinaremos uno a uno.

Cell BootROM

Resulta que dentro de Cell hay una pequeña ROM oculta en algún lugar donde los fabricantes pueden almacenar un boot-loader 'protegido'. IBM proporciona este espacio para evitar que cualquier empresa (no solo Sony) tenga que implementar manualmente métodos de ofuscación a medida para proteger su código de arranque, ya que los componentes de catálogo no siempre están preparados para necesidades específicas.

Como este componente ya está físicamente protegido mediante ofuscación, no necesita estar cifrado. Por ello, es ideal para un boot-loader de primera etapa (que no puede estar cifrado), y la PlayStation 3 almacena allí su etapa de arranque inicial.

Memoria Flash NAND/NOR

¿Recuerdas esos 256 MB de flash NAND que mencioné brevemente antes? Pues bien, aquí es donde reside la mayor parte del sistema operativo. Al menos hasta que Sony lanzó el modelo CECHH a finales de 2007, sustituyendo la NAND de 256 MB por una diminuta NOR de 16 MB. Como consecuencia, algunos archivos tuvieron que moverse a otro lugar. Para simplificar, veamos primero qué almacenan estos chips :

Debido a su mayor tamaño, los modelos con flash NAND también almacenan el resto del sistema operativo (denominado GameOS o devflash). Esto incluye:

Por si fuera poco, las consolas NAND también albergan otros datos como el xRegistry (una colección de configuraciones de red, cuentas de PlayStation Network y una lista de dispositivos Bluetooth emparejados), más registros de revocación y un Loader para OtherOS (una pieza realmente interesante de la que hablaremos en los siguientes párrafos).

Disco duro

El nuevo disco duro de 2,5 pulgadas, con capacidades entre 20 GB y 500 GB (a medida que se lanzaban más revisiones), proporciona almacenamiento persistente de datos para:

Los sistemas NOR, sin embargo, también almacenan el GameOS en el disco duro. Por ello, cada vez que el usuario cambia el disco duro, la consola solicita un archivo de actualización para reinstalar el GameOS en el disco. Sea como sea, ni los sistemas NOR ni los NAND arrancan sin el disco duro.

Ciertos datos del usuario pueden copiarse en una memoria USB y luego trasladarse a otra consola en caso de necesidad, aunque este proceso reformatea la consola de destino antes de copiar los datos.

eMMC

En 2012, Sony presentó una revisión rediseñada de la consola llamada 'SuperSlim' (cuyo nombre en clave es CECH-4xxx). Estaba disponible en tres variantes: una con disco duro de 250 GB, otra con 500 GB, o una tercera opción con solo 12 GB de flash eMMC interna. Las dos primeras siguen la distribución del sistema de archivos implementada en los modelos NOR, mientras que la tercera almacena todo en la eMMC (incluyendo los datos del usuario) y sigue la distribución NAND para los archivos del sistema.

No obstante, el modelo eMMC tiene un detalle. En lugar del chip NOR, Sony instaló un chip Panasonic 'MN66840' que, según la PS3 Dev Wiki , parece redirigir el bus NOR hacia la eMMC. Supongo que es simplemente un truco para ahorrar costes, ya que reutiliza el mismo Southbridge de las otras variantes.

Curiosamente, si el usuario decide instalar un disco duro en el modelo eMMC, la consola transfiere todos los datos del usuario de la eMMC al nuevo disco duro. De este modo, el usuario puede aprovechar por completo el disco duro, aunque el espacio libre de la eMMC queda desaprovechado.

Proceso de arranque

Bien, con todo el conocimiento previo, ahora aprenderás cómo arranca el sistema, y déjame decirte que es bastante complicado. La razón es sencilla: Sony no quiere que metas mano a su hardware o software, así que construyeron múltiples capas de ofuscación y cifrado para impedir que te infiltres y cargues tu propio código (y con suerte te des por vencido y sigas comprando juegos/películas/lo que sea), pero, como la historia demuestra, ocurrió lo contrario.

En la siguiente sección describiré lo que hace esta consola al pulsar el botón de encendido. Ten en cuenta que este proceso solo cambió drásticamente una vez (después de que los hackers lo descifraran). Para simplificar, empezaremos por el proceso de arranque 'original' (implementado antes de la versión 3.60 del sistema) :

  1. Un chip independiente de la placa base (llamado Syscon) se enciende y ejecuta instrucciones desde su ROM interna. A continuación, envía un 'Configuration Ring' a Cell mediante SPI (una conexión serie), lo que inicializa Cell y desactiva el octavo SPU. Por último, activa la línea de alimentación y da vida a Cell.
  2. El vector de reset del PPU de Cell apunta a su ROM oculta, que almacena las rutinas para localizar y descifrar bootldr de la Flash. El fragmento descifrado es cargado por el primer SPU en isolation mode.
  3. El SPU, ya aislado, habiendo cargado bootldr, inicializa parte del hardware (memoria XDR e interfaces de E/S), descifra un binario llamado lv0 e instruye al PPU para ejecutarlo.
  4. El PPU, que ya ejecuta lv0, descifra metldr (un loader específico de la consola) y lo envía al tercer SPU, de nuevo en isolation mode.
  5. El SPU2, que ahora ejecuta metldr, ejecuta cinco loaders más secuencialmente:
    1. lv1ldr descifra y carga lv1, que contiene el Hypervisor que toma el control del primer nivel de privilegio. Además, lv1 configura el disco duro, la unidad Blu-ray y el RSX.
    2. lv2ldr descifra y carga lv2, que contiene el kernel y corre sobre el hipervisor. También termina de inicializar el RSX, la emulación de PS2, Bluetooth, el controlador USB y el lector multicard.
    3. appldr descifra y carga vsh (el Visual Shell) y otras dependencias. vsh permitirá posteriormente al usuario cargar un juego.
    4. isoldr descifra y carga módulos que se ejecutarán en el tercer SPU en isolation mode. Estos módulos son críticos para la seguridad y realizan múltiples funciones criptográficas a lo largo del ciclo de vida de la consola. En consecuencia, el tercer SPU queda reservado para funciones de seguridad y los juegos no pueden usarlo (dejando solo seis SPE disponibles para los juegos).

El PPU, tras cargar vsh, otorga al usuario el control mediante una interfaz gráfica que se manifiesta con un icónico sonido orquestal de arranque seguido del menú XMB.

Proceso de arranque revisado

En marzo de 2011, un hacker conocido como 'GeoHot' quebró la seguridad de metldr, comprometiendo así la autenticidad de los loaders posteriores. Sony respondió emitiendo actualizaciones de seguridad tanto para el hardware como para el software. Estas correcciones se analizan más adelante en la sección 'Antipiratería' de este artículo.

Visual Shell

¿Te estás cansando de tanta teoría? Pasemos a algo que todo el mundo puede ver: el Visual Shell.

XrossMediaBar (XMB), la nueva interfaz de usuario que ganó reconocimiento internacional dos años antes, se ha adaptado ligeramente para poder interactuar con ella desde el sofá (la llamada 'interfaz de usuario a 10 pies') y ampliado para aprovechar la resolución 'Full HD' (1920×1080 píxeles).

Image
XMB en el PSP (2004).
Renderizado a 480×272 píxeles.

Image
XMB en la PS3 (2006).
Renderizado a 1920×1080 píxeles.

Aunque los usuarios de PSP encontrarán muchas similitudes, Sony añadió un nuevo conjunto de aplicaciones que aprovechan el potencial de Cell, RSX y la unidad Blu-ray. Muchas de ellas relacionadas con multimedia (reproductor de vídeo, presentación de imágenes, etc.), televisión (aplicaciones de TV a la carta, como iPlayer de la BBC), perfil social (avatares online) y compras online (PlayStation Now y PlayStation Store, por nombrar algunas).

Además, dado que se trata de una consola doméstica que pueden compartir varios miembros, XMB soporta múltiples usuarios, donde cada uno puede usar una cuenta de PlayStation Network diferente y almacenar datos de usuario separados (juegos adquiridos y partidas guardadas).

Image
Al igual que en el PSP, al seleccionar un juego el fondo puede cambiar de estilo para llamar tu atención.

Image
El XMB ofrece una inmensa cantidad de configuraciones, especialmente útil al configurar tu flamante televisor 1080p con audio envolvente 3.1.

Image
Diversas opciones multimedia.

Image
El XMB permite instalar juegos, actualizaciones y expansiones (DLC) mediante un instalador de paquetes nativo.

La interfaz XrossMediaBar (XMB) de la PlayStation 3

Por último, la inclusión de un disco duro es un alivio para los veteranos que en el pasado se veían obligados a comprar costoso almacenamiento propietario (Memory Stick Pro Duo) cada vez que se quedaban sin espacio.

Préstame tu PS3

Sorprendentemente, no todas las aplicaciones incluidas en esta consola tenían objetivos interesados. Con la irrupción de la computación distribuida y las capacidades de Cell para proyectos de ciencia de datos, la Universidad de Stanford se alió con Sony para permitir a los propietarios de PlayStation 3 contribuir a la investigación médica. El resultado fue Folding@home (se pronuncia 'folding at home').

Folding@home era una aplicación instalada en todos los PlayStation 3 que, una vez abierta por el usuario, se conectaba a un servidor central y ejecutaba simulaciones de proteínas. Además, la aplicación también podía correr en segundo plano durante las horas de menor actividad.

Image
Folding@home mostrando el trabajo realizado desde que el usuario inició la aplicación .

A lo largo de su vida útil, la potencia de computación conjunta de 15 millones de usuarios de PS3 de todo el mundo contribuyó a la investigación de Folding@home en la búsqueda de una cura para el Alzheimer . Finalmente, Folding@home y Sony retiraron la aplicación en 2012, y la primera continúa viva en otras plataformas.

Se trata de mi opinión personal, pero disfruto leyendo sobre proyectos que aportan algo al mundo aprovechando las capacidades de la computación distribuida, en contraposición a los interminables artículos sensacionalistas que se quejan de la minería de criptomonedas. Supongo que no debemos olvidar que, con cada nueva tecnología poderosa, siempre habrá aplicaciones desinteresadas desarrolladas para ella.

Una propuesta multi-SO

Cuando IBM describió Cell desde el nivel de software, mencionó que Cell es capaz de ejecutar múltiples sistemas operativos al mismo tiempo, gracias a sus numerosos núcleos de ejecución . Así pues, Sony tomó esta idea y añadió al XMB una opción para instalar un sistema operativo secundario . Esta función se llamó OtherOS y, en pocas palabras, proporciona un gestor de particiones (el XMB simplemente guía al usuario para redimensionar la partición del GameOS y asignar nuevo espacio para el segundo sistema operativo) y un botón para arrancar desde el segundo sistema operativo (gracias a los archivos de arranque de OtherOS ya configurados en la Flash). Así que el usuario solo necesita llenar la nueva partición con un sistema operativo. Como consecuencia, muchas distribuciones de Linux (Ubuntu, Fedora, etc.) añadieron la PS3 como otra plataforma de instalación posible. Puedes considerarlo el sucesor espiritual de Linux para PS2.

Image
Red Ribbon GNU/Linux es una distribución exclusiva para la PS3/Cell, compilada con el objetivo PPC64 .

Gracias a OtherOS, los usuarios con experiencia tenían la oportunidad de desarrollar aplicaciones homebrew que corrían en Cell sin restricciones de licencia, algo especialmente interesante para fines de investigación y científicos , ya que esta consola tenía un precio mucho más asequible que un mainframe. Para usos multimedia, la unidad Blu-ray y el lector multicard también eran accesibles desde OtherOS.

Por otro lado, aunque los privilegios de OtherOS pueden superar a los del GameOS (a nivel de kernel), no superan al hipervisor, que sigue residiendo en memoria. Así, cualquier acceso al hardware desde OtherOS sigue dependiendo de la voluntad del hipervisor de Sony, y resulta que este bloquea el acceso a los buffers de comandos del RSX (impidiendo el uso de las unidades de shader, entre otros componentes utilizados para acelerar las operaciones gráficas). En consecuencia, las distribuciones Linux resultantes recurren al renderizado por software (todos los gráficos se dibujan mediante Cell) y luego transmiten el frame buffer al RSX para su visualización. Aunque es decepcionante que OtherOS no pueda aprovechar todo el potencial de esta consola, probablemente fue una decisión para reducir las superficies de ataque. Irónicamente, el uso que OtherOS hace de Cell es similar a cómo IBM/Toshiba/Sony pudieron haber concebido originalmente la PS3.

Compartiendo el destino de Folding@home, OtherOS fue finalmente eliminado en una actualización posterior, aunque por causas distintas (principalmente relacionadas con la seguridad). Poco después, OtherOS fue restablecido de forma no oficial gracias a exploits de software y esfuerzos de ingeniería inversa. En la actualidad, OtherOS está disponible si el usuario instala un custom firmware. Lo explico con más detalle en la sección 'Antipiratería y homebrew'.

En el momento de escribir estas líneas, el desarrollador René Rebe está implementando controladores xf86 adecuados que aprovechan la aceleración proporcionada por el RSX y sus 256 MB de memoria . Su trabajo se combina con otros desarrollos que eliminaron las restricciones impuestas por el hipervisor (inicialmente gracias al descubrimiento de exploits de software y posteriormente con el uso de un custom firmware, esto último se explica más adelante en la sección 'Antipiratería y homebrew'). El señor Rebe publica su progreso en su canal de Youtube y depende de donaciones voluntarias para continuar su trabajo .

Capacidad de actualización

Para la parte final de esta larga sección, hablemos de las capacidades de actualización del GameOS.

En pocas palabras, al igual que el PSP, Sony distribuyó archivos PS3UPDAT.PUP que empaquetan todos los nuevos binarios del sistema operativo. Debido al sistema de seguridad de la consola, solo pueden actualizarse los archivos que no están asegurados con claves únicas de la consola y que están almacenados en soportes reescribibles (Flash, disco duro, eMMC); el resto debe permanecer como está.

Los archivos PUP se distribuían a través del sitio web oficial de Sony, el asistente de actualización del XMB, o se encontraban en el contenido de un disco de juego (todos los juegos incluyen un archivo PUP, que refleja la versión del SDK para la que se desarrolló). Como los modelos con flash NAND solo tienen 256 MB de espacio y almacenan todo el sistema operativo allí, Sony nunca publicó archivos de actualización de más de 256 MB.


Previous: 6. E/S y retrocompatibilidad

Next: 8. Juegos


Rodrigo Copetti © 2026 RSS Feed

Ir a la edición moderna

Inicio · Escritos · Soporte · Acerca del autor · Acerca del sitio web