X64 yönerge kümesini destekleyen (x86_64 veya amd64 olarak da bilinir) tüm işlemciler , x86 yönerge kümesini de destekler (ayrıca x86'nın belirli sürümleri olan i386 veya i686 olarak da bilinir). Aynı için de geçerli ARM için A64 (yeni 64-bit komut ARMv8 görünen seti) ve A32 ( “klasik” 32 bit komut seti için isim) SPARC64 ve SPARC ve ben için iman MIPS64 ve MIPS . Yani tüm bu mimari ailelerde, eğer bir işlemci 64 bit kod çalıştırabilirse, 32 bit kod da çalıştırabilir.
Linux çekirdeği, 64 bit çekirdekli 32 bit kullanıcı alanı kodunu çalıştırmayı destekler (sanırım yukarıda bahsedilen tüm mimari ailelerde). Çekirdek homojen olmalıdır (tümü 64 bit veya tümü 32 bit) ve her işlem homojen olmalıdır, ancak 64 bit çekirdek üzerinde 32 bit ve 64 bit işlemlerin bir karışımına sahip olabilirsiniz. Bunun tersi mümkün değildir: 32 bit çekirdekle 64 bit işlemler çalıştıramazsınız.
Bu, Linux'ta mevcut 32 bit ikili dosyaları 64 bit kurulumlarda çalıştırma isteği ile motive edilen bir tasarım seçimidir. Diğer Unix varyantları farklı seçimler yapmıştır: Solaris, 32-bit çekirdeğinde 64-bit programları ve diğer yönde çalışabilirken, OpenBSD 64-bit çekirdeğinde 32-bit programları çalıştıramaz.
Sen alabilirsiniz CPU hakkında bilgi de /proc/cpuinfo
. X86 CPU'nuzda lm
bayrak varsa, 64 bit CPU'dur.
Varsayılan olarak uname -m
veya arch
çekirdeğin derlendiği mimariyi gösterir. Linux personality
sistem çağrısıyla bir sürecin “kişiliğini” ayarlayabilir . Komutla farklı bir kişiliğe sahip bir alt işlem çalıştırabilirsiniz setarch
; setarch i686 someprogram
ya linux32 someprogram
bir ortamda belirli bir program çalıştırır nerede uname -m
döner i686
iken setarch amd64 someprogram
veya linux64 someprogram
nerede bir ortamda belirli bir program çalıştırır uname -m
döner amd64
.
file /sbin/init
init
programın hangi mimari için derlendiğini söyler . Bir kurulumda 32 bit ve 64 bit yürütülebilir dosyaları karıştırmak mümkün olsa da, genellikle tüm temel işletim sistemi programları aynı mimariden gelir, çünkü yönetilmesi çok daha kolaydır.
$HOSTYPE
bir bash değişkenidir ve bash
programın hangi mimariyi derlediğini söyler .
getconf LONG_BIT
varsayılan C derleyicisinin 32 bit veya 64 bit programları derleyecek şekilde ayarlanıp ayarlanmadığını bilmenizi sağlar. Bir daha kesin testi derlemek ve baskılar bu bir programı çalıştırmaktır sizeof(void*)
veya sizeof(size_t)
çağıran - getconf
yalnızca ne hakkında bilgi verebilir getconf
düşündüğü varsayılan derleyici.