GNU/Linux >> Linux Esercitazione >  >> Linux

Come faccio a sapere se sto utilizzando Linux a 32 o 64 bit?

Soluzione 1:

"uname -m" è il comando che stai cercando. Puoi eseguire sia a 32 bit che a 64 bit sui moderni processori Intel e AMD, quindi "uname -p" non ti aiuterà (inoltre per lo più non funziona in questi giorni, questo qui core2 pensa alla risposta a "uname -p" è "sconosciuto").

Anche cercare l'esistenza di /usr/lib64 (come è stato suggerito) non ti aiuterà, poiché alcuni pacchetti relativi all'hardware e al sistema installeranno entrambe le librerie a 32 bit e 64 bit per essere al sicuro. Sul mio sistema (debian) il pacchetto fakeroot fa proprio questo.

Per quanto riguarda l'output di "uname -m", se è i386 o i686 è a 32 bit, se è x86_64 (o alpha, o ia64 o qualche altra architettura a 64 bit che non ho mai visto :) è a 64 bit.

(a parte il divertimento, il mio server FreeBSD a 64 bit restituisce "amd64", che potrebbe essere un po' strano per un Intel quadcore ma del tutto comprensibile se conosci la storia dell'architettura x86 a 64 bit)

Soluzione 2:

uname -a e cerca x86_64. Se vuoi sapere se la tua CPU è in grado di gestire 64 bit, cat /proc/cpuinfo e cerca lm all'interno dei flag.

Soluzione 3:

per RedHat/CentOS:

$ 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 e/o i386

64 bit

  • avrebbe x86_64 in uname -a uscita

Soluzione 4:

Solo per confondere le cose, puoi eseguire un kernel a 64 bit con uno spazio utente a 32 bit, che è quello che sto facendo. In questo caso, uname -m restituisce x86_64 ma non ho alcuna libreria a 64 bit installata, quindi la maggior parte dei programmi a 64 bit non funzionerà.

Quindi, una volta controllato uname, devi cercare /lib64/ld-linux-x86-64.so.2 , /lib64/libc-2.7.so e /lib/ld-linux.so.2 , /lib/libc-2.7.so per vedere se sono disponibili librerie a 64 e 32 bit. E per essere veramente sicuro, esegui quei file e controlla se vengono eseguiti correttamente.

Un'altra informazione utile è l'output di lsb_release -a che è cross-distro e riporterà quali moduli LSB specifici dell'architettura sono disponibili.

Soluzione 5:

$> getconf LONG_BIT Risposta:32 o 64.


Linux
  1. Come riavviare (o ripristinare) un processo in esecuzione in Linux?

  2. Come eliminare i processi in esecuzione in Linux

  3. Come faccio a sapere se sto eseguendo una shell nidificata?

  4. Come uccidere un processo in esecuzione su una particolare porta in Linux?

  5. Come sapere dove è bloccato un programma in Linux?

Come eliminare l'esecuzione del processo Linux su una porta particolare

Come sapere se hai un computer a 32 bit o 64 bit in Linux e Windows

Come conoscere i gruppi di un utente Linux

Come sapere se la versione a 32 bit o 64 bit di Linux

Come verificare il sistema Linux è a 32 o 64 bit?

Come posso profilare il codice C++ in esecuzione su Linux?