Mengapa `arch` menghasilkan` i386`?


5

Ketika saya berlari $ arch pada 10.9 2012 MacBook Pro saya, saya mendapatkan hasilnya

i386

Halaman manual untuk arch mengatakan itu

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

Namun, $ file "$(which arch)" memberi

/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 dijalankan sebagai 64-bit yang dapat dieksekusi:

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

Kernel juga tampaknya 64-bit:

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

uname setuju:

$ uname -m
x86_64

..atau melakukannya?

$ uname -p
i386

Jawaban:


3

Ini dia:

uname -p cetak nama arsitektur prosesor mesin.

uname -m cetak nama perangkat keras mesin.

Itu lengkungan perintah tanpa argumen, menampilkan tipe arsitektur mesin.

Pada akhirnya saya menduga ini adalah jawaban yang Anda inginkan: https://stackoverflow.com/questions/12763296/os-x-arch-command-incorrect

Untuk kebingungan lebih lanjut, jalankan:

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

Oke, jadi arch beroperasi sebagai 32- atau 64-bit, tetapi hanya melaporkan apakah arsitekturnya adalah PPC atau Intel [-diterima], dan melaporkan Intel menggunakan i386 label bukan intel. Saya kira itulah arti "2-arah universal, hanya 32-bit".
intuited
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.