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 lmbayrak varsa, 64 bit CPU'dur.
Varsayılan olarak uname -mveya archçekirdeğin derlendiği mimariyi gösterir. Linux personalitysistem ç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 someprogramya linux32 someprogrambir ortamda belirli bir program çalıştırır nerede uname -mdöner i686iken setarch amd64 someprogramveya linux64 someprogramnerede bir ortamda belirli bir program çalıştırır uname -mdöner amd64.
file /sbin/initinitprogramı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.
$HOSTYPEbir bash değişkenidir ve bashprogramın hangi mimariyi derlediğini söyler .
getconf LONG_BITvarsayı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 - getconfyalnızca ne hakkında bilgi verebilir getconfdüşündüğü varsayılan derleyici.