Duck and cover

Et bien la nouvelle a été confirmée, Apple passe au x86 pour ses Mac. Ce qui veut dire qu’à partir de maintenant tous les logiciels pour Mac devront être compilés à la fois pour PowerPC et pour x86.
Ce revirement est étonnant d’un point de vue marketing puisqu’Apple a littéralement chié sur Intel pendant des années. Cependant si on se prend la peine de remonter un peu plus loin dans le passé, il y a vingt ans Apple vommissait littéralement sur IBM… donc rien n’a vraiment changé. Par contre, au niveau technique, c’est à peine surprenant : les PowerPC stagnaient en puissance depuis un moment. Le processeur de la Xbox 360 n’a pas eu l’air d’avoir les faveurs de Steve Jobs, mais il faut dire que ce processeur a été prévu pour développer sa puissance optimale dans un milieu mono-applicatif (un seul programme tourne, le jeu) et non pas multi-applicatif. Quant au CELL de la PlayStation 3, il est n’est pas non plus optimal pour un système multitâche (absence de cache L2, etc). Lors de la présentation de la transition, Steve Jobs a été assez clair : IBM est en grande partie la cause de cette transition – il montre un PowerMac avec l’inscription « 3.0Ghz » et un Powerbook marqué « G5 » et commente : « il y a deux ans, je vous ai promis ça, et je n’ai toujours pas pu tenir mon engagement ».

— MODE NERD ON —

Qu’est-ce qui va changer, alors ?

Et bien, tout et rien. Ce qui ne va pas changer, c’est l’interface de Mac OS X. Pour l’utilisateur, tout sera transparent. La démo de Jobs est incroyable et vraiment très surprenante, puisque pendant toute la keynote, il fait fonctionner iTunes, le Dashboard, Spotlight, Mail, iPhoto, etc. Et dévoile à la fin que la machine sur laquelle il travaille est à base de processeur x86.
En fait, il a même confirmé l’existence du projet Marklar qui ressortait régulièrement dans les discussions entres gens avertis. Le projet Marklar, c’est une rumeur depuis fin 2001 qui disait qu’Apple maintenait en secret une version d’OS X sur processeur x86… « au cas où ». Cette rumeur était étayé par le fait qu’OS X est basé sur OpenDarwin, qui existe sur x86 aussi bien que sur PowerPC, et aussi par le fait que Steve Jobs est relativement prévoyant et n’aime pas trop dépendre de ses fournisseurs. Hier, il a confirmé que toutes les version d’OS X depuis 2000 avaient été compilées pour x86 et fonctionnaient sur cette plate-forme, et que par conséquence OS X avait été pensé dès le départ pour être compatible avec plusieurs architectures. Ce qui explique également pourquoi l’annonce du passage au x86 n’a été faite que cette année : avant OS X 10.4 (Tiger), les API n’étaient pas complètes et la plupart des développeurs faisaient de la programmation de bas niveau pour beaucoup de tâches qui n’en avaient normalement pas besoin (genre pour ouvrir une fenêtre – c’est pour ça qu’à chaque nouvelle version d’OS X, la compatibilité avec la plupart des applications était brisée). Dans OS X 10.4, la grosse nouveauté n’était pas tant au niveau de l’interface utilisateur mais plutôt au niveau des API, puisque celles-ci sont désormais considérées comme complètes et définitives. Avec la sortie de Tiger Apple a demandé aux développeurs de ne plus faire de bas niveau, et on comprend maintenant pourquoi : ce genre de manipulation est à exclure dans le cas d’une compilation multi-plateformes. Reste que les pauvres développeurs Mac, après s’être tapés un premier changement de processeur et un changement de système d’exploitation, vont devoir se retaper une maintenance de leur code pour le rendre compatible PowerPC *et* x86. Cependant, Jobs a précisé que ceux ayant déjà opté pour Xcode (leur environnement de développement) et l’API native Cocoa auraient un minimum de problème pour la transition. Une application Carbon a même été présentée (Mathematica 5), qui d’après les dires du développeur a pris une demi-journée pour être adaptée à la plate-forme Intel.
Après ça je pense qu’on pourra dire avec certitude que les programmeurs Mac sont ceux qui font le code le plus propre au monde car ils se sont faits entubés trois fois, alors ils seront prêts pour dans 5 ans quand Jobs décidera de repasser sur CELL.

Ce qui ne va pas changer non plus, c’est le design des Mac. Steve Jobs l’a bien expliqué : c’est surtout la stagnation au niveau des performances et l’impossibilité d’utiliser les G5 dans des systèmes légers (portables) qui a fait pencher la balance pour le changement d’architecture. Mais les machines ne seront pas pour autant des PC : si la version actuelle de développement d’OS X (OS X 10.4.1 Intel) a l’air de fonctionner sur des PC classiques (la démo de Steve Jobs a été faite sur un PC Dell), il est très probable que les Macs x86 finaux auront une architecture quasi-figée, comme les Macs actuels. La principale raison pour cela est évidemment qu’Apple, en limitant le nombre de configurations possibles, évite les incompatibilités avec du matériel bas de gamme qu’on trouve fréquemment dans les PC. On peut aussi imaginer qu’Intel place un système de DRM dans son processeur… Par contre, contrairement à ce que je pensais, les Mac x86 ne booteront pas sous OpenFirmware mais vraisemblablement sur un BIOS PC classique, ce qui est très dommage (source : documentation Apple).

Ce qui va changer et ne pas changer, c’est que les programmes livrés seront sous la forme « Universal Binary ». C’est le grand retour du concept de « Fat Binary » qui existait à l’époque de la transition 680×0 > PowerPC. Le principe est d’avoir, dans un seul exécutable, des ressources communes et le code en double, une version pour chaque architecture. Ce système a déjà prouvé sa simplicité et sa fiabilité. D’ailleurs rien n’a été dit à ce sujet, mais je suppose que toutes les versions d’OS X supportent déjà l’Universal Binary (en ignorant simplement le code x86). On le vérifiera dès que les premières application « bi-cerveau » seront disponibles, mais j’en mettrai ma main à couper.
Quant aux applications PowerPC pures, elles tourneront sur x86 grâce à un recompilateur JIT intégré à OS X (appelé Rosetta). Autrement dit, le code PowerPC sera recompilé à la volée en code x86, tous les appels systèmes, graphiques, etc. restant eux en natif x86. La démonstration était éloquente : Photoshop PPC rame un peu au lancement mais fonctionne à une vitesse décente. Sous Word PPC et Excel PPC, il n’y a quasiment aucune différence avec des version natives. On est très loin des émulateurs PowerPC tels que PearPC qui plafonnent à 10% de la vitesse d’origine des applications. Et encore, il se peut que la différence soit quasi-nulle pour les applications utilisant Core Image ou Core Video (puisque avec ces API c’est le GPU qui prend en charge les calculs, et le GPU sera le même sur PowerPC ou x86).

Ce qui va changer, c’est certainement la vitesse d’exécution des programmes en Java. Sur Mac PowerPC, les programmes Java tournent quasiment en vitesse native. Ce n’est pas le cas sur x86 car les processeurs x86 ne sont pas standards au niveau de leur FPU (module de calcul en virgule flottante). Sur cette plateforme, les machine virtuelles Java simulent en soft les calculs en virgule flottante, ce qui multiplie par 10 le temps d’exécution. C’est malheureusement ce qui pend au nez des développeurs Java sur Mac…

Finalement ce qui est décevant dans cette annonce, ce n’est pas le passage au x86 mais plutôt le choix d’Intel. Pourquoi Intel ? Pourquoi pas AMD ? Technologiquement, c’est stupide. AMD a des processeurs bien plus avancés qu’Intel, et plus puissants. Et AMD a déjà dans son catalogue un certain nombre de processeurs 64 bits (Athlon 64) qui fonctionnent très bien. MacOS X 10.4.1 ne fonctionne pas sur un processeur 64 bits, comme le G5, mais sur Pentium 4, qui est 32 bits. Quelle mouche a bien pu piquer Jobs ? Tout d’abord pour le choix du constructeur. Là, on touche un point sensible. Les raisons du choix d’Intel peuvent être multiples. Tout d’abord, bien sûr, il y a l’argent : Intel a peut-être fait une offre avantageuse pour Apple (participation aux frais de transition ?). Peut-être qu’Intel a proposé à Apple des puces modifiées spécifiquement pour les Macs avec des caractéristiques bien précises. Peut-être qu’Apple veut profiter de certaines innovations de la famille POWER et les inclure dans les x86, ce qui ne serait pas sans déplaire à Intel. Mais peut-être est-ce aussi le choix de la stabilité, puisque Intel ne fabrique pas que des puces mais aussi des chipsets, ce qui n’est pas le cas d’AMD. Par contre, pour le retour en arrière au 32 bits, c’est très peu compréhensible. Il s’agit certainement d’un raisonnement logique puisque seul un petit pourcentage d’OS X est réellement 64 bits, aussi peut-être préfèrent-ils remettrent à plus tard cette autre transition. En tout cas, si ce choix perdure l’année prochaine (les premiers Macs x86 sont prévus pour dans un an), les Macs risquent d’être technologiquement à la bourre car les PC ont déjà commencé à migrer vers le 64 bits – Windows XP 64 vient de sortir… et ce n’est pas tant une question de performance brute que de flexibilité au niveau de l’architecture (notamment au niveau de la gestion mémoire).

— MODE NERD OFF —

J’aimerais maintenant mettre le doigt sur quelque chose qui m’a paru étrange. Steve Jobs a terminé sa présentation en disant que ce qui faisait l’âme des Mac, ce n’était pas le hardware, mais son système d’exploitation, OS X. Ça, c’est un revirement majeur. Bien plus que le changement d’architecture. Jusqu’à l’année dernière, il martelait que le métier d’Apple était de vendre du hardware, pas du software. Résultat, qu’est-ce qu’on voit ? Aujourd’hui Apple a sorti OS X, iDVD, iLife (iPhoto + iMovie + Garageband), iWork (Keynote + Pages), iTunes, QuickTime, Final Cut Pro/HD/Express, Logic Pro/Express, Soundtrack Pro, Motion, Shake, WebObjects, Xsan, Xcode et je compte même pas Mail et Safari. À part Microsoft, je ne vois pas quelle société s’est autant diversifiée dans le software. Aujourd’hui, Apple est beaucoup moins une société de hardware que HP ou Dell… Bien sûr, c’est encore ce qui leur rapporte le plus. Mais tout de même, je me pose des questions.
Surtout, une fois qu’OS X sera disponible sur x86, qu’est-ce qui empêchera les gens de le faire tourner sur des PC normaux ? Le fait que l’architecture soit différente n’est pas un gros problème. Les Macs sont déjà à base de composants que l’on trouve dans le monde PC, à part leur processeur PowerPC. Une fois que le processeur est changé, que reste-t-il ? Le BIOS, et peut-être deux ou trois modifications dans le chipset ou dans le CPU. Et alors ? Il faut se rendre à l’évidence : très rapidement, des émulateurs Mac x86 vont arriver, et ils seront TRÈS rapides. Grâce à la méthode appelée « virtualisation », utilisée par VirtualPC (par exemple), le code x86 est exécuté en natif par le processeur hôte. Autrement dit, il n’y a quasiment aucune perte de vitesse. S’il s’agit de n’émuler quelques spécificités matérielles, le problème sera vite réglé… Et on peut imaginer que des petits malins auront vite fait de distribuer des version de Linux spécialement modifées pour booter directement sur l’émulateur, avec OS X derrière. Et voilà. OS X fonctionnera sur tous les PC, nativement ou presque.
Et après ça, que se passera-t-il ? Et bien on peut aller plus loin. Une architecture x86 pour OS X, cela veut dire que des programmes comme WINE, qui permettent de lancer des programmes Windows sous Linux/Unix de façon transparente, seront portés sous OS X Intel. Et donc, on pourra lancer des programmes Windows sous OS X Intel. Et donc, faire tourner les quelques programmes n’existant pas sous OS X avec WINE. En accumulant tout ça, on peut même prévoir un Linux lançant OS X qui a la possibilité de faire touner des programmes Windows.
Même sans aller jusque là, il est quasiment certain que ce qui a été amorcé ce Lundi, ce n’est pas qu’une simple transition matérielle. C’est la transition d’Apple de fabricant de matériel a fournisseur de programmes et de SYSTÈME D’EXPLOITATION pour PC. D’une façon ou d’une autre, OS X pourra être lancé sur des PC qui ne seront pas des Macs, et çe dès l’année prochaine. L’année prochaine… l’année de lancement de Longhorn, le nouveau système d’exploitation de Microsoft qui accumule retards sur retards. Longhorn, qui repompe allègrement ses idées sur MacOS X.

Je ne sais pas si vous voyez le même tableau que moi. Moi, je vois beaucoup de sang… mais je ne sais pas encore si c’est le sang de Microsoft, ou bien celui d’Apple.

La vidéo de la keynote est disponible ici. En installant QuickTime 7 (beta) vous aurez une qualité 10 fois meilleure (vraiment !). Attention cependant cette version de QuickTime est TRÈS INSTABLE.

Les commentaires sont fermés.