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:
- Modo privilegiado: Cell otorga acceso a todos los rincones de su hardware (registros, direcciones de memoria, opcodes, etc.) . Por razones de seguridad, este modo solo debería ser utilizado por el núcleo del sistema operativo (es decir, el Kernel).
- Además, Cell también estaba preparado para ejecutar múltiples sistemas operativos de forma simultánea y, para lograrlo a nivel de hardware, el 'modo privilegiado' puede subdividirse en Privilege 1 y Privilege 2. 'Privilege 2' está destinado a ser usado por un Kernel, mientras que 'Privilege 1' lo usa un Hypervisor, que arbitra los recursos entre los distintos Kernels que corren al mismo tiempo.
- La funcionalidad del 'hipervisor' también se convirtió en un área de investigación en las sedes de IBM .
- Modo usuario: como su nombre indica, Cell solo otorga un conjunto limitado de recursos y está orientado a las aplicaciones tradicionales que corren sobre el sistema operativo. Si por alguna razón un programa solicita acceso a una ubicación protegida, la ejecución salta al Kernel o al Hypervisor para que decida si el acceso debe concederse o no.
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:
- Loaders: en pocas palabras, los programas/binarios de esta consola están sistemáticamente cifrados. Así pues, los 'Loaders' son programas que ejecutan los programas 'reales'. Dicho de otro modo, los Loaders toman los binarios, los descifran, comprueban su autenticidad y finalmente los envían al procesador correspondiente (el PPE o cualquier SPE) para su ejecución. Por si esto ya parece complicado, los Loaders están encadenados entre sí para proteger aún más el software. Por último, los Loaders se encuentran en múltiples soportes.
- Sony actualiza algunos Loaders (mediante actualizaciones de software) mientras que otros no pueden modificarse. Esto es independiente de si están instalados en almacenamiento reescribible, ya que algunos loaders están cifrados con claves específicas de cada consola y no pueden alterarse una vez que esta sale de fábrica (al menos por medios tradicionales).
- Archivos del sistema: comprenden binarios de bajo nivel (ejecutados mediante Loaders), metadatos para organizar el hardware, utilidades y otros recursos (fuentes, imágenes, etc.). Al igual que los Loaders, hay archivos del sistema específicos de cada consola que no pueden sustituirse ni regenerarse automáticamente.
- Algunos binarios tomaron prestado código de los proyectos Free BSD y NetBSD .
- Contenido del usuario: incluye archivos de configuración (configuración de internet, etc.), datos utilizados por los juegos (archivos de instalación de juegos y partidas guardadas) y datos generados automáticamente por la consola (información del disco duro, etc.).
- A diferencia de las otras capas, la destrucción de estos datos no conlleva consecuencias catastróficas.
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).

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:
- Nivel 1: aquí reside el Hypervisor programado por Sony. También denominado
lv1, este programa es la puerta de acceso a cada bit de esta consola y está encadenado a las excepciones generadas por la MMU. Dicho esto, el hipervisor solo acepta solicitudes de programas autorizados por Sony (los que residen en el siguiente nivel de privilegio). Mientras el Hypervisor reside en memoria, también proporciona llamadas al sistema de bajo nivel y soporte para el sistema de archivos FAT16. - Nivel 2: reservado naturalmente para el Kernel, un programa privilegiado también denominado
lv2o 'Supervisor'. El kernel abstrae el hipervisor para que los programas del nivel 3 no interactúen con él directamente. El Kernel proporciona funciones de multi-threading tanto para el PPU como para el SPU. En última instancia, el Kernel inicializa los módulos del espacio de usuario. - Nivel 3: el resto de los programas (llamados userland o userspace), incluyendo los juegos y el visual shell, se ejecutan en este nivel. Estos plebeyos están a merced del Kernel para comunicarse con el hardware de la consola y no pueden iniciar ningún nuevo proceso o programa de forma unilateral.
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 :
- Loaders específicos de la consola: concretamente, dos loaders llamados
bootldrymetldr. Estos archivos están cifrados con una clave grabada durante la fabricación, ¡por lo que no pueden reemplazarse!- Con todo, existen funciones ocultas en el hipervisor de Sony que permiten actualizarlos, aunque, por alguna razón, nunca se han utilizado .
- CoreOS: la primera mitad del sistema operativo. Consiste principalmente en más loaders que continuarán el proceso de arranque y, en última instancia, inicializarán la segunda mitad (GameOS). CoreOS también proporciona el Recovery Menu, un shell alternativo con utilidades de mantenimiento que los usuarios pueden usar para intentar reparar su consola.
- Identificadores únicos: similares al IDStorage del PSP, la consola los usa para controlar hardware asegurado como la unidad Blu-ray; o Sony los usa para autenticar la consola con sus servidores online (como la clave IDPS).
- Recursos de seguridad: algunos programas dependen de ellos para realizar operaciones de seguridad. Por ejemplo, las películas Blu-ray con DRM comprueban un bloque llamado Virtual Table Rights Management (VTRM). Sony también almacena herramientas y registros de revocación para incluir en listas negras certificados de seguridad que hayan sido comprometidos.
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:
- El Visual Shell (VSH): continuación de la icónica interfaz del PSP, también incluye una gran cantidad de módulos (plugins) y recursos.
- Emuladores: los programas mencionados que permiten a la PS3 ejecutar juegos de PS1, PS2 o PSP. El emulador de PS2 concreto que se carga depende de la revisión de la consola (si tiene hardware de PS2 completo, parcial o ningún hardware de PS2).
- Librerías en tiempo de ejecución: los programas desarrollados con el SDK de Sony están vinculados dinámicamente a un conjunto de librerías almacenadas aquí.
- Reproductor Blu-ray: programas que gestionan la interacción con la unidad Blu-ray y la decodificación de películas.
- Recursos del sistema: como fuentes y certificados de los que dependen los binarios para funcionar.
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:
- Contenido del usuario: incluyendo partidas guardadas, trofeos (más información en la sección 'Juegos') y otros datos relacionados con el usuario.
- Recursos de los juegos: los juegos pueden copiar archivos del disco al disco duro para mejorar los tiempos de carga. El sistema operativo los trata como 'datos de juego'.
- Caché: una partición separada de 2 GB está disponible para los juegos como almacenamiento temporal (en caso de que la RAM principal no sea suficiente).
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) :
- 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.
- El vector de reset del PPU de Cell apunta a su ROM oculta, que almacena las rutinas para localizar y descifrar
bootldrde la Flash. El fragmento descifrado es cargado por el primer SPU en isolation mode. - El SPU, ya aislado, habiendo cargado
bootldr, inicializa parte del hardware (memoria XDR e interfaces de E/S), descifra un binario llamadolv0e instruye al PPU para ejecutarlo. - El PPU, que ya ejecuta
lv0, desciframetldr(un loader específico de la consola) y lo envía al tercer SPU, de nuevo en isolation mode. - El SPU2, que ahora ejecuta
metldr, ejecuta cinco loaders más secuencialmente:lv1ldrdescifra y cargalv1, que contiene el Hypervisor que toma el control del primer nivel de privilegio. Además,lv1configura el disco duro, la unidad Blu-ray y el RSX.lv2ldrdescifra y cargalv2, 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.appldrdescifra y cargavsh(el Visual Shell) y otras dependencias.vshpermitirá posteriormente al usuario cargar un juego.isoldrdescifra 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).

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

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).

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

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

El XMB permite instalar juegos, actualizaciones y expansiones (DLC) mediante un instalador de paquetes nativo.
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.

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.

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.
