Yanıtlar:
"uname -m", aradığınız komuttur. Hem modern hem de AMD işlemcilerde hem 32bit hem de 64bit çalıştırabilirsiniz, bu yüzden "uname -p" size yardımcı olmayacak (ek olarak bugünlerde pek işe yaramaz, buradaki core2 "uname -p" cevabını düşünüyor. bilinmeyen").
/ Usr / lib64'ün (önerildiği gibi) varlığını aramak size yardımcı olmayacaktır, çünkü bazı donanım ve sistemle ilgili paketler hem 32bit hem de 64 bit kütüphaneleri güvenli tarafa yükleyecektir. (Debian) sistemimde sahte paket tam olarak bunu yapıyor.
"Uname -m" nin çıktısına gelince, eğer i386 ya da i686 ise 32bit, eğer x86_64 (ya da alfa ya da ia64 ya da hiç görmediğim diğer 64bit mimarileri ise :) 64bit.
(eğlenceli olarak, 64bit FreeBSD sunucum, bir x86 64bit mimarisinin geçmişini biliyorsanız, bir tuhaf quadcore için biraz garip olabilir ama tamamen anlaşılabilir "amd64" döndürür)
-a uname ve x86_64 için arayın. Eğer CPU'nuzun 64bit kullanıp kullanamayacağını bilmek istiyorsanız, cat / proc / cpuinfo ve bayrakların içindeki lm'yi arayın.
Sadece bazı şeyleri karıştırmak için, 32bit kullanıcılı bir 64bit çekirdeği çalıştırabilirsin. Bu durumda, uname -m
döner, x86_64
ancak yüklü 64bit kütüphanem yok, bu yüzden 64bit programların çoğu çalışmayacak.
Eğer'uname kontrol Sonra bir gün, sizin için bakmak gerekir /lib64/ld-linux-x86-64.so.2
, /lib64/libc-2.7.so
ve /lib/ld-linux.so.2
, /lib/libc-2.7.so
64bit ve 32bit kitaplıkları kullanılabilir olup olmadığını görmek için. Ve gerçekten emin olmak için, bu dosyaları çalıştırın ve doğru çalışıp çalışmadıklarını görün.
Bir başka yararlı bilgi, çıktısı lsb_release -a
çapraz dağıtımdır ve hangi mimariye özgü LSB modüllerinin mevcut olduğunu bildirir.
lsb_release -a
kullanıcı mimarisi çıktısını vermiyor
$> getconf LONG_BIT
Cevap: 32 ya da 64.
Bunu yapmanın başka bir yolu perl'e uzun bir tamsayı boyutunun ne dediğini sormaktır:
$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
64
vs.
$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
32
Veya, gcc'yi yüklediyseniz, aynı C:
$ cat > bits.c <<EOC
> #include <stdlib.h>
> #include <stdio.h>
>
> int main(void) {
> printf("%d\n", (int)sizeof(long)*8);
>
> exit(0);
> }
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
64
vs.
[...]
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
32
:-)
Bir kopyası olarak:
Linux + linux sürüm 32 Bit veya 64 Bit nasıl doğrulanır
uname -m size yalnızca çekirdeğin çalışan 'arch' / mimarisini verecektir. 64 bit işlemcili bir CPU'da 32 bit GNU / Linux dağıtımını çalıştırıp çalıştırmadığınızı size söylemez.
CPU yeteneğinizi bilmek:
cat /proc/cpuinfo
'LM' bayrağı, 'UZUN MODU'yu (64bit Uzantıları, AMD'nin AMD64 veya Intel'in EM64T'sini) temsil ettiği için 64 bit sistemlerde bulunmalıdır.
Eğer / usr / lib64 varsa, x86_64 kullanıyorsunuz.
Brad Gilbert'in emri perl hatası yaptı. Düzelttim ve aşağıdaki komut çalışıyor: cat / proc / cpuinfo | grep ^ bayraklar | perl -e '$ = <>; yazdır ($ ? "x86_64 \ n": "değil x86_64 \ n")'