GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo determinar el bitness del hardware y el sistema operativo?

El hardware, el kernel y los programas de espacio de usuario pueden tener diferentes tamaños de palabra¹.

  • Puede ver si la CPU es de 64 bits, 32 bits, o ambos, marcando el flags línea en /proc/cpuinfo . Tienes que conocer las posibles banderas en tu familia de arquitectura. Por ejemplo, en las plataformas i386/amd64, el lm identifica las CPU compatibles con amd64 (las CPU que no tienen esa bandera son solo i386).

      grep -q '^flags *:.*\blm\b' /proc/cpuinfo    # Assuming a PC
    
  • Puede ver si el kernel es de 32 bits o de 64 bits consultando la arquitectura con uname -m . Por ejemplo, i[3456]86 son de 32 bits mientras que x86_64 es de 64 bits. Tenga en cuenta que, en varias arquitecturas, un núcleo de 64 bits puede ejecutar programas de usuario de 32 bits, por lo que incluso si el uname -m muestra un kernel de 64 bits, no hay garantía de que las bibliotecas de 64 bits estén disponibles.

      [ "$(uname -m)" = "x86_64" ]    # Assuming a PC
    
  • Puede ver lo que está disponible en la zona de usuario consultando el soporte de LSB con el lsb_release dominio. Más precisamente, lsb_release -s imprime un : -Lista separada de funciones LSB admitidas. Cada función tiene la forma module-version-architecture . Por ejemplo, la disponibilidad de una biblioteca ix86 C se indica mediante core-2.0-ia32 , mientras que core-2.0-amd64 es el análogo para amd64. Sin embargo, no todas las distribuciones declaran todos los módulos LSB disponibles, por lo que puede haber más disponibles de los que se pueden detectar de esta manera.

  • Puede ver para qué programas de arquitectura en el sistema están construidos con un comando como file /bin/ls . Tenga en cuenta que es posible tener un sistema mixto; incluso si ls es un programa de 64 bits, su sistema puede tener bibliotecas instaladas para ejecutar programas de 32 bits y (menos comúnmente) viceversa.

  • Puede averiguar el tamaño de palabra preferido para el desarrollo (suponiendo que haya un compilador C disponible) compilando un programa C de 5 líneas que imprima sizeof(void*) o sizeof(size_t) . Puede obtener la misma información de una manera un poco menos confiable² ejecutando el comando getconf LONG_BIT .

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

En cuanto a las máquinas virtuales, si puede ejecutar una VM de 64 bits en un sistema de 32 bits o viceversa, depende de la tecnología de su máquina virtual. Ver en particular¿Cómo puedo instalar una máquina virtual Linux de 64 bits en una Linux de 32 bits?

¹ "Tamaño de palabra" es el nombre habitual para lo que llamas bitness.
² Puede no ser confiable si alguien instaló un compilador de C alternativo con una arquitectura de destino diferente pero mantuvo el sistema predeterminado getconf .


Linux
  1. Cómo han cambiado las pruebas de Linux y qué importa hoy

  2. Cómo mostrar los detalles del sistema y del hardware en Debian 10

  3. Debian:¿cómo ejecutar programas de 32 bits en un Debian/ubuntu de 64 bits?

  4. Cómo:replicación y configuración de DRBD

  5. Cómo compilar un binario de 32 bits en una máquina Linux de 64 bits con gcc/cmake

Cómo ver información de hardware en Linux

Cómo saber si tiene una computadora de 32 o 64 bits en Linux y Windows

Cómo instalar y configurar Grafana

Cómo saber si la versión de Linux es de 32 bits o de 64 bits

¿Cómo verificar que el sistema Linux sea de 32 bits o de 64 bits?

¿Cómo conectar en red Ubuntu y Windows 10?