Pourquoi `arch` génère-t-il` i386`?


6

Lorsque j'utilise $ archmon MacBook Pro 10.9 2012, j'obtiens la sortie

i386

La page de manuel pour archdit 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

OTOH, python2.7s'exécute en tant qu'exécutable 64 bits:

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

En outre, le noyau est apparemment 64 bits:

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

uname accepte:

$ uname -m
x86_64

..ou le fait?

$ uname -p
i386

Réponses:


5

Voici:

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

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

La commande arch 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, lancez:

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

OK, archfonctionne donc en 32 ou 64 bits, mais indique uniquement si l'architecture est PPC ou Intel [- dérivée], et indique qu'Intel utilise l' i386étiquette plutôt que intel. J'imagine que c'est ce que signifie "universel bidirectionnel, 32 bits uniquement".
Intuition
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.