MACNOTES

Veröffentlicht am  30.10.08, 23:22 Uhr von  

Das iPhone OS als Vorreiter für Snow Leopard

iPhone OS XLeider 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 AppStore, 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.

 Und wie ist deine Meinung?  Schreib uns einfach!

 16 Kommentar(e) bisher

  •  mahddin sagte am 31. Oktober 2008:

    Ich hab hier schon oft genörgelt und kritisiert.
    ABER:
    Großartig!!Toller Artikel, für Pro und Anfänger was dabei und alle wenigen Infos zusammengetragen und weitergedacht! Dickes Lob und bitte bitte bitte mehr davon!

    Antworten 
  •  markus sagte am 31. Oktober 2008:

    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.

    Diesen Teil kann ich nicht ganz nachvollziehen. Wie darf man sich das bei Photoshop und co vorstellen?

    Antworten 
  •  ml sagte am 31. Oktober 2008:

    @markus: Läuft Photoshop auf dem iPhone? Bitte den zitierten Satz nochmal genau lesen.

    Antworten 
  •  fossil12 sagte am 31. Oktober 2008:

    Ein Lob für den Beitrag auch von mir. Sehr informativ und interessant…

    Antworten 
  •  DB sagte am 31. Oktober 2008:

    Fairerweise sollte man aber erwähnen, dass Leopard auch bereits schon mit Sandboxing umgehen kann.
    Ebenso sind alle in Leopard von Apple installierten Programm code-signiert.

    Antworten 
  •  DB sagte am 31. Oktober 2008:

    Antworten 
  •  Henri sagte am 31. Oktober 2008:

    Guter Artikel!

    Vielen Dank.

    Antworten 
  •  Medman sagte am 31. Oktober 2008:

    Guter Artikel – falsches Fazit.

    Wer möchte denn wirklich, das Codesignierung eingeführt wird. Wir erleben doch jetzt schon jeden Tag, das Apple das ausnutzt und es so z.B. auf dem iPhone kein Opera oder Firefox Derivat geben wird. Ja lassen wir uns das denn auch noch bald auf dem Mac selbst vorschreiben. So nach dem Motto “wie, das Programm braucht Internetzugriff – nicht ohne Signatur – leider müssen wir ablehnen, das Programm zu signieren…”

    Vielleicht ist das nur das Worst Case Szenario was nicht sofort auf uns zukommt – aber ermöglicht wird dies doch solche Techniken – und da sollte ein Artikel, zumindest meiner Meinung nach, nicht nur die Vorzüge darstellen sondern auch Risiken aufzählen.

    Antworten 
  •  Jon. sagte am 31. Oktober 2008:

    Ein guter Artikel! Sehr informativ!

    [kleine Bemerkung am Rande: unzählige Komma-Fehler...]

    Antworten 
  •  markus sagte am 31. Oktober 2008:

    Bin ich im falschen Film?

    “iPhone OS als Vorreiter für Snow Leopard” bedeutet für mich, dass die Technologie hinter dem iPhone OS für Snow Leopard verwendet wird. Also wird sich die Art und Weise der Programmierung im weißen Schnee-Leopard wiederfinden. Daher auch meine Frage, wie diese, von mir zitierte, Funktion umsetzbar sein soll.

    Antworten 
  •  ml sagte am 1. November 2008:

    @Medman: Ich würde Code-Signierung nicht prinzipiell ablehnen, denn Themen wir Trusted Booting und Attested Softwarestack benötigen die Signierung. Natürlich hast du Recht, wenn Code-Signierung zur Gängelung der Benutzer eingesetzt wird. Das sich Apple auf dem iPhone als moralische Instanz aufspielt und entscheidet, was auf das Gerät darf und was nicht, haben wir bereits an anderer Stelle kritisiert.

    Antworten 
  •  ml sagte am 1. November 2008:

    @markus: Was verstehst du unter Art und Weise der Programmierung? Um für das iPhone zu entwickeln, verwendet Apple die gleichen Entwicklungstools wie für Mac OS X. Ansonsten kommt auf dem iPhone mit Cocoa Touch ein naher Verwandter von Cocoa zum Einsatz. Um den Artikel vielleicht in einem Satz zusammen zu fassen: Mit dem iPhone hat Apple massive Erfahrungen gesammelt, wie ein Betriebssystem schlank und effizient aufgebaut werden muss und diese Erfahrungen werden in Snow Leopard einfließen.

    Antworten 
  •  markus sagte am 1. November 2008:

    Mit dem iPhone hat Apple massive Erfahrungen gesammelt, wie ein Betriebssystem schlank und effizient aufgebaut werden muss und diese Erfahrungen werden in Snow Leopard einfließen.

    Richtig. Und um meine Frage zusammenzufassen: Wird DIESE (if zu viel Arbeitsspeicher fressen, then Programm abschalten) Funktion, wie sie auf dem iPhone eingesetzt wird, auch im Snow Leopard Verwendung finden? Wenn ja, wie kann man sich das DORT (also auf meinem Mac, nicht iPhone) mit z.B. Photoshop vorstellen? Kannst du mir folgen?

    Antworten 
  •  ml sagte am 1. November 2008:

    @markus: Jetzt habe ich deine Frage verstanden. Ich denke nicht, dass es einen solchen Mechanismus für ein Desktop-OS geben wird. Dafür gibt es meiner Meinung nach mehrere Gründe. 1. haben Desktop-Rechner wesentlich mehr RAM als ein iPhone und 2. kann Mac OS X mittels Paging RAM frei machen, in dem Inhalte von nicht genutztem Arbeitsspeicher auf die Festplatte ausgelagert werden.

    Antworten 
  •  markus sagte am 2. November 2008:

    Okay, danke. War das ‘ne schwere Geburt! :)

    Antworten 
  •  Schlurchi sagte am 18. Juni 2009:

    Hallo Leute,

    Man kann nicht alles haben! Lieber ein wenig “Gängelung” als einen endlosen Kampf mit Viren, Trojanern und was noch sonst so alles die Systeme verseucht. Ich empfehle mal ein paar Takte mit der Windows-Fraktion dazu zu diesem Thema auszutauschen. In dieser Beziehung leben wir auf der “Insel der Seligen”.

    Gruß von Schlurchi

    Antworten 

Kommentar verfassen

 0  Tweets und Re-Tweets
       0  Likes auf Facebook
         0  Trackbacks/Pingbacks
          Werbung
          © 2006-2013 MACNOTES.DE. Made with insanely great for all things Mac. Apple.de