« Arquitectura de la Wii (index)

Arquitectura de la Wii

Chapter 8: Sistema operativo


Tabla de contenidos

  1. SO del Starlet
  2. SO del Broadway
  3. Medio de actualización
  4. Secuencia de arranque

Generalmente hablando, hay dos sistemas operativos que conviven en la Wii. Uno es ejecutado en el Broadway (CPU principal) y el otro en el Starlet (CPU de I/O). Ambos residen dentro de los 512 MB de memoria de la NAND y pueden ser actualizados.

SO del Starlet

El Starlet ya es una pieza de hardware interesante, pero su software es aún más intrigante. Verás, este sistema operativo no solo tiene acceso completo a cada rincón de la consola, sino que también es lo primero que se ejecuta cuando se presiona el botón de encendido.

El Starlet ejecuta un sistema extraoficialmente denominado Sistema Operativo de Entradas/Salidas o "IOS" (por favor, no confundir esto con el iOS de Apple) . IOS es un sistema operativo con todas las funciones compuesto por:

Con esto en mente, la tarea principal de IOS es aliviar la carga de trabajo de la CPU principal abstrayendo I/O y seguridad. Por este motivo, los programadores no tienen que preocuparse de esos asuntos. Para lograr esto, el Starlet reserva entre 12 y 16 MB de RAM GDDR3 para sus tareas, el resto es utilizado por el Broadway y la GPU.

El Broadway y el Starlet se comunican entre sí mediante un protocolo de comunicación entre procesos o "IPC": en pocas palabras, ambas CPU comparten dos registros cada una. Una CPU puede escribir en los registros de la otra (los datos escritos pueden representar un comando o un valor) y desde allí, la CPU receptora puede realizar una función en respuesta.

El sistema de actualización de IOS es un poco complicado: las versiones actualizadas de IOS no se instalan sobre las antiguas, sino en otra ranura (el área reservada en NAND para IOS está dividido en "ranuras"). Esto es puramente por razones de compatibilidad, ya que permite que el software antiguo de la Wii siga usando la misma versión de IOS para la que fue desarrollado.

Nintendo lanzaba a menudo actualizaciones de IOS para mejorar la compatibilidad con el hardware (lo cual era necesario cuando se enviaba un nuevo accesorio). Únicamente hay una excepción cuando las actualizaciones de IOS realmente reemplazan a las anteriores: cuando se descubre que una versión específica tiene una vulnerabilidad explotable. Esto era sólo por razones de seguridad.

Cuando se inserta un juego de la GameCube, sucede algo diferente: el Starlet inicia un MIOS en su lugar. Esta variante de IOS solo ordena al Starlet emular la IPL original.

SO del Broadway

Este se conoce comúnmente como el menú del sistema y se ejecuta efectivamente en la CPU PowerPC principal (Broadway).

Image
Menú del sistema con muchos canales instalados.

Image
Menú de ajustes utilizado para cambiar la configuración.

Image
El tablón de mensajes almacena cartas agrupadas por fecha.

En comparación con IOS, no lo consideraría un sistema operativo "completo", sino más bien un "programa" que permite al usuario realizar las siguientes operaciones:

Al igual que IOS, Nintendo también lanzó múltiples actualizaciones para este sistema. Algunos arreglaron agujeros de seguridad, otros agregaron más funciones. Una nueva característica notable fue la capacidad de almacenar canales en la tarjeta SD.

Cualquier programa que se ejecute en el Broadway (incluido el menú del sistema) depende de una versión específica de IOS para funcionar. Cuando se inicia un juego o un canal, el Starlet se reinicia usando la versión declarada de IOS necesaria.

Medio de actualización

Nintendo se refiere a ellas como ** Actualizaciones del sistema **. Contienen los dos sistemas operativos en el mismo paquete y utilizan números ordinales para el control de versiones. La última versión conocida es 4.3E, lanzada en junio de 2010.

Los paquetes de actualización del sistema se pueden obtener de los servidores de Nintendo o de los discos de juegos. Los usuarios pueden buscar actualizaciones manualmente usando el menú del sistema. Las actualizaciones son obligatorias si un juego requiere una versión específica de IOS que no está instalada (y el disco contiene los paquetes necesarios).

Secuencia de arranque

Hasta ahora hemos analizado dos sistemas operativos muy diferentes que residen en esta consola y se ejecutan simultáneamente. Esto parece bastante sencillo, aunque ambos deben coordinarse cuidadosamente durante el inicio de la consola para que funcione correctamente después.

Dicho esto, el proceso de arranque de esta consola es el siguiente :

  1. El usuario toca el botón ON en la consola.
  2. Etapa Boot0: El Starlet ejecuta un programa cableado que se encuentra en su Mask ROM integrada (1,5 KB).
    • En pocas palabras, el Starlet descifra y verifica la integridad de los primeros 96 KB de la NAND, luego el Starlet calcula su hash y lo compara con un hash guardado que se encuentra en la memoria OTP integrada del Starlet. Si ambos hashes no coinciden, entonces la consola se induce en un bucle infinito.
  3. Etapa Boot1: El Starlet ejecuta un pequeño programa que se encuentra en los 96 KB de la NAND antes mencionados.
    • Este programa simplemente le indicará al Starlet que inicialice (borre) los 64 MB de RAM GDDR3, luego descifre y verifique el resto de la NAND.
  4. Etapa Boot2: El Starlet carga el IOS inicial (necesario para el menú del sistema) y luego inicia el Broadway.
  5. El Broadway arranca el menú del sistema. El usuario toma ahora el control.

Previous: 7. E/S

Next: 9. Juegos


Rodrigo Copetti © 2026 RSS Feed

Ir a la edición moderna

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