iPhoneOS 1.0: Entwickler führt erstes iPhone-System in Emulator aus
Apple stellte das allererste iPhone Anfang 2007 vor – und im Sommer brachte der Konzern das Gerät schließlich auf den Markt. Weniger Monate später erschien auch der erste iPod touch, bei welchem es sich quasi um ein iPhone ohne Mobilfunk handelte. Beide führten das Betriebssystem "iPhoneOS 1.0" aus, welches Apple im Jahr 2010 in das heute bekannte "iOS" umbenannte. Viele heutzutage selbstverständliche Funktionen wie zum Beispiel das Ausführen mehrerer Programme, iMessage oder gar der App Store existierten in "iPhoneOS 1.0" nicht – noch nicht einmal die App-Symbole konnte der Nutzer selbst anordnen.
Martjen de Vos investierte viel Arbeit, um das damalige "iPhoneOS 1.0" im bekannten Emulator QEMU ausführbar zu machen. Bei QEMU (kurz für Quick EMUlator) handelt es sich um einen erweiterbaren und flexiblen Open-Source-Emulator, welcher eine Vielzahl von Umgebungen mittels Emulation oder Virtualisierung nachbilden kann.
Problem: Undokumentierte HardwarekomponentenDe Vos nach war das größte Problem, die einzelnen Hardware-Komponenten des ersten iPhones korrekt nachzubilden, welche zum großen Teil komplett undokumentiert sind. Hierzu zählen zum Beispiel das LCD-Display und die dazugehörigen Framebuffer, die Multi-Touch-Steuerung wie auch die Hardware-Uhr und Timer. Noch nicht funktionsfähig ist in der aktuellen angepassten Variante von QEMU die Audio-Ausgabe und Teile der emulierten PowerVR-GPU wie auch der Hardware-Video- und Audio-Decoder.
AnleitungDer Entwickler veröffentlichte eine
Anleitung, wie man selbst die angepasste QEMU-Version als Quellcode herunterlädt, ein Programm daraus erstellt und die entsprechenden iPhoneOS-Systemdateien hinzufügt. Die Anleitung setzt allerdings ein gewisses Maß an Entwickler-Kenntnissen voraus und ist nicht für Endnutzer gedacht. Nach Abarbeiten der Anleitung sollte iPhoneOS 1.0 in QEMU booten:
Doch es gibt noch einige Probleme: Zum Beispiel stürzt die Emulation ab, sobald die Bildschirm-Tastatur eingeblendet wird. Außerdem gibt es noch einige zufällige Abstürze durch die Nachbildung des USB- und Flash-Memory-Controllers.