Başlıktaki sorunun cevabı, çıktının başında yer almaktadır:
ELF 64 bit LSB yürütülebilir, x86-64
ELF, Linux tarafından en sık kullanılan ikili yürütülebilir dosya biçimi olan Yürütülebilir ve Bağlanabilir Biçimdir .
x86-64, orijinal olarak AMD tarafından tanıtılan x86 komutunun 64-bit sürümü olan ikili mimaridir . Benden öte nedenlerden ötürü Microsoft buna "x64" deniyor, ama aynı şey.
Çekirdeğin mimarisini bilmeniz gerekiyorsa kullanabilirsiniz uname -mpi
. Örneğin, benim sistemimde:
x86_64 bilinmiyor bilinmiyor
yani x86-64 çekirdeği çalıştırıyorum.
CPU'nun kendisi ile ilgileniyorsanız /proc/cpuinfo
, Linux çekirdeği tarafından algılanan CPU (lar) hakkında ayrıntılara bakın .
32 bit 80x86 yürütülebilir dosyası şu şekilde tanımlanır file
:
ELF 32 bit LSB yürütülebilir, Intel 80386 , sürüm 1 (SYSV), dinamik olarak bağlı (paylaşılan kütüphaneleri kullanır), GNU / Linux 2.6.8 için, soyulmuş
bu bize bunun Intel 80386 komut setini (muhtemelen uzantılarla birlikte) kullanarak 32 bit yürütülebilir olduğunu söyler.
32 bit ve 64 bit mimariler kadar basit olmadığını unutmayın. Örneğin, Linux çekirdeği Intel 80386, AVR32 , S / 390 ve Unicore32 gibi 32 bit mimarileri destekler . 64-bit tarafında, Linux PA-RISC , x86-64, Itanium ve Alpha'da kullanılabilir . Bununla birlikte, tüm dağıtımlar tüm mimariler için ikili dosyalar sağlamaz (ve desteklenen tüm CPU mimarilerini eşit olarak hedefleyen herhangi bir dağıtım olduğundan şüpheliyim ). Bu nedenle, belirli bir binary'nin belirli bir sistemde çalıştırılabilir olup olmayacağını bilmek istiyorsanız , CPU'nun yerel kelime boyutu yerine mimariyi dikkate almanız gerekir .