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:
- Microkernelu: ovládá procesor ARM9, spouští procesy a komunikuje s jiným hardwarem pomocí ovladačů.
- Ovladačů: umožňují komunikaci s hardwarem mimo CPU (I/O).
- Procesů: provádí úkoly jako je správa sítě nebo zavedení souborového systému.
- Kryptografického jádra: zrychluje šifrování (pouze AES a SHA-1).
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).

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

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

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:
- Spustit Wii/GameCube hru: pouze pokud je vložena originální hra.
- Změnit nastavení konzole: mimo jiné včetně času, data, režimu videa nebo polohy sensor baru.
- Spustit aplikace: Jedna z novinek této konzole je schopnost instalovat malé Wii hry (nazývané „WiiWare"), retro hry („Virtual Console") nebo jen pohodlné aplikace (jako je internetový prohlížeč). Nintendo je nazývalo kanály, ale je OS je označuje jako tituly.
- Uživatelé si mohli stáhnout/koupit kanály prostřednictvím předinstalovaného kanálu Wii Shop Channel.
- Tituly Virtual Console v sobě obsahovaly emulátor, který spouštěl samotnou hru. Je dost zvláštní, že emulátor není sdílen napříč systémem ani mezi hrami stejné platformy. To umožňuje optimalizovat emulátor pro konkrétní hry.
- Odesílat/přijímat zprávy: Wii mají jedinečné ID (natvrdo zapsané v jejich SEEPROM čipu), které lze sdílet pro výměnu zpráv mezi ostatními Wii. Zprávy najdeme v Message Boardu.
- Nintendo i hry samotné toto médium používaly také k posílání newsletterů.
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í :
- Uživatel stiskne tlačítko POWER na konzoli.
- 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.
- 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.
- Fáze Boot2: Starlet načte počáteční IOS (potřebný pro System Menu) a pak spustí Broadway.
- Broadway spustí System Menu. Uživatel nyní může převzít ovládání.