¿Cómo verificar si mi sistema operativo es de 64 bits o de 32 bits?

9

¿Cuál es la mejor manera de determinar si mi sistema operativo es de 64 bits o de 32 bits?

Supongamos que, directamente en algún sistema operativo, voy a instalar un software en él. Pero cómo determinar si el sistema operativo es de 32 bits o de 64 bits,

El sistema operativo puede ser cualquier cosa, como

  • Windows XP
  • vista
  • ventanas 7
  • os x leopard
  • os x leopardo de las nieves
  • Red hat linux

Lo que quiero decir es: ¿cuál es la mejor y más común forma de determinar si el sistema operativo es de 64 bits o de 32 bits? Quiero decir, estoy hablando en general. No he instalado el sistema operativo en la máquina de alguien y si le digo que determine su base del sistema operativo: ¿64 o 32? Qué harías tú entonces ?

Gracias de antemano por compartir sus conocimientos. Azúcar.

Sagar R. Kothari
fuente
¿Pero qué hay de OSX?
Sagar R. Kothari

Respuestas:

5

En muchos sistemas tipo Unix puede escribir:

uname -a

Para FreeBSD se ve así:

FreeBSD whiplash 8.0-STABLE FreeBSD 8.0-STABLE #1: 
Tue Mar  9 15:38:19 CET 2010     root@beast:/usr/obj/usr/src/sys/WHIPLASH  amd64

(amd64 significa que este kernel es de 64 bits)

Para Linux:

Linux softy.vm 2.6.18-128.el5 #1 SMP 
Wed Jan 21 10:44:23 EST 2009 i686 athlon i386 GNU/Linux

(i386 significa que este núcleo es de 32 bits)

Para MacOSX:

Darwin iMac.local 10.0.0 Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009;
root:xnu 1456.1.25~1/RELEASE_X86_64 x86_64

(x86_64 significa que este kernel es de 64 bits)

Maciej Kucharz
fuente
1
O simplemente "uname -p" que devuelve resultados como i386, x86_64, amd64 :)
Janne Pikkarainen
¿Qué es i386? uname -p funciona pero no entiendo i386
Sagar R. Kothari
1
Tenga en cuenta que en OSX, incluso si tiene una CPU x86_64, (algunos de) el núcleo podría ejecutarse en 32 bits. Esto es cierto para principios de 2008 MacBook (4,1), por ejemplo.
trolle3000
@sugar, i386 es una arquitectura de CPU de 32 bits, y x86_64 es una arquitectura de 64 bits.
trolle3000
1
@sugar también puede ver en algunos lugares i486, i586 o i686, estos también son de 32 bits pero incluyen más instrucciones.
AndrejaKo
7

Si tuviera que realizar alguna acción utilizando la secuencia de comandos CMD en Windows, podría iniciar el archivo por lotes de la siguiente manera:

@echo off

if %PROCESSOR_ARCHITECTURE% == x86 (
goto :x86
) else (
goto :x64
)

:x86
start "foo.exe"
goto :eof

:x64
start "bar.exe"
goto :eof
paradroid
fuente
justo lo que necesitaba
Piotr Kula
3

Bajo Windows:

El camino GUI

  1. Presione Win + R para abrir el cuadro de diálogo Ejecutar ...
  2. Ingrese winmsd
  3. Busque fila Procesador o Tipo de sistema

Si comienzan con x86, tiene 32 bits; de lo contrario, tiene 64 bits

Usar cmd.exe
Enter SET PROCESSOR_ARCHITECTURE
x86 significa 32 bits, de lo contrario es 64 bits

Usar Powershell
Enter $env:PROCESSOR_ARCHITECTURE
Meaning es lo mismo que usar cmd.exe

Tenga cuidado
Hay dos tipos diferentes de arquitecturas de 64 bits.
Uno es AMD64 para x64 y el otro es ia64 para Itanium (no estoy seguro de que este valor sea exactamente así, nunca funcionó con ninguno de ellos)

Peter
fuente
ia64 es para procesadores Itanium que tienen una arquitectura completamente diferente y no son parte de la familia x86. Pueden ejecutar programas x86 pero su modo de 64 bits es básicamente completamente diferente de x86 y requiere diferentes compiladores y programación completa de bajo nivel. Amd64 lleva el nombre de AMD porque hicieron extensiones de 64 bits al conjunto de instrucciones x86. Sus procesadores siguen siendo x86 pero pueden funcionar con 64 bits y están mucho más relacionados con 32 bits x86 que con itanium.
AndrejaKo
2

Estúpidas formas para Linux:

  1. Para identificar el núcleo, cat / proc / kallsyms, verifique si los símbolos del núcleo tienen 32 bits de ancho o 64 bits de ancho. Entonces sabrá que el núcleo tiene 32 bits o 64 bits.

  2. Para la aplicación de usuario, simplemente ejecute: $ file / bin / ls Para verificar si el comando ls es de 32 bits o de 64 bits, ya que el sistema operativo puede contener aplicaciones de 32 bits y de 64 bits, esto puede no ser incorrecto.

Sam Liao
fuente
2

@paradroid - Gracias por la lluvia de ideas ^^

Ahora uso esto para un programa Java que distribuyo que necesita que los usuarios de Windows utilicen javac. Este script comprueba su arquitectura y abre la descarga a la versión adecuada de JDK en su navegador predeterminado ...

@echo off

Title Dragon's JDK Downloader - Runedev Script Compiler

goto menu
:menu
echo.
echo What would you like to do?
echo.
echo 1. Download JDK?
echo 2. Compile Scripts?
echo 3. Quit
echo.

:choice
set /P C=1,2,3?
if "%C%"=="3" goto quit
if "%C%"=="2" goto compile
if "%C%"=="1" goto download
goto choice

:download
if %PROCESSOR_ARCHITECTURE% == x86 (
goto :x86
) else (
goto :x64
)

:x86
START http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u23-windows-i586.exe?BundledLineItemUUID=q9.J_hCupJ8AAAEsXThZDfyg&OrderID=zHCJ_hCujC0AAAEsUjhZDfyg&ProductID=_omJ_hCwMp4AAAEsQIMcKluK&FileName=/jdk-6u23-windows-i586.exe
goto :eof

:x64
START http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u23-windows-x64.exe?BundledLineItemUUID=CMyJ_hCu.vEAAAEsWu9ZDfyf&OrderID=RZ.J_hCuAVkAAAEsUO9ZDfyf&ProductID=ZUuJ_hCwEmwAAAEsOoMcKluK&FileName=/jdk-6u23-windows-x64.exe
goto :eof

:compile
SET cc=javac
SET cflags=
SET scripts=Scripts
SET scriptspre=%scripts%\Precompiled
SET jarpathfile=Settings\path.txt

IF NOT EXIST "%jarpathfile%" (
   ECHO Path file does not exist. Please run Runedev and try again.
   GOTO menu
)

FOR /F "delims=" %%G IN (%jarpathfile%) DO SET jarpath=%%G

CALL FindJDK.bat

IF NOT EXIST %scripts%\*.java (
   ECHO No .java script source files found.
   GOTO menu
)

ECHO Compiling scripts
ECHO. > "%scripts%\.class"
DEL /F /Q "%scripts%\*.class" > NUL
"%cc%" %cflags% -cp "%jarpath%" %scripts%\*.java

:end
PAUSE
EXIT

:quit
exit
:end
Continuar
fuente