« Architektura Wii (index)

Architektura Wii

Chapter 8: Operační systém


Obsah

  1. OS Starletu
  2. OS Broadwaye
  3. Podoba aktualizací
  4. Sekvence spouštění

Obecně řečeno, ve Wii jsou dva operační systémy. Jeden běží na Broadwayi (hlavní CPU) a druhý na Starletu (I/O CPU). Oba systémy jsou uloženy v 512 MB paměti NAND a mohou být aktualizovány.

OS Starletu

Starlet je už tak celkem zajímavý kousek hardwaru, ale jeho software je ještě zajímavější. Víte, nejen že tento OS má úplný přístup ke každé součástce v konzoli, ale je to také první věc, která se zapne po stisknutí tlačítka napájení.

Starlet běží na systému neoficiálně nazývaném Input/Output Operating System neboli „IOS" (nepleťte si to prosím se systémem iOS od Applu) . IOS je plně funkční operační systém složený z:

S ohledem na to je hlavním úkolem IOSu snížit pracovní zátěž hlavního CPU abstraktováním I/O a zabezpečení. Z tohoto důvodu se programátoři nemusí těmito záležitostmi zabývat. Aby toho šlo dosáhnout, Starlet si pro sebe zabírá mezi 12 a 16 MB GDDR3 RAM, zbytek používá Broadway a GPU.

Broadway and Starlet spolu komunikují pomocí protokolu Inter-Process Communication neboli „IPC": Ve zkratce sdílejí oba CPU dva registry. Jedno CPU může zapisovat do registrů druhého (zapisované údaje mohou představovat příkaz nebo hodnotu) a odtamtud přijímající CPU může plnit funkci jako odpověď.

Systém aktualizací IOS je trochu záludný: Aktualizované verze IOS nenahrazují staré verze, místo toho jsou uloženy do nového slotu (vyhrazená oblast v NAND pro IOS je rozdělena na „sloty"). To je čistě z důvodů kompatibilty, protože to umožňuje staršímu Wii softwaru nadále používat stejnou verzi IOS, pro kterou byl vyvinut.

Nintendo často vydávalo IOS aktualizace s cílem zlepšit podporu hardwaru (což bylo nezbytné, když bylo vydáno nové příslušenství). Existuje pouze jedna výjimka, a to když aktualizace IOS skutečně nahradila starší verze: když byla v určité verzi zjištěna zranitelnost. To bylo čistě z bezpečnostních důvodů.

Když je vložena GameCube hra, dojde k něčemu jinému: Starlet spustí MIOS. Tato varianta IOS pouze nařídí Starletu emulovat původní BIOS.

OS Broadwaye

Tento je obecně znám jako System Menu a ve skutečnosti běží na hlavním PowerPC CPU (Broadway).

Image
Systémové menu se spoustou nainstalovaných kanálů.

Image
Nastavení slouží ke změně nastavení.

Image
Na nástěnce jsou dopisy seskupené podle data.

Ve srovnání s IOS bych to nepovažoval za „plnohodnotný" OS, ale spíše za „program", který uživateli umožňuje provádět následující operace:

Nintendo vydávalo aktualizace tomuto systému podobně jako IOSu. Některé opravily bezpečnostní díry, jiné přidaly další funkce. Významnou novou funkcí byla možnost ukládat kanály na SD kartu.

Jakýkoliv program běžící na Broadwayi (včetně System Menu) se spoléhá na konkrétní verzi IOS. Po spuštění hry nebo kanálu se Starlet restartuje, a to do deklarované verze IOS.

Podoba aktualizací

Nintendo je označuje jako System updates. Obsahují oba operační systémy ve stejném balíčku a používají normální čísla verzí. Poslední známá verze je 4.3E, vydána v červnu 2010.

Balíčky aktualizací systému lze načíst z Nintendo serverů nebo herních disků. Uživatelé mohou aktualizace zkontrolovat ručně pomocí systémové nabídky. Aktualizace jsou vynuceny, pokud hra vyžaduje konkrétní verzi IOS, která není nainstalována (a disk obsahuje požadované balíčky).

Sekvence spouštění

Zatím jsme si představili dva zcela odlišné operační systémy, které se nacházejí v této konzoli a které běží současně. To se zdá poměrně jednoduché, ale oba musí být během spouštění konzole pečlivě koordinovány, aby poté řádně fungovaly.

Proces spouštění této konzole je následující :

  1. Uživatel stiskne tlačítko POWER na konzoli.
  2. Fáze Boot0: Starlet spouští napevno uložený program, který se nachází v jeho vestavěné MASK ROM (1.5 KB).
    • Ve zkratce Starlet dešifruje a zkontroluje integritu prvních 96 KB NAND, poté vypočítá svůj hash a porovná jej s uloženou hodnotou nacházející se na vestavěné OTP paměti. Pokud se oba hashe neshodují, pak se konzole restartuje v nekonečné smyčce.
  3. Fáze Boot1: Starlet spouští malý program nacházející se ve zmíněných 96 KB na NAND.
    • Tento program pouze instruuje Starlet, aby inicializoval (vyčistil) 64 MB GDDR3 RAM, poté dešifruje a ověří zbytek NAND.
  4. Fáze Boot2: Starlet načte počáteční IOS (potřebný pro System Menu) a pak spustí Broadway.
  5. Broadway spustí System Menu. Uživatel nyní může převzít ovládání.

Previous: 7. I/O

Next: 9. Hry


Rodrigo Copetti © 2026 RSS Feed

Přepnout na moderní verzi

Domů · Články · Podpora · O autorovi · O webu