L’annonce d’un nouveau système d’exploitation d’Apple semble aller de pair avec « rumeurs », à tel point qu’il est souvent difficile de faire le tri entre véritables informations et rêves d’Apple Fan Boys. Maintenant, du temps ayant passé depuis l’annonce du futur Mac OS X, nommé Snow Leopard, ces rumeurs se sont soit confirmées, soit évanouies et nous estimons qu’il est temps de faire un premier point sur le futur système d’exploitation d’Apple.
Arrivée l’air de rien…
Annoncé en trois minutes (j’exagère à peine) lors de la dernière WWDC (World Wide Developer Conference) après quasi une heure sur l’iPhone 2, on ne peut pas dire que Snow Leopard ait fait une entrée fracassante. Pourtant il y aurait de quoi : il part, selon moi (nous), de choix courageux (et judicieux) que d’autres firmes informatiques ne semblent pas (encore ?) avoir été capable de faire : stabilisation, sécurisation et amaigrissement du système existant (c-à-d Leopard). Apple semble, en effet, avoir choisit de se concentrer sur la consolidation des fondations de son système plutôt que sur de nouvelles fonctionnalités. Quoi que…
Amaigrissement
Les buts visés par Apple vont, notamment, être éteint via l’abandon la retro-compatibilité de Leopard : les anciens mac sont équipés de processeurs PowerPC (PPC), les nouveaux sont, quant à eux, équipé de processeurs Intel. Cette transition s’est effectuée en 2006, avec notamment l’arrivée des MacBooks/MacBook Pro, remplaçants les iBooks/PowerBook. A l’heure actuelle, Apple est donc obligé de fournir des applications (universal binaries) pouvant être exécutées sur les nouvelles configurations, comme sur les anciennes (d’où la notion de retro-compatibilité). L’abandon de cette rétro-compatibilité permettra à Apple de gagner la place, non négligeable, que prend le code PPC de l’application. Cela a comme conséquence, pour les (malchanceux) possesseur de « vieux » mac, qu’ils ne pourront profiter du futur système a moins d’investir dans une nouvelle machine.
L’abandon du code PPC, c’est qu’un des façon de réduire la taille des applications. Un autre, toujours au niveau des applications, est changer la manière de représenter les interfaces graphique en utilisant une nouvelle méthode (vectorielle) bien moins gourmande en place que la méthode actuelle (bitmap). C’est également un des choix d’Apple.
Ces deux points permettraient, d’après les premières informations, une réduction de la taille des application de 75% en moyenne.

Optimisation
Lorsqu’un programmeur écrit une application, il le fait dans un langage que l’on pourrait qualifier comme étant à mi-chemin entre le langage humain et le langage machine. Une fois son application finie, il la compile. La compilation peut être vue comme une traduction de ce langage mi-humain/mi-machine en langage complètement machine, afin que l’application puisse être exécutée. Pour résumer la situation, on peut dire que -jusqu’à présent- la compilation est faite par un compilateur nommé GCC (GNU C Compiler, prenant en charge des langages comme le C, C++, Objective-C, Fortran, Ada). La nouvelle version du système d’exploitation d’Apple emportera un nouveau compilateur, nommé LLVM, qui donnerait de bien meilleurs résultats.
LLVM (Low Level Virtual Machine) consiste en une sous-couche virtuelle utilisée à la compilation. GCC a été conçu comme un bloc monolithique, comme l’a voulu Richard Stallman, afin d’éviter que des programmes propriétaires ne s’interfacent avec GCC. Dans le cas de LLVM, la couche virtuelle attend en fait le code binaire généré par une couche supérieure, le front-end, récupère ce code et permet d’utiliser des outils d’analyse statistiques, d’optimisations et/ou de refactoring, permettant de simplifier le code au niveau de la programmation, et de l’accélérer à l’exécution évidemment. Actuellement, LLVM utilise GCC comme front-end, mais il devrait bientôt être remplacé par CLANG, qui supporterait également, tout comme GCC, les langages tels que C, C++, Objective-C, Fortran et Ada (pas de changements de ce coté-là
).
Sans rentrer dans les détails, sachez que ce nouveau compilateur fait, d’après les tests actuels, gagner en moyenne 33% de temps d’exécution rien qu’en recompilant (re-traduisant) une application avec LLVM plutôt qu’avec GCC.
Lorsqu’Apple a changé de fournisseur de processeur, nous ne sommes pas seulement passé de PowerPC à Intel, nous somme aussi passé d’un simple cœur (un seul processeur) à un dual-cœur (deux processeurs). En effet, la course aux fréquences semblant terminée; les fabricants de processeurs se sont lancés dans la course aux cœurs. Le problème est que la partie Software évolue, contrairement à ce que l’on pourrait penser, beaucoup plus lentement que la partie Hardware, et souvent, les applications actuelles ne sont malheureusement pas faites pour tirer parti de ces deux (ou plusieurs) cœurs et s’exécutent « bêtement » comme s’il n’y en avait qu’un seul… La multiplication des cœurs n’a donc d’intérêt que si les applications, et les systèmes informatiques de manière générales, sont faites pour en tiré profit…
Afin de résoudre en partie ce problème, Snow Leopard embarquera un module, Grand Central (en hommage à la gare « Grand Central Terminal » de New-York) permettant aux différentes application de profiter au mieux de l’architecture multi-coeurs et ce, de manière transparente, tant pour les programmeurs que pour les utilisateurs…
Toujours dans le but de maximiser les performances des applications, Apple utilisera également OpenCL. Sous ce nom bizarre se cache une idée simple, élégante et géniale : pourquoi ne pas utiliser la puissance des cartes graphiques pour augmenter la rapidité des calculs. Les cartes graphiques se sont développées au cours des années dans une optique différente de celle des processeurs : les processeurs (centraux) évoluent de manière à essayer de tout calculer rapidement (nombres à virgule ET nombres sans virgule) tandis que les processeurs graphiques ont eux évolué afin de pouvoir calculer le plus rapidement possible des nombres à virgule (mathématique, physique, …) et des calculs en parallèle (appliquer plusieurs fois la même chose à de petits morceaux différents d’image par exemple). L’utilisation des capacités de calcul des processeurs graphiques profitera donc avant tout aux tâches de type encodages (audio et/ou vidéo), calculs mathématiques complexes, calculs physiques, … etc. mais il semble qu’Apple veuille que tout logiciel puisse en profiter : iChat est notamment déjà sur les rails.
Le 64 bits… Qu’est ce que c’est ? Tout le le monde connais le scrabble : réussir a faire un mot avec maximum 7 lettres. En informatique c’est plus ou moins pareil, mais sur 32 « lettres », sauf qu’il s’agit de « bits »: les commande, données, … etc sont généralement traitées par paquet de 32bits. Un bit est un 0 ou un 1. Un octet est un ensemble de 8bits, un mégaoctet est un ensemble de 1024 octets etc. Le problème est que, la complexité des programmes et des données avançant, 32bits ne suffisent pas pour exprimer ce que l’on souhaite et on est donc obliger d’utiliser plusieurs fois (en général, on dépasse rarement 2) 32bits. Le fait que l’on puisse parler par 64bits permet de résoudre ce problème, mais pour pouvoir le faire, il faut que le système d’exploitation le tolère et que le(s) processeur(s) équipant la machine comprenne(nt) ces mots. Arrivé avec Tiger et popularisé avec Leopard, le 64 bits devrait se retrouver, avec Snow Leopard, au cœur même du félin, avec la généralisation du fonctionnement des applications Apple en 64 bits. Si le 64 bits consomme plus de mémoire que le 32 bits, les performances seront cependant au rendez-vous, notamment pour les applications qui utilisent de manière intensive le processeur. L’expérience d’Antoine Rosset sur son logiciel OsiriX est à ce titre édifiante : plus de 80% de performances supplémentaire juste en recompilant en 64 bits.
Nouveautés
- Support d’un nouveau système de fichier
Snow Leopard permettra également la lecture/écriture d’un nouveau système de fichier : ZFS
Une des particularités les plus marquantes de ZFS est de supporter une quantité assez énorme de données. Plus d’informations sur Wikipedia avec une petite comparaison des différents systèmes de fichiers. ZFS devrait également proposer un système de zpools : afin de gérer plusieurs périphériques de stockage, plutôt que de passer par un contrôleur disque de l’OS, on passera dorénavant par des périphériques virtuels, chacun d’entre eux dépendant d’un ou plusieurs périphériques physiques. On aura ainsi la possibilité de définir des groupes de données redondants (équivalents mirroring proposé par actuellement par le RAID-1), non-redondants (équivalents au stripping du RAID-0), voire même la possibilité de définir des RAID-Z ou RAID-Z2. L’ensemble des données étant accessible par l’OS, sans tenir compte de la configuration logique des entités virtuelles. Ca sent bon la complication
Pour les intéressés, je pense qu’il y a beaucoup plus d’infos sur le lien donné ci-dessus
Les principales applications d’Apple, seront recompilées (afin de tirer parti des différentes optimisations précédemment évoquées) mais se verront également mises à jour. Ainsi Safari passera en version 4, et sera doté d’un nouveau moteur. On nous le promet jusqu’à 53% plus performant…
Mail, iCal et le Carnet d’adresse seront totalement compatibles avec Exchange (le programme de gestion de boîtes mail et calendriers de Microsoft, celui qui traîne souvent aux cotés d’Outlook dans les grosses boîtes
)
QuickTime deviendra QuickTime X, une refonte qu’on nous promet complète de son prédécesseur, rendant le nouveau venu plus rapide. Il supportera également plus de codecs, il sera donc capable de lire plus de type de vidéo, de base, sans l’ajout d’un programme tel que Perian).
En résumé…
… cette nouvelle version de Mac OS sera moins gourmande en RAM, (beaucoup?) plus rapide et, bien qu’on puisse prétendre le contraire, comportera son lot d’innovations. Il ne s’agira cependant pas d’une version majeure au sens où l’utilisateur l’entend : on n’y trouvera pas autant d’innovations qu’on a pu en trouver dans Tiger en son temps, ou dans Leopard. Son nom le laisse d’ailleurs clairement entendre : Snow Leopard sera une amélioration de Leopard. Il ne devrait donc pas y avoir « 300 nouveautés » pour ce nouveau système
, l’impact sera beaucoup moins visuel que ne l’a été Leopard. Cependant cette remise à plat, laisse le champs libre à Apple pour des innovations en nombre dans le(s) successeur(s) de Snow Leopard sans avoir a rajouter encore et encore des couches à un noyaux finissant par s’écrouler sous son propre poids.
Plus d’information :
MacPlus (fr)
Mac4Ever (fr)
Apple ou Apple (fr)
Roughly Drafted (en)
Apple Insider (en)
(Article écrit en binome avec Fred)