Cuando hago un gato en / proc / cpuinfo, muestra una línea con clflushsize: 64
¿Significa esto que mi núcleo se ejecuta en 64 bits?
uname -a
le dirá el núcleo: el bit final le indica la arquitectura.
Dos ejemplos:
Mi mac:
Darwin Mac.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
Mi alojamiento de Dreamhost:
Linux ecco 2.6.24.5-serf-xeon-c6.1-grsec #1 SMP Tue Oct 7 06:18:04 PDT 2008 x86_64 GNU/Linux
i386 = 32 bit
x86_64 = 64 bit
uname -m
le dará la arquitectura para la que está compilado el núcleo. Si se imprimei686
, su núcleo es de 32 bits, six86_64
es de 64 bits, suponiendo que tenga un chip Intel / AMD.fuente
i386
en plataformas antiguas de 32 bits (e incluso he visto algunos paquetes compilados , aunquei586
no estoy seguro de si eso saldríauname
)uname -m
le brinda la arquitectura que el núcleo elige exponer a este proceso en particular, no la arquitectura nativa del núcleo. Ver este enlace .uname -m
no informar de la arquitectura real. Si no es así, lo más probable es que el administrador realmente quiera que creas que estás en esa otra arquitectura y tu mejor opción es aceptar que él sabe lo que está haciendo. Si usted es el administrador y está jugando,setarch
entonces de todos modos ya sabe mejor.setarch
y usted puede invocar dicha secuencia de comandos sin tener la menor idea de que haceuname -m
que devuelva algo diferente. Es posible, tal vez incluso probable, que este tipo de problemas sea la razón por la cual el OP pregunta.init
cree que es de 32 bits: la situación para esto es el núcleo de 64 bits con espacio de usuario de 32 bits. Muchos sistemas de compilación dependenuname -m
para determinar los indicadores del compilador, por ejemplo, el de GDB, se les debe proporcionar una personalidad falsa. Pero alguna otra aplicación de espacio de usuario aún puede querer saber qué tipo de núcleo tiene (por ejemplo, para algunas necesidades de bajo nivel), independientemente de su personalidad.Creo que la forma más precisa es
aquí se muestra exactamente
64
encontrado en este consejo
getconf
es del paquete libc-bin (en ubuntu)fuente
Si desea un informe sencillo pero detallado sobre su sistema (CPU, Kernel y software Core OS) y no solo el kernel , aquí hay un pequeño script bash que le dará las respuestas rápidamente.
Si conoce lo suficiente sobre las peculiaridades de las CPU de 32 bits / 64 bits y S / W, es simplemente útil. Si no sabe mucho y cree que su "sistema" es de 32 bits o de 64 bits, le ayudará a descubrir que la verdad puede ser más compleja (partes de su sistema pueden ser de 64 bits mientras que otras de 32 bits) sin confundirlo.
Una vez más, este script (y respuesta) no es para la pregunta literal "¿Cómo sé si mi kernel de Linux se ejecuta en 32 bits o 64 bits?" pero para aquellos que también quieren conocer el arco de su CPU y el núcleo del SO SW.
Reportes de ejemplo
Estos son ejemplos de un caso bastante inusual:
Informe de mini-script (para usuarios experimentados)
Informe de script más grande (para usuarios menos experimentados)
Los guiones
Mini script (para administradores experimentados)
Estas 4 líneas brindan toda la información esencial.
Script más grande (para usuarios menos experimentados)
Este script imprime muchas explicaciones y es útil si no tiene experiencia en el tema y se enfrenta a un caso peculiar.
Si desea obtener más información, lea estas dos páginas de donde obtuve la mayor parte de la información a) /programming/246007/how-to-determine-whether-a-given-linux-is-32- bit-or-64-bit b) /unix//a/134394/73271
fuente
Si desea ver solo la plataforma en la que se está ejecutando, puede usar
La lista completa de opciones admitidas para
uname
esfuente
uname -i
impresionesGenuineIntel
, que no es realmente lo que está buscando.Unknown
en una Maci386
en mi máquina!CLFLUSHSIZE
no le dice nada sobre el modo operativo del procesador. Según esta respuesta , se refiere a la unidad de caché de descarga más pequeña. En su caso, las líneas de caché se leen / escriben en unidades de 64 bytes.uname
la salida varía demasiado para ser útil, como lo muestra un vistazo a la tabla de ejemplos de Wikipedia . El método más confiable esgetconf LONG_BIT
como se muestra en la respuesta de Aquarius Power . Esto funciona independientemente de la arquitectura del procesador, por lo que es justo en casa en ARM, Power o MIPS como en x86.fuente