13 votes

Pourquoi `arch` produit-il `i386` ?

Quand je cours $ arch sur mon MacBook Pro 2012 10.9, j'obtiens le résultat suivant

i386

La page de manuel de arch dit que

the arch command is 2-way universal, 32-bit only

Cependant, $ file "$(which arch)" donne

/usr/bin/arch: Mach-O universal binary with 2 architectures
/usr/bin/arch (for architecture x86_64):        Mach-O 64-bit executable x86_64
/usr/bin/arch (for architecture i386):  Mach-O executable i386

PAR CONTRE, python2.7 est exécuté en tant qu'exécutable 64 bits :

$ /usr/bin/python2.7 -c 'import sys; print "%x" % sys.maxint'
7fffffffffffffff

De plus, le noyau est apparemment 64 bits :

$ file /mach_kernel 
/mach_kernel: Mach-O 64-bit executable x86_64

uname convient :

$ uname -m
x86_64

ou pas ?

$ uname -p
i386

10voto

Alex Points 8703

Voilà :

uname -p imprimer le nom de l'architecture du processeur de la machine.

uname -m imprimer le nom du matériel de la machine.

Le site arche sans arguments, affiche le type d'architecture de la machine.

En fin de compte, je soupçonne que c'est la réponse que vous voulez : https://stackoverflow.com/questions/12763296/os-x-arch-command-incorrect

Pour plus de confusion, courez :

$arch
i386
$machine  
i486
$uname -m
x86_64
$uname -p
i386

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