GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déterminer le bitness du matériel et du système d'exploitation ?

Le matériel, le noyau et les programmes de l'espace utilisateur peuvent avoir des tailles de mots différentes¹.

  • Vous pouvez voir si le CPU est 64 bits, 32 bits ou capable des deux en vérifiant le flags ligne en /proc/cpuinfo . Vous devez connaître les drapeaux possibles sur votre famille d'architecture. Par exemple, sur les plateformes i386/amd64, le lm L'indicateur identifie les processeurs compatibles amd64 (les processeurs qui n'ont pas cet indicateur sont i386 uniquement).

      grep -q '^flags *:.*\blm\b' /proc/cpuinfo    # Assuming a PC
    
  • Vous pouvez voir si le noyau est 32 bits ou 64 bits en interrogeant l'architecture avec uname -m . Par exemple, i[3456]86 sont 32 bits tandis que x86_64 est 64 bits. Notez que sur plusieurs architectures, un noyau 64 bits peut exécuter des programmes utilisateur 32 bits, donc même si le uname -m montre un noyau 64 bits, il n'y a aucune garantie que les bibliothèques 64 bits seront disponibles.

      [ "$(uname -m)" = "x86_64" ]    # Assuming a PC
    
  • Vous pouvez voir ce qui est disponible en userland en interrogeant le support LSB avec le lsb_release commande. Plus précisément, lsb_release -s imprime un : - liste séparée des fonctionnalités LSB prises en charge. Chaque caractéristique a la forme module-version-architecture . Par exemple, la disponibilité d'une bibliothèque C ix86 est indiquée par core-2.0-ia32 , tandis que core-2.0-amd64 est l'analogique pour amd64. Cependant, toutes les distributions ne déclarent pas tous les modules LSB disponibles, il peut donc y en avoir plus que ce qui est détectable de cette manière.

  • Vous pouvez voir pour quels programmes d'architecture sur le système sont construits avec une commande comme file /bin/ls . Notez qu'il est possible d'avoir un système mixte; même si ls est un programme 64 bits, votre système peut avoir des bibliothèques installées pour exécuter des programmes 32 bits, et (moins souvent) vice versa.

  • Vous pouvez trouver la taille de mot préférée pour le développement (en supposant qu'un compilateur C est disponible) en compilant un programme C de 5 lignes qui imprime sizeof(void*) ou sizeof(size_t) . Vous pouvez obtenir les mêmes informations de manière un peu moins fiable² en exécutant la commande getconf LONG_BIT .

      #include <stdio.h>
      int main() {
          printf("%d\n", (int)sizeof(void*));
          return 0;
      }
    

En ce qui concerne les machines virtuelles, la possibilité d'exécuter une machine virtuelle 64 bits sur un système 32 bits ou vice versa dépend de la technologie de votre machine virtuelle. Voir en particulierComment installer une machine virtuelle Linux 64 bits sur un Linux 32 bits ?

¹ "Word size" est le nom habituel de ce que vous appelez bitness.
² Il peut être peu fiable si quelqu'un a installé un autre compilateur C avec une architecture cible différente mais a conservé la valeur par défaut du système getconf .


Linux
  1. Comment les tests Linux ont changé et ce qui compte aujourd'hui

  2. Comment obtenir des informations sur le système et le matériel sous Linux

  3. Debian – Comment exécuter des programmes 32 bits sur une Debian/ubuntu 64 bits ?

  4. Procédure :Réplication et configuration DRBD

  5. Comment déterminer si un Linux donné est 32 bits ou 64 bits ?

Comment afficher les informations sur le matériel sous Linux

Comment savoir si vous avez un ordinateur 32 bits ou 64 bits sous Linux et Windows

Comment installer et configurer Grafana

Comment savoir si la version 32 bits ou 64 bits de Linux

Comment vérifier que le système Linux est 32 bits ou 64 bits ?

Comment mettre en réseau Ubuntu et Windows 10 ?