32 ya da 64 bit Linux çalıştığımı nasıl bilebilirim?


Yanıtlar:


37

"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)


1
Bu size kurulum mimarisini veya gerçek CPU mimarisini anlatıyor mu? Örneğin, 64 bit işlemci üzerine 32 bit işletim sistemi kurduysanız, bu i686 veya x86_64'ü verir mi?
monkut

15

-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.


3
kedi / proc / cpuinfo | grep ^ bayraklar | perl -e '$ _ = <>; yazdır "x86_64 \ n": "değil x86_64 \ n"'
Brad Gilbert

6

RedHat / CentOS için:

$ uname -a
Linux cs-centos 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686 athlon i386 GNU/Linux

32 bit

  • i686 ve / veya i386

64 bit

  • olurdu x86_64 içinde 'uname -a çıktı

6

Sadece bazı şeyleri karıştırmak için, 32bit kullanıcılı bir 64bit çekirdeği çalıştırabilirsin. Bu durumda, uname -mdöner, x86_64ancak 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.sove /lib/ld-linux.so.2, /lib/libc-2.7.so64bit 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.


2
Ne yazık ki lsb_release -akullanıcı mimarisi çıktısını vermiyor
Joni


2

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

:-)


Bu,
perl’ın

@ pjc50: Ve amacınız nedir?
asjo

1
Onun anlamı, 64 bitlik bir sistemde 32 bit Perl
alabileceğinizdir

@niXar: Bunun mümkün olduğunu sanıyorum, ancak bunun olması oldukça ... garip Linux dağıtımı için yeterli olacaktır. Neyse, daha sonra C versiyonunu kullanın ;-)
asjo,

1

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.



0

Eğer / usr / lib64 varsa, x86_64 kullanıyorsunuz.


3
mkdir / usr / lib128 && echo "Bakın ma, 128 bit bir bilgisayarım var!"
niXar

0

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")'

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.