Question Comment savoir si j'utilise Linux 32 ou 64 bits?


que serait une commande pour exécuter dans différentes distributions?


23
2018-06-17 20:12


origine


stackoverflow.com/questions/246007/… - Ciro Santilli 新疆改造中心 六四事件 法轮功


Réponses:


"uname -m" est la commande que vous recherchez. Vous pouvez exécuter à la fois les processeurs 32 bits et 64 bits sur les processeurs Intel et AMD modernes, ainsi "uname -p" ne vous aidera pas (en plus, cela ne fonctionne généralement pas ces jours-ci, ce core2 pense ici que la réponse à "uname -p" est "inconnu").

Rechercher l'existence de / usr / lib64 (comme cela a été suggéré) ne vous aidera pas non plus, car certains packages liés au matériel et au système vont installer les bibliothèques 32 bits et 64 bits dans un souci de sécurité. C'est ce que fait le paquet fakeroot sur mon système (debian).

En ce qui concerne la sortie de "uname -m", si c'est i386 ou i686, c'est 32 bits, si c'est x86_64 (ou alpha, ou ia64 ou quelque autre architecture 64 bits que je n'ai jamais vue :), c'est 64 bits.

(En passant, mon serveur FreeBSD 64 bits renvoie "amd64", ce qui peut paraître un peu étrange pour un quadcore intel, mais parfaitement compréhensible si vous connaissez l'historique de l'architecture x86 64 bits)


37
2018-06-17 21:31



Cela vous indique-t-il l'architecture d'installation ou l'architecture réelle du processeur? Par exemple, si vous avez installé un système d’exploitation 32 bits sur un processeur 64 bits, cela renverrait-il i686 ou x86_64? - monkut


uname -a et cherchez x86_64. Si vous voulez savoir si votre processeur peut gérer les 64 bits, cat / proc / cpuinfo et recherchez lm dans les drapeaux.


15
2018-06-17 20:15



cat / proc / cpuinfo | grep ^ drapeaux | perl -e '$ _ = <>; print "x86_64 \ n": "pas x86_64 \ n"' - Brad Gilbert


pour 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 bits

  • i686 et / ou i386

64 bits

  • aurait x86_64 dans uname -a sortie

6
2018-06-17 20:14





Juste pour confondre les choses, vous pouvez exécuter un noyau 64 bits avec un environnement utilisateur 32 bits, ce que je fais. Dans ce cas, uname -m résultats x86_64 mais je n'ai pas de bibliothèques 64 bits installées, donc la plupart des programmes 64 bits ne s'exécutent pas.

Donc, une fois que vous vérifiez uname, vous devez rechercher /lib64/ld-linux-x86-64.so.2, /lib64/libc-2.7.so et /lib/ld-linux.so.2, /lib/libc-2.7.so pour voir si les bibliothèques 64 bits et 32 ​​bits sont disponibles. Et pour être vraiment sûr, lancez ces fichiers et voyez s'ils s'exécutent correctement.

Une autre information utile est la sortie de lsb_release -a qui est cross-distro et indiquera quels modules LSB spécifiques à l’architecture sont disponibles.


6
2018-06-18 04:06



Malheureusement lsb_release -a ne sort pas l'architecture utilisateur - Joni


$> getconf LONG_BIT Réponse: 32 ou 64.


6
2017-11-17 07:24





Une autre façon de le faire est de demander à Perl ce que le compilateur a déclaré que la taille d’un entier long est:

$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
64

contre.

$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
32

Ou, si vous avez installé gcc, la même chose en 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

contre.

[...]
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
32

:-)


2
2018-06-18 07:38



Cela vous dit simplement ce que fait la version par défaut de perl. - pjc50
@ pjc50: Et votre point est? - asjo
son point est que vous pourriez avoir un Perl 32 bits sur un système 64 bits - niXar
@niXar: Je suppose que c'est possible, mais cela ferait une assez ... étrange distribution Linux. Quoi qu'il en soit, utilisez la version C alors ;-) - asjo


En double de:

Linux + comment vérifier linux version 32 bits ou 64 bits

uname -m ne vous donnera que l’architecture / architecture du noyau en cours d’exécution. Il ne vous dira PAS si vous utilisez une distribution GNU / Linux 32 bits sur un processeur compatible 64 bits.

Pour connaître votre capacité de processeur:

 cat /proc/cpuinfo

L’indicateur "LM" doit être présent dans les systèmes 64 bits car il représente le "LONG MODE" (extensions 64 bits, AMD AMD64 ou Intel 64).


1
2018-01-03 15:21





$ uname -p

x86_64

0
2018-06-17 20:15



"uname -p" renvoie "athlon" sur mon système - pas très utile ... - webwesen
J'ai aussi rencontré des machines sur lesquelles uname -p m'avait "inconnu" .. - Cube_Zombie