IOS

  • Input-Output-System der Wii, welches auf dem Coprocessor "Starlet" läuft und ein Teil des eigentlichen Betriebssystems darstellt.
    Das IOS ist Bestandteil des Wii-Systems. Es handelt viele wichtige Funktionen der Konsole. Im Laufe der Updates von Nintendo wurde stetig neue IOS hinzugefügt, um die Funktionalität zu steigern. Es ist davon auszugehen, dass IOS soviel bedeutet wie Input-Output-System. Es gibt mehrere IOS; im Prinzip kann man salopp sagen, dass sie ihre Arbeit "teilen" (Arbeitsteilung). So hat jedes IOS seinen Aufgabenbereich. Beispiel: IOS38 ist das "WiiSpeak" IOS. Es handelt das I/O-System für die Kommunikation via WiiSpeak in Spielen wie z.B. Animal Crossing - Let's go to the City. Ein IOS hat eine bestimmte Ordnerstruktur/hierarchie. Sie ist immer so und kann durch unsignierten Code via HomebrewChannel modifiziert werden, was äußerst gefährlich ist, denn bestimmte IOS stellen die Basis für ein funktionierendes System Menu dar: wenn da was falsch läuft kommt es zu einem Brick! IOS laufen auf dem Coprocessor "Starlet" und werden von fast allen Anwendungen auf der Wii genutzt. Es gibt nur wenige Ausnahmen. . Dieser wurde von Segher benannt; einem Mitglied aus Team Twiizer. Nintendo hat damit nichts zu tun. Die Struktur ist wie folgt in einem "Linux-ähnlichen" System in einer /dev/ Struktur angeordnet und demnach auch klassifiziert:

    FFS
    * /dev/boot2
    * /dev/flash
    * /dev/fs

    ES
    * /dev/aes
    * /dev/es
    * /dev/hmac
    * /dev/sha

    DIP
    * /dev/di

    ETH

    * /dev/net/usbeth/top

    KBD
    * /dev/usb/kbd

    KD
    * /dev/net/kd/request
    * /dev/net/kd/time

    NCD
    * /dev/net/ncd/manage
    * /dev/net/wd/top (Yes, this is actually created by NCD, not WD)

    OH0/1
    * /dev/usb/ehc
    * /dev/usb
    * /dev/usb/oh0
    * /dev/usb/oh1

    SDI
    * /dev/sdio/slot0

    SO
    * /dev/net/ip/top - TCP/IP Socket operations
    * /dev/net/ip/bottom
    * Opens /dev/net/wd/top
    * Opens /dev/net/usbeth/top

    SSL
    * /dev/net/ssl

    STM
    * /dev/stm/eventhook
    * /dev/stm/immediate

    WD
    * /dev/net/wd/command
    * /dev/listen ("Indication RM")
    * Opens /dev/wl0
    * Opens /dev/stm/immediate

    WL
    * /dev/wl0
    * Opens /dev/listen

    Diese Anordnung ist wirklich einzigartig und somit auch gewissermaßen von Nintendo "patentiert". Jede "Kategorie" hat ihre eigenen Zuständigkeitsbereiche; um nur ein paar gute Beispiele zu geben:

    FFS: das FileSystem. Für den korrekten Bootvorgang der Wii zuständig.
    ES: Installieren/Löschen von Savegames, VC Games, und Channels jeglicher Art (siehe auch Fakesigning). das ES_ System hat einen eigenen Befehlssatz und somit einen eigenen Errorcode Satz.
    DIP: U.a. zuständig für das Abspielen von DVDs/Spielen. Durch das [lexicon]cIOS[/lexicon] wird hier gepatcht; die DI Module werden verändert mit Werten, die es erlauben Backups abzuspielen, also keine WODs (=Wii Optical Discs, sprich Original Gepresste Spiele), sondern normale DVD-R Rohlinge.





    IOS
    haben eine eingebauten elf loader der die elf Content des
    IOS lädt die ersten IOS hatten nur ein Content
    die neueren mehrere .Dieser loader enthält meistens auch den Kern des
    IOS (0xFFFF000 - 0xFFFFFFFF)(in elf Format) die anderen Content
    sind im MEM2 und haben eingeschränkte rechte.(elf können mit readelf aus
    devkitpro analysiert werden (Achtung ARM elf32 typ)) außerdem haben diese Starter
    eine 15 Byte großen Header.(elf ist ein offizielles Format skyfree.org/linux/references/ELF_Format.pdf)

    22.032 mal gelesen