uname -m
da i686 y uname -m
da salida i686 i386 en la máquina Red Hat Enterprise Linux Server versión 5.4 (Tikanga). Necesito instalar Oracle Database 10g Release 2 en esa máquina. Entonces, ¿cómo puedo decidir si la arquitectura del núcleo es de 32 bits o de 64 bits?
linux
command-line
x86
cpu-architecture
usuario2914
fuente
fuente
uname -m
yuname -m
?uname -m
muestra i? 86, tiene un sistema de 32 bits.getconf WORD_BIT
.getconf WORD_BIT
devuelve 32 en mi Ubuntu de 64 bitsRespuestas:
i386 e i686 son ambos de 32 bits.
x86_64 es de 64 bits
ejemplo para 64 bit:
EDITAR: ¿
Ves mi linux ARM de 32 o 64 bits? para BRAZO
fuente
uname -m
. Eso solo mostrará la arquitectura.¡Es sencillo! Usa el
arch
comando.fuente
arch
regresai386
, pero seuname -a
muestrax86_64
.@behrooz es correcto. Lamentablemente
uname
requiere que sepas arquitecturas. En realidad, estaba buscando una lista de arquitecturas y encontré este artículo que responde a su pregunta. En cuanto auname -m
:Para determinar si el hardware es capaz de ejecutar un núcleo de 64 bits
Busque lo siguiente en la salida (todas las banderas recuperadas de esta respuesta de stackoverflow para la misma pregunta)
lm
bandera significa CPU de modo largo - CPU de 64 bitstm
bandera significa modo protegido - CPU de 32 bitsrm
la bandera significa Modo Real - CPU de 16 bitsfuente
(EDITAR: esta respuesta es INCORRECTA. Gracias al comentario de @ Lizardx)
En Bash, usando el desbordamiento de enteros:
Es mucho más eficiente que invocar otro proceso o abrir archivos.
fuente
((
es un Bashismo y no está definido por POSIX mywiki.wooledge.org/Bashism#Conditionals((1<<32)-1)
Para Debian :
En mi PC
Mi frambuesa pi 2
fuente
checkinstall
, ¡gracias!La forma más simple es ejecutar:
que generará 64 o 32 dependiendo de si es de 32 o 64 bits.
p.ej:
fuente
getconf LONG_BIT
se imprimirá la instalación a través de 32 bits32
aunque esté ejecutando un núcleo de 64 bits.usar syscap del proyecto Formake
syscap permite probar muchas propiedades del sistema y probar dependencias. Es un script de shell portátil.
Obtener arquitectura de CPU:
Obtenga el nombre y la versión del kernel:
fuente
Otra forma es verificar la arquitectura para la que se compiló un archivo de sistema, como
fuente
O puede usar la forma de lo que hace internamente el comando uname si desea implementar algunas cosas por su cuenta:
fuente
Aquí hay otro método usando
uname
.De
man uname
:... -i, --hardware-platform print the hardware platform or "unknown" ...
# uname -i x86_64
#
fuente
Si está buscando una línea simple, esta es la solución más confiable que he encontrado que devuelve 64 o 32 . No le importa si está ejecutando ARM o no, y debería funcionar en cualquier sistema que use bash o sh .
Cuidado, esto supondrá que el sistema es de 32 bits o de 64 bits. Vea mi explicación a continuación si necesita detectar una arquitectura de 8-16 o algún otro tipo de arquitectura.
¿Qué pasa aquí?
La lógica es muy simple y todo se reduce a cómo las computadoras almacenan enteros firmados. ¡Una arquitectura de 32 bits solo tiene 32 bits que puede usar para almacenar enteros con signo, mientras que una arquitectura de 64 bits tiene 64 bits! En otras palabras, el conjunto de enteros que se pueden almacenar es finito. La mitad de este conjunto representa números negativos y la otra mitad representa números positivos. El entero con signo igual a -1 se representa como el número más grande que se puede almacenar en un número dado de bits para esa arquitectura. En un sistema de 32 bits, -1 puede representarse por el valor hexadecimal 0xFFFFFFFF (que es 32 bits binarios, todos iguales a 1). En un sistema de 64 bits, 0xFFFFFFFF se traduce en 4,294,967,295, base 10, mientras que 0xFFFFFFFFFFFFFFFF es la representación de -1). Puede ver cómo esto se escalaría fácilmente para sistemas de 8 o 16 bits que serían iguales a -1 en 0xFF y 0xFFFF,
fuente