Belirli bir Linux'un 32 bit mi yoksa 64 bit mi olduğunu nasıl belirleyebilirim?

uname -a' yazdığımda aşağıdaki çıktıyı veriyor.

Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux

Buradan verilen işletim sisteminin 32 veya 64 bit olduğunu nasıl anlayabilirim?

Bu, configure komut dosyaları yazarken kullanışlıdır, örneğin: hangi mimari için inşa ediyorum?

Çözüm

Uname -m]1'i deneyin. Bu uname --machine kısaltmasıdır ve çıktı verir:

x86_64 ==> 64-bit kernel
i686   ==> 32-bit kernel

Aksi takdirde, Linux çekirdeği için değil, CPU için yazarsınız:

cat /proc/cpuinfo

ya da:

grep flags /proc/cpuinfo

flags" parametresi altında çeşitli değerler göreceksiniz: bkz "/proc/cpuinfo içindeki bayraklar ne anlama geliyor?" Bunlardan birinin adı lm: Long Mode (x86-64: amd64, Intel 64 olarak da bilinir, yani 64-bit özellikli)

lm ==> 64-bit processor

Ya da lshw]4 (Saksonyalı Rolf]6 tarafından aşağıda belirtildiği gibi), sudo olmadan (sadece cpu genişliğini taramak için):

lshw -class cpu|grep "^       width"|uniq|awk '{print $2}'

Not: 32 bit çekirdek yüklü bir 64 bit CPU'ya sahip olabilirsiniz.
(ysdx]7'in kendi cevabı'de belirttiği gibi, "Günümüzde bir sistem multiarch olabilir, bu yüzden zaten mantıklı değildir. Derleyicinin varsayılan hedefini bulmak isteyebilirsiniz")

Yorumlar (13)

Eğer 64 bit bir platform kullanıyor olsaydınız uname -a çıktısında x86_64 veya çok benzer bir şey görürdünüz

Özel makine donanım adınızı almak için

uname -m

Ayrıca arayabilirsiniz

getconf LONG_BIT

32 veya 64 döndüren

Yorumlar (6)

Bu sistem 32 bittir. iX86 uname içinde 32 bit mimari olduğu anlamına gelir. Eğer 64 bit olsaydı, şu sonucu verirdi

Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 x86_64 i686 x86_64 x86_64 GNU/Linux
Yorumlar (1)