Perché l'output 'arch' è 'i386'?

5

Quando eseguo $ arch sul mio MacBook Pro 10.9 2012, ottengo l'output

i386

La manpage per arch dice che

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

Tuttavia, $ file "$(which arch)"

/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 è in esecuzione come eseguibile a 64 bit:

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

Inoltre, il kernel apparentemente è a 64 bit:

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

uname è d'accordo:

$ uname -m
x86_64

.. o lo fa?

$ uname -p
i386
    
posta intuited 01.08.2014 - 04:50
fonte

1 risposta

3

Ecco qua:

uname -p stampa il nome dell'architettura del processore della macchina.

uname -m stampa il nome dell'hardware della macchina.

Il comando arch senza argomenti, visualizza il tipo di architettura della macchina.

In definitiva, sospetto che questa sia la risposta che desideri: link

Per ulteriore confusione, esegui:

$arch
i386
$machine  
i486
$uname -m
x86_64
$uname -p
i386
    
risposta data 02.08.2014 - 06:06
fonte

Leggi altre domande sui tag