--------Wii IOS in a nutshell--------
IOS is the operating system that runs on the Starlet co-processor inside the Hollywood package. It provides services that are used by vWii and Wii code to access many system devices: USB, networking, security, app management, NAND flash storage, SD card, optical disc, and also WiiConnect24 features (WiiConnect24 is not for the vWii).
--------Wii IOS wads in a nutshell--------
Wii IOS wads are used for the system menu. The Wii originally comes with an IOS which is used in many cases (Downloading apps, updating Wii digital software, etc). When you start the application you use to install your wads it will ask you to choose your IOS. The reason it askes for your IOS is because on your system menu the digital software (Wii Shop, Mii Channel, etc) has a icon size and why that matters is because if you have a wad you want to install then select your system menu IOS and your wad channel will be installed with the correct size. (If you select the wrong IOS your Wii will brick!)
--------More Wii IOS information--------
All software using the Wii SDK or libogc relies on a running IOS on the Starlet (with a few exceptions in the latter case - it is possible to shut down IOS services from libogc and work without it). Typically, the only times IOS is not in use is when running GameCube software (which uses MIOS instead - effectively a dummy IOS), or when BootMii and related software is in use (which uses mini instead).
IOS is versioned in a somewhat unique way. Instead of there being a single canonical version of IOS, there are multiple branches, each typically corresponding to one or more versions of the Wii SDK. Each branch is apparently specified to have a completely frozen API, and old versions are only updated to patch bugs (often security bugs) - Nintendo at one point created an entirely new IOS branch that differed only in the default value for the TCP buffer size. A fully updated Wii contains one copy of the latest version of each branch of IOS. On a Wii, these are installed as separate titles, often called "IOS slots". Due to this design, it is generally considered safe to uninstall, reinstall, or patch an IOS or IOS module, as long as it is not the slot used by the System Menu - if anything goes wrong, the broken version can be safely uninstalled and a vanilla copy reinstalled. IOS slots have title IDs 1-3 through 1-255. Unused (high) IOS slots are often used to install patched versions of IOS or alternative Starlet software (e.g. BootMii as IOS is installed as IOS254, which when invoked will subsequently load armboot.bin from the SD card, typically mini). See IOS History for a comprehensive list of IOS slots and versions.
IOS is not a "hypervisor", as it runs on a dedicated, separate CPU. However, IOS does isolate its memory from access by the main Broadway CPU, has the ability to reboot (and hence bootstrap) it, and is designed to be secure if the PowerPC side is compromised (although in practice many exploits have been found). In that sense, IOS is higher in the security hierarchy than code running on the PowerPC.
Since the IOS API is largely forwards-compatible, it is often possible (though not recommended) to run official software with an alternate IOS branch or slot. Homebrew software will often run under a relatively large range of IOS versions, sometimes constrained by requiring newer features (e.g. USB EHCI support).
When the Wii is in WiiConnect24 standby mode (yellow LED), the main PowerPC CPU is off, but IOS is still running.
--------Wii Homebrew websites with more information--------
WiiBrew: http://wiibrew.org/
The Homebrew Channel: http://hbc.hackmii.com/
Letterbomb: http://please.hackmii.com/ <----- Not working with vwii
Ask me if you have any more questions!
IOS is the operating system that runs on the Starlet co-processor inside the Hollywood package. It provides services that are used by vWii and Wii code to access many system devices: USB, networking, security, app management, NAND flash storage, SD card, optical disc, and also WiiConnect24 features (WiiConnect24 is not for the vWii).
--------Wii IOS wads in a nutshell--------
Wii IOS wads are used for the system menu. The Wii originally comes with an IOS which is used in many cases (Downloading apps, updating Wii digital software, etc). When you start the application you use to install your wads it will ask you to choose your IOS. The reason it askes for your IOS is because on your system menu the digital software (Wii Shop, Mii Channel, etc) has a icon size and why that matters is because if you have a wad you want to install then select your system menu IOS and your wad channel will be installed with the correct size. (If you select the wrong IOS your Wii will brick!)
--------More Wii IOS information--------
All software using the Wii SDK or libogc relies on a running IOS on the Starlet (with a few exceptions in the latter case - it is possible to shut down IOS services from libogc and work without it). Typically, the only times IOS is not in use is when running GameCube software (which uses MIOS instead - effectively a dummy IOS), or when BootMii and related software is in use (which uses mini instead).
IOS is versioned in a somewhat unique way. Instead of there being a single canonical version of IOS, there are multiple branches, each typically corresponding to one or more versions of the Wii SDK. Each branch is apparently specified to have a completely frozen API, and old versions are only updated to patch bugs (often security bugs) - Nintendo at one point created an entirely new IOS branch that differed only in the default value for the TCP buffer size. A fully updated Wii contains one copy of the latest version of each branch of IOS. On a Wii, these are installed as separate titles, often called "IOS slots". Due to this design, it is generally considered safe to uninstall, reinstall, or patch an IOS or IOS module, as long as it is not the slot used by the System Menu - if anything goes wrong, the broken version can be safely uninstalled and a vanilla copy reinstalled. IOS slots have title IDs 1-3 through 1-255. Unused (high) IOS slots are often used to install patched versions of IOS or alternative Starlet software (e.g. BootMii as IOS is installed as IOS254, which when invoked will subsequently load armboot.bin from the SD card, typically mini). See IOS History for a comprehensive list of IOS slots and versions.
IOS is not a "hypervisor", as it runs on a dedicated, separate CPU. However, IOS does isolate its memory from access by the main Broadway CPU, has the ability to reboot (and hence bootstrap) it, and is designed to be secure if the PowerPC side is compromised (although in practice many exploits have been found). In that sense, IOS is higher in the security hierarchy than code running on the PowerPC.
Since the IOS API is largely forwards-compatible, it is often possible (though not recommended) to run official software with an alternate IOS branch or slot. Homebrew software will often run under a relatively large range of IOS versions, sometimes constrained by requiring newer features (e.g. USB EHCI support).
When the Wii is in WiiConnect24 standby mode (yellow LED), the main PowerPC CPU is off, but IOS is still running.
--------Wii Homebrew websites with more information--------
WiiBrew: http://wiibrew.org/
The Homebrew Channel: http://hbc.hackmii.com/
Letterbomb: http://please.hackmii.com/ <----- Not working with vwii
Ask me if you have any more questions!