¿Por qué 'arch' genera 'i386'?

5

Cuando ejecuto $ arch en mi 10.9 2012 MacBook Pro, obtengo el resultado

i386

La página de manual de arch dice que

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

Sin embargo, $ file "$(which arch)" da

/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.7 se ejecuta como un ejecutable de 64 bits:

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

Además, el kernel es aparentemente de 64 bits:

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

uname está de acuerdo:

$ uname -m
x86_64

..o lo hace?

$ uname -p
i386
    
pregunta intuited 01.08.2014 - 04:50

1 respuesta

3

Aquí tienes:

uname -p imprime el nombre de la arquitectura del procesador de la máquina.

uname -m imprime el nombre del hardware de la máquina.

El comando arch sin argumentos, muestra el tipo de arquitectura de la máquina.

En última instancia, sospecho que esta es la respuesta que deseas: enlace

Para más confusión, ejecute:

$arch
i386
$machine  
i486
$uname -m
x86_64
$uname -p
i386
    
respondido por el Alex 02.08.2014 - 06:06

Lea otras preguntas en las etiquetas