Tratar uname -m
. Que es corto uname --machine
y produce:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
De lo contrario, no para el kernel de Linux, sino para la CPU , escriba:
cat /proc/cpuinfo
o:
grep flags /proc/cpuinfo
En el parámetro "flags", verá varios valores: vea " ¿Qué significan los flags en / proc / cpuinfo? " Entre ellos, uno se llama lm
: Long Mode
( x86-64 : amd64, también conocido como Intel 64, es decir, 64 bits capaz)
lm ==> 64-bit processor
O usandolshw
(como se menciona a continuación por Rolf de Sajonia ), sin sudo
(solo para aprovechar el ancho de la CPU):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Nota: puede tener una CPU de 64 bits con un núcleo de 32 bits instalado .
(como ysdx menciona en su propia respuesta , "Hoy en día, un sistema puede ser multiarch, por lo que no tiene sentido de todos modos. Es posible que desee encontrar el objetivo predeterminado del compilador")
uname -i
,uname -p
y launame -m
serie?Si estuviera ejecutando una plataforma de 64 bits, vería x86_64 o algo muy similar en la salida de uname -a
Para obtener el nombre de hardware específico de su máquina, ejecute
Tambien puedes llamar
que devuelve 32 o 64
fuente
uname -m
salidasx86_64
getconf LONG_BIT
salidas32
¿Cuál es la correcta? : \uname -m
no es útil para los QPconfigure
ya que puede dar un resultado incorrecto. Elgetconf LONG_BIT
obtener el tamaño predeterminado de bits de la biblioteca de C que pueden no ser del tamaño correcto para una especificada, porCC
, compilador.getconf LONG_BIT
puede proporcionar 32 ig. Se ha creado como una aplicación de 32 bits (normalmente, un núcleo de 64 bits que ejecuta un usuario de 32 bits).lscpu
enumerará estos entre otra información con respecto a su CPU:fuente
Otro comando útil para una fácil determinación es el siguiente:
Mando:
Responder:
fuente
El comando
es equivalente a
pero es el doble de rápido para escribir
fuente
Me preguntaba sobre esto específicamente para construir software en Debian (el sistema Debian instalado puede ser una versión de 32 bits con un núcleo de 32 bits, bibliotecas, etc., o puede ser una versión de 64 bits con material compilado para 64- bit en lugar del modo de compatibilidad de 32 bits).
Los paquetes Debian necesitan saber para qué arquitectura son (por supuesto) cuando realmente crean el paquete con todos sus metadatos, incluida la arquitectura de la plataforma, por lo que hay una herramienta de empaque que lo genera para que otras herramientas de empaque y scripts lo usen, llamado dpkg-architecture . Incluye tanto para qué está configurado para construir, como el host actual. (Normalmente, estos son los mismos). Ejemplo de salida en una máquina de 64 bits:
Puede imprimir solo una de esas variables o hacer una prueba con sus valores con opciones de línea de comando para dpkg -architecture.
No tengo idea de cómo dpkg-architecture deduce la arquitectura, pero podría ver su documentación o código fuente (dpkg-architecture y gran parte del sistema dpkg en general son Perl).
fuente
dpkg --architecture
para obtener la arquitectura del sistema host, que no requiere la instalación deldpkg-dev
paquete.dpkg: error: unknown option --architecture
para dpkg 1.17.5ubuntu de 14.04. Sin embargo, dpkg-architecture (con dpkg-dev instalado) funciona bien.dpkg --print-architecture
ha funcionado en Debian desde siempre. Este funciona pero está limitado a Debian y sus derivados.fuente
Si tiene un sistema operativo de 64 bits, en lugar de i686, tiene
x86_64
oia64
en la salida deuname -a
. En eso no tienes ninguna de estas dos cadenas; tiene un sistema operativo de 32 bits (tenga en cuenta que esto no significa que su CPU no sea de 64 bits).fuente
uname
salida que indican SO de 64 bits. No todo el mundo es un x86 o Itanium ...Ese sistema es de 32 bits. iX86 en
uname
significa que es una arquitectura de 32 bits. Si fuera de 64 bits, volveríafuente
Hoy en día, un sistema puede ser multiarch, por lo que no tiene sentido de todos modos. Es posible que desee encontrar el destino predeterminado del compilador:
Puedes intentar compilar un hola mundo:
fuente
cc -v | grep …
de todos modos es específico del compilador, uno puede usarlocc -dumpmachine
, lo que no requiere grepping y no solo es compatible con GCC.Con respecto a la respuesta "getconf LONG_BIT" .
Escribí una función simple para hacerlo en 'C':
Buena idea, el 'getconf'!
fuente
CHAR_BIT*sizeof(void*)
o__WORDSIZE
en C.fgets
: stackoverflow.com/questions/16323185/…También puede verificar usando una variable de entorno:
Resultado:
i386
-> 32 bitsx86_64
-> 64 bitsExtraído de: http://www.sysadmit.com/2016/02/linux-como-saber-si-es-32-o-64-bits.html
fuente
/bin/bash
no es una variable de entorno. Si ya eres dependiente de Bash, esto funciona bien. Sin embargo, el resultado puede seri386
,i486
,i586
,i686
y otros así que tenga cuidado.En Bash, usando el desbordamiento de enteros:
Es mucho más eficiente que invocar otro proceso o abrir archivos.
fuente
getconf usa la menor cantidad de llamadas al sistema:
fuente
Si desplaza 1 a la izquierda por 32 y obtiene 1, su sistema es de 32 bits. Si desplaza 1 a la izquierda por 64 y obtiene 1, su sistema es de 64 bits.
En otras palabras,
if echo $((1<<32)) gives 1 then your system is 32 bit
.if echo $((1<<64)) gives 1 then your system is 64 bit
.fuente
Si uno está severamente limitado en binarios disponibles (por ejemplo, en initramfs), mis colegas sugirieron:
En mis sistemas ALT Linux, i586 tiene
/lib/ld-linux.so.2
y x86_64 tiene/lib64/ld-linux-x86-64.so.2
.fuente
fuente
No puedo creer que en todo este tiempo, nadie haya mencionado:
para obtener detalles sobre la velocidad, cantidad, tamaño y capacidades del hardware de la CPU.
fuente
Script simple para obtener 64 bits o 32 bits
fuente
[ -z `uname -m | grep 64` ] && echo "32-bit" || echo "64-bit"
Basado en el hecho de que generalmente es de 64 bits
x86_64
y de 32 bits,i686
etc.fuente
Primero tienes que descargar Virtual Box. Luego seleccione nuevo y un Linux de 32 bits. Luego arranque el linux usándolo. Si arranca, entonces es de 32 bits, si no es así, es de 64 bits.
fuente