MacLocal

Localisation, actualité mac...

Le point sur le noyau de Mac OS 10.6 Snow Leopard : 64 bit ou 32 bit ?

Snow Leopard
Une note technique d'Apple, destiné à des programmeurs a été relayée par OS News par Tom Holwerda, relayée par nos confrères (préférés !) de Macgeneration et de Macbidouille (sans qui nos cafés seraient bien tristes le matin). Elle stipulait que la plupart des Macs ne démarreraient pas par défaut un avec noyau 64 bit... Alors que les gens à qui elle était destinée n'étaient en rien choqués (ils en voyaient le pourquoi du comment) le grand public a senti son OS favori tronqué, incomplet, et ils se sont sentis lésés. Certains disaient "c'est un comble que l'on ait pas tous les bénéfices du 64 bit"… Quels bénéfices?

Le noyau 32 bit de Snow Leopard permet de faire tourner toutes vos applications 64 bit... pour peu que vous ayez un processeur Core 2 Duo.
Répétons:
Le noyau 32 bit de Snow Leopard permet de faire tourner toutes vos applications 64 bit !

Mac OS X est le seul système d'exploitation qui permette d'avoir un noyau 32 bit et des applications 64 bit. Windows 64 bit a été excessivement difficile à se déployer, car le noyau étant 64 bit, il a fallu que tous les pilotes le soient pour que l'adoption soit massive : elle ne l'est pas encore. La technologie pour faire tourner des applications 32 bit dans WIndows 64 est WOW (windows on windows) : une surcouche d'abstraction difficile à mettre en oeuvre et à maintenir.

Linux ayant un noyau monolithique (qui n'a pas que des inconvénients, voyez Torvalds), le noyau 64 bit est indispensable pour une version 64 bit d'Ubuntu par exemple. Les pilotes sont chargés comme modules la plupart du temps (en non compilés dans le noyau), mais ils doivent être 64 bit aussi. Les Linuxiens étant les plus geeks d'entre-nous, la chasse au pilote et ses problèmes ne les effrait pas.

Snow Leopard est bien un OS 64 bit. Toutes les applications promises par Apple tournent en 64 bit. Cela présente des avantages en vitesse d'exécution, vitesse de lancement, adressage mémoire au delà de 4 GB, taille des fichiers supérieure à 4 GB…
Ce qui est étonnant, c'est qu'un des principaux avantages qu'Apple a sur ses concurrents, c'est à dire la possibilité d'avoir un noyau 32 bit avec un OS 64 bit, paraissent un handicap : le consommateur se sent lésé. J'ai même lu quelque part: "c'est un scandale". Quel scandale : de ne pas avoir à chercher partout des pilotes 64 bit (qui ne seraient jamais mis à jour en même temps)? Que toutes les applications soient compatibles sans problème est sans s'arracher les cheveux? Mois après mois, quand tous les pilotes seront recompilés (sans doute) et optimisés (j'en doute), que les Kext (kernel extensions) seront réécrites : alors on pourra démarrer son petit mac avec un noyau 64 bit. Et je parie qu'alors, personne ne verra la différence sur son Macbook… et que tous les macs seront noyau 64 par défaut !

Le système de Mac OS X est à micro-noyau. Cela a engendré un querelle célèbre entre Linus et Steve. Pour voir les avantages d'un système à micro noyau, lisez ici.
De nombreux tests ont montré qu'Apache montait moins bien en charge sous Tiger que sous Linux, en raison de son architecture noyau (sur un G5 tournant sous Tiger comparé à Suse Linux). Ici, c'est l'inverse. Prenons les avantages du micro noyau : la compatibilité. C'est une des raisons pour lesquelles Apple a mis ses Xserve en 64 bit : ils en avaient bien besoin. Car les principaux avantages immédiats d'un noyau 64 bit sont pour les serveurs. Moins de limitations de ressources. Meilleur échange mémoire entre les threads de l'espace noyau et de l'espace utilisateur. Bien meilleure augmentation de la charge. Imaginez www.apple.com un soir d'annonces !

Ainsi donc, 64 bit n'est pas une potion magique : cela signifie des choses différentes pour chaque OS: Snow Leopard, Vista ou Linux. Et pour chaque usage : serveur, client…

Pour résumer:

  • Les processeurs 32 bit (Core Solo, Core Duo) ne peuvent faire tourner qu'un OS 32 bit et un noyau 32 bit;
  • Les processeurs 64 bit (Core 2 Duo) peuvent faire tourner Snow Leopard en 64 bit avec un noyau 32 ou 64 bit, peu importe.

Qu'en est-il de nos macs?

Voici ce que la fameuse note d'Apple en dit:



Pour résumer : il y a 4 cas de figure (sous réserve d'un processeur 64 bit bien sûr) :

  • 1) Seuls, les Xserve démarrent par défaut en mode noyau 64 bit (ils sont, une fois encore, ceux qui en avaient vraiment besoin);
  • 2) Il y a les Macs capables de démarrer en mode noyau 64, ayant un EFI 64; une simple modification dans le fichier "com.apple.Boot.plist" permet de péréniser la chose (ou appuyer simultanément sur 6 et 4 au démarrage);
  • 3) Les Macs ayant un EFI 64, un processeur 64 bit, et qui refusent de démarrer en mode noyau 64. Limitation volontaire d'Apple? Limitation abusive? La seule solution, nous en parlerons plus tard : utiliser la technique Hackintosh;
  • 4) Les Macs ayant un EFI 32 bit et un processeur 64 bit: ils ne démarreront pas en mode noyau 64. Limitations abusive encore? La méthode Hackintosh devrait encore porter ses fruits. Mais à quel prix? Et pour quels avantages? Une telle solution peut créer des problèmes bas-niveau; elle est à réserver aux aventuriers qui n'ont pas peur des systèmes instables...

Pour savoir ou on en est , ouvrez le terminal et tapez :

  • 1) Comment savoir quel EFI on a :

ioreg -l -p IODeviceTree | grep firmware-abi

  • 2) Comment savoir sur quel kernel on boote :

uname -a

  • 3) Comment passer en mode noyau 64 :

sudo nvram boot-args="arch=x86_64"


Ou encore utilisez ce programme :



Voilà l'état actuel du support du noyau 64 bit par Apple. Mais les choses peuvent évoluer : les EFI peuvent être mis à jour si Cuppertino le décide ; et des Macs non supportés peuvent l'être dans le futur, quand les développeurs tiers auront mis à jour tous ou la plupart de leurs pilotes ou extensions noyau.


à suivre, et n'hésitez pas à faire part de vos expériences...