Das iPhone OS als Vorreiter für Snow Leopard
ml, den 30. Oktober 2008Leider hält sich Apple trotz Lockerung des NDA zum Thema Entwicklung auf dem iPhone noch immer recht bedeckt. Trotzdem kann man auf den Entwicklerseiten von Apple ein paar interessante Details über das iPhone OS erfahren. Schaut man genauer hin, dann erkennt man, dass das iPhone OS nicht nur die fortschrittlichste Mobilplattform darstellt, sondern im Hause Apple die Rolle des technischen Vorreiters spielt.
Bereits kurz nach der Vorstellung des Geräts im Januar 2007 beschrieben wir in einem Artikel, welche Schlüsse man aus dem iPhone OS für Mac OS X Leopard ziehen konnte. Letztlich musste das Desktop-System sogar einige Monate warten, damit das iPhone-System rechtzeitig fertig wurde.
Seit dem hat Apple viele Erfahrungen mit der Mobilplattform gesammelt, deren Erkenntnisse teilweise bereits im kommenden Jahr in Snow Leopard Einzug halten werden. Andere Funktionen werden wohl erst in den nächsten Jahren den Weg in Mac OS X finden.
Effizienz und Optimierung
Erklärtes Ziel von Snow Leopard ist es die Effizienz und den Ressourcenverbrauch von System und Anwendungen deutlich zu verbessern. Ein Beispiel dafür ist QuickTime X.
Das aktuelle QuickTime 7.5.5 geht in seinem Inneren noch immer auf die Wurzeln aus dem Jahre 1990 zurück. Seit dem wurde QuickTime um immer mehr Multimedia-Formate und Funktionen ergänzt. Inzwischen ist QuickTime das, was man einen Software-Dinosaurier nennt: alt, schwerfällig, anfällig für Sicherheitslücken und kurz davor auszusterben.
Das iPhone dagegen verfügt über ein schlankes und effizientes Multimedia-Framework, welches selbst mit der begrenzten Rechenleistung des verbauten ARM-Prozessors H.264-Videos flüssig abspielen kann. Dieses Multimedia-Framework wird nächstes Jahr, natürlich um weitere Funktionen erweitert, als QuickTime X in Snow Leopard das Licht der Welt erblicken. So funktioniert Technologietransfer.
Ein weiteres Beispiel, wie Apple zukünftige Optimierung in Snow Leopard vornehmen kann, stammt ebenfalls vom iPhone. Der Arbeitsspeicher den ein Programm auf dem iPhone verbrauchen darf, ist auf wenige 10 MB begrenzt. Überschreitet ein Programm diese Grenze, dann wird es früher oder später vom System beendet. Daher muss ein Programm also sehr gewissenhaft mit seinem Speicher umgehen.
Mein Beispiel bezieht sich auf die Art und Weise, wie in Cocoa Touch Tabellen zur Anzeige von Daten implementiert sind. Jede Tabelle besteht aus Zeilen und Spalten. Ein bestimmter Index in einer Spalte und Zeile beschreibt eine Zelle. Eine Tabellenzelle ist auch in Cocoa Touch die kleinste Einheit aus der Tabellen aufgebaut werden. Eine Tabellenzelle kann Text, Bilder und andere Elemente enthalten.
Wird also eine Tabelle auf dem Bildschirm gezeichnet, dann müssen zahlreiche Tabellenzellen gezeichnet werden. Doch statt für jede einzelne Zelle ein entsprechendes Objekt im Speicher zu allokieren, lässt sich für gleichartige Tabellenzellen immer wieder das selbe Objekt verwenden. Statt dessen werden nur die Daten des Objekts an die jeweilige Zelle angepasst. Im besten Fall braucht man so für eine Tabelle nur ein Tabellenzellen-Objekt.
Genau solche Techniken wird Apple auch in Snow Leopard verwenden, um den Speicherverbrauch von Programmen deutlich zu senken. Zwar sind die Speicherpreise in den letzten Jahren immer weiter gesunken und die aktuellen Notebooks kommen teilweise schon mit 4GB RAM, aber Hauptspeicher der nicht vom Programm belegt wird, steht für Daten zur Verfügung.
Sandboxing und Code-Signierung
Die Mac-Plattform ist bislang nicht durch übermäßige Sicherheitslücken und daraus resultierende Malware-Attacken aufgefallen. Besondere Sicherheitsmaßnahmen hat Apple dabei für die iPhone-Plattform ergriffen, denn ein durch Malware oder einfach nur schlecht programmierte Anwendungen instabiles iPhone, wäre der schlimmste anzunehmende Fall für die noch junge Plattform.
Eine Technik ist das sogenannte Sandboxing. Einem Programm das in einer Sandbox läuft, wird der Zugriff auf bestimmte Systemressourcen verweigert. Damit wird verhindert, dass eine kompromitierte Anwendung Schaden am Betriebssystem oder anderen Anwendungen anrichten kann. Sandboxing kommt teilweise heute schon zum Einsatz. So laufen z. B. Java-Programme jeweils in einer eigenen Sandbox. Es ist daher zu erwarten, dass diese Technik zukünftig vermehrt genutzt wird.
Eine weitere Technologie die in Verbindung mit Sandboxing zum Einsatz kommen wird, ist die sogenannte Code-Signierung. Mit Hilfe eines auf den Entwickler ausgestellten Zertifikats wird ein Programm signiert. Damit lässt sich immer zweifelsfrei die Herkunft und die Integrität des Programms feststellen. Apple verwendet diese Technik bei Programmen für den App Store, um die Herkunft eines Programms festzustellen und Malware zu verhindern.
Code-Signierung wird mittelfristig auch in Mac OS X Einzug halten. Ob es obligatorisch oder optional wird, wird sich erst zeigen. Zumindest wird es ein sanfter Übergang werden, bei dem signierte Programme weiterhin vollen Zugriff auf alle Betriebssystemfunktionen erhalten werden. Nicht signierte Programme werden dann in einer Sandbox mit reduziertem Funktionsumfang laufen.
Fazit
Einige der vorgestellten Techniken vom iPhone werden noch nicht in Snow Leopard auftauchen. Für Code-Signierung und Sandboxing ist es noch zu früh. Erst einmal muss Apple den vollständigen Übergang auf die 64-Bit-Architektur meistern. Aber die Erfahrungen die Apple mit dem iPhone in Bezug auf Effizienz und Optimierung gesammelt hat, werden in Snow Leopard einfließen. Mac OS X ist inzwischen seit über 7 Jahren auf dem Markt. Mit Snow Leopard wird das System fit für die nächsten 7 Jahre gemacht.