Nintendo also do a bizarre thing with the software. The platform bindings are in an "ios" (eg the provider for wifi, controllers, memory, storage etc). Rather than use one, and upgrade it over time, new versions are installed alongside older ones. Each game/app says what it uses, and the system loads that ios when the game/app loads. This results in least risk of bugs, but it also means that new functionality won't be made available to existing titles. Only one ios can be running at a time.
This software architecture is not conducive to what you expect from modern systems with hypervisors and multiple things running alongside the games and apps. Read more at http://wiibrew.org/wiki/IOS
This software architecture is not conducive to what you expect from modern systems with hypervisors and multiple things running alongside the games and apps. Read more at http://wiibrew.org/wiki/IOS