2 votes

Prise en charge des 64 bits avec un noyau 32 bits dans OS X Snow Leopard

Je sais que de nombreux ordinateurs portables Apple, comme mon Macbook 6,1, utilisent un noyau 32 bits dans OS X Snow Leopard. Selon Apple, le noyau peut également exécuter ou "prendre en charge" des applications 64 bits. Ma question est la suivante : comment le système fait-il cela ?

Un système d'exploitation 64 bits peut faire fonctionner des applications 32 bits par défaut parce que le système d'exploitation dispose d'émulateurs qui capturent tous les appels 32 bits et les traduisent en appels 64 bits natifs.

Mais comment le noyau 32 bits d'OS X fait-il cela avec 64 bits ?

  1. Virtualisation de l'architecture matérielle ? (si oui, cela ne serait-il pas lent car la conversion des appels et des adresses mémoire 32 bits en 64 bits est beaucoup plus intensive).
  2. Conception d'une architecture hybride (c'est-à-dire que le noyau est conçu avec quelques éléments 64 bits mélangés à une conception essentiellement 32 bits ?)

La documentation et l'assistance d'Apple ne semblent pas contenir d'informations spécifiques à ce sujet. Je suis juste curieux !

3voto

stuffe Points 25320

Note : certaines des informations contenues dans cette réponse ont été extraites de aquí :

Mac OS X 10.6 Snow Leopard a été le dernier système d'exploitation à prendre en charge les architectures de processeurs 32 bits, comme les processeurs Core Solo et Core Duo (pas Core 2 Duo). Notez qu'il est tout à fait possible d'avoir un processeur 64 bits comme le Core 2 Duo, et d'avoir encore un firmware EFI 32 bits, donc le CPU seul n'est pas le seul indicateur des capacités de votre système à cet égard.

C'est ainsi que l'on se retrouve dans la situation d'un noyau 32 bits, retenu par l'EFI, fonctionnant sur un processeur 64 bits, capable de faire fonctionner une pile d'applications 64 bits tant qu'il ne charge pas dynamiquement de modules de noyau, etc. L'application n'est pas totalement liée au noyau et peut fonctionner de manière indépendante dans un état différent de celui du noyau si nécessaire. De la même manière qu'une application peut fonctionner en 32 bits sur un noyau en 64 bits...

Pour être honnête, le nombre de personnes possédant un Core 2 Duo ou plus mais avec une EFI 32bit est relativement limité, et vous n'avez pas de chance si vous êtes l'une de ces personnes qui possède, par exemple, un Macbook de 2007/8 où cela était courant. L'EFI 64 bits a été introduit de manière échelonnée dans la gamme, il n'est donc pas facile de déterminer la date à laquelle il a été généralisé à tous les formats.

Vous pouvez vérifier l'EFI de votre machine en entrant la commande suivante dans le terminal :

ioreg -l -p IODeviceTree | grep firmware-abi

Il renvoie soit "EFI32", soit "EFI64".

En outre, certaines machines parfaitement capables ne démarrent qu'avec des noyaux en mode 32 bits, même si vous pouvez forcer un noyau 64 bits en maintenant les touches 6 et 4 enfoncées au démarrage.

OS News note que seuls les Macs dotés d'une EFI 64 bits sont capables de démarrer le noyau et les kexts 64 bits de Snow Leopard ; une limitation artificielle imposée par Apple, même si une EFI 32 bits peut démarrer un noyau 64 bits "très bien".

Le pire, c'est que même si votre MacBook (non-Pro) dispose d'une EFI 64 bits, il ne pourra démarrer que la version 32 bits de Snow Leopard en raison d'une limitation imposée par Apple aux MacBooks. Le Mac Pro original (qui n'est plus commercialisé depuis le 8 janvier 2008) est la plus grande victime de la Route 64. Il ne pourra pas non plus démarrer le noyau et les pilotes 64 bits. entrer la description du lien ici

0voto

feklee Points 490

Le choix entre 32 et 64 bits est probablement plus une question pour le fabricant de microprocesseurs :

http://search.intel.com/default.aspx?q=64+bit&c=fr_US&method=text&input-submit=Search

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X