WWDC: Einblicke in Snow Leopard


Auf der Entwicklerkonferenz gelangen einige Einblicke in das kommende Mac OS X 10.6 “Snow Leopard”, das Apple möglicherweise Anfang des Jahres 2010 herausgeben will.

Statt auf neuen Funktionen lag der Fokus bei der Entwicklung der Version 10.6 auf der Verbesserung der Leistung und Stabilität. “Um weiterhin das am weitesten entwickelte Betriebssystem mit der besten Usererfahrung anbieten zu können, konzentrieren wir uns auf die Perfektionierung statt neue Funktionen zu entwickeln.”, sagte Apples Senior Vice President Bertrand Serlet.

Neu in OS X 10.6

Ein paar neue Funktionen gibt es aber trotzdem: So verstehen Mail, das Adressbuch und iCal jetzt den Microsoft Exchange Server 2007 und bringen volle Unterstützung für E-Mail, Kontakte und den Kalender mit.

QuickTime wird in die nächsthöhere Version gehoben und bekommt einen Neuen Name: QuickTime X. Technisches ist über QuickTime aber noch kaum bekannt. Apple nennt es die “Plattform der nächsten Generation” und verweist auf die Unterstützung von Internetstandards bei Medien. QuickTime X dürfte wohl auch durch die zahlreichen Updates der vergangenen Monate den Sprung auf die nächste Version geschafft haben.


Drei weitere Änderungen beziehen sich auf das System und sind zukunftsrelevant. Snow Leopard nutzt jetzt seine 64-Bit-Architektur, um die Größe des maximal verwendbaren Arbeitsspeichers auf 16 Terabytes zu heben – bislang liegt die Grenze bei 32 Gigabytes. Wie nötig diese Änderung ist, kann man derzeit schwer abschätzen. Die größten Speicherchips fassen heute 4 Gigabytes RAM, das macht in einem Computer mit 4 Slots 32 GiB.

Eine weitere systemnahe und für die Zukunft wichtige Änderung ist die Einbettung von Grand Central, das darauf angepassten Anwendungen eine optimale Ausnutzung von Mehrkernprozessoren ermöglichen soll.

Dann wäre da noch die Unterstützung für die Open Computing Language, womit Entwickler die Rechenleistung der 3D-Grafikkarte ausnutzen können. Moderne Grafikkarten können als eigenständige Computer angesehen werden, die auch für Anwendungen genutzt werden können, die nichts mit Grafikberechnung zu tun haben. Damit bestehende Anwendungen OpenCL nutzen können, muss der Programmcode allerdings angepasst werden.


Mehr Multicore braucht neue Entwickler-Fähigkeiten

Seitdem auch Privatanwender Prozessoren mit zwei oder vier Kernen kaufen können und Parallel Computing immer wichtiger wird, werden den Softwareentwicklern neue Fähigkeiten abverlangt.


Microsoft und Intel fördern jetzt mit 20 Millionen US-Dollar für Colleges die Ausbildung von jungen Programmierern.

Über Jahre hinweg gab man sich Prozessoren zufrieden, die einfach nur schneller liefen. Heute, da es Mehrkern-CPUs gibt, gelten viele Regeln nicht mehr. Die Unterschiede lassen sich mit einem Sportwagen und einem Schulbus vergleichen: während die Stärke des ersten die Geschwindigkeit ist, kann der andere viel mehr Personen auf einmal befördern – allerdings langsamer.

Die Problematik ist, dass das einfache Hinzufügen von Kernen zu einer CPU die Geschwindigkeit nicht erhöhen wird – zumindest nicht, wenn die Anwendungen nicht darauf angepasst wurden. Damit etwa ein Prozessor mit vier Kernen voll ausgelastet wird, müssen die Entwickler ihre Anwendungen so anpassen, dass mehrere Threads auf die Kerne verteilt werden. Diese Threads müssen aber genau zugeordnet, aufeinander abgestimmt werden und relevante Daten zwischen einander austauschen können. Diese Komplexe Anforderung kommt dem beladen des Schulbusses gleich.

Um die Entwickler zur Arbeit mit den Kernen zu motivieren, hat eine Firma, nämlich TopCoder, zusammen mit dem Chiphersteller AMD einen Wettbewerb gestartet.

Überraschender Weise unterscheiden sich die Fähigkeiten, was Multicore-Programmierung anbelangt, bei den Programmierern stark, obwohl Multithreading eigentlich nichts Neues ist. Die Ursachen sind leicht zu finden: Multithreading wird den angehenden Programmierern nicht beigebracht. Deswegen konzentrieren sich Microsoft und Intel jetzt auch auf die Colleges.

Die Verbreitung von Anwendungen mit Multithreading-Fähigkeit wird in den kommenden Jahren durch angepasste Entwicklungsumgebungen vorangetrieben werden. Die meisten Betriebssysteme und gängige Programme sind schon bereit für Multicore-Plattformen, wobei es gerade bei der Spieleentwicklung noch viele Lücken gibt.

Um ready for multicore zu werden, stehen den Entwicklern mehrere Möglichkeiten bereit. Zum Beispiel können sie entweder ihren Programmierstil anpassen oder fertige Bibliotheken. AMD hat dazu unter dem Name “Framewave” über 3000 Routinen veröffentlicht, die Programmierern bei der Anpassung unterstützen sollen. Solche Bibliotheken sind aber keine endgültig brauchbare Lösung. Der Programmierer selbst muss auch für mehrere Kerne programmieren

Die Plattform RaipdMind kann single-threaded C++-Code durch eine Abstraktionsschicht parallelisieren, um mehrere Kerne zu nutzen. Trotzdem wäre es ein Trugschluss anzunehmen, dass solche Umgebungen schlechten Code in solchen verwandelt, der bereit für Multicore-Plattformen ist. Manchmal braucht es menschlichen Verstand, um zu erkennen, an welcher Stelle welcher Vorgang wie ausgeführt werden muss.