Como verificar se meu sistema operacional é de 64 ou 32 bits?

9

Qual é a melhor maneira de determinar se meu sistema operacional é de 64 ou 32 bits?

Suponha que, eu diretamente em alguns sistemas operacionais e eu vou instalar um software nele. Mas como determinar se o SO é de 32 ou 64 bits,

OS pode ser qualquer coisa, como

  • windows xp
  • vista
  • windows 7
  • os x leopardo
  • os x leopardo da neve
  • Linux chapéu vermelho

O que quero dizer é - qual é a melhor e mais comum maneira de determinar se o sistema operacional é de 64 ou 32 bits? Quero dizer, estou falando em geral. Eu não instalei o SO na máquina de alguém e se eu disser para você determinar sua base de SO - 64 ou 32? então o que você faria?

Agradecemos antecipadamente por compartilhar seu conhecimento. Açúcar.

Sagar R. Kothari
fonte
Mas e o OSX?
Sagar R. Kothari

Respostas:

5

Em muitos sistemas Unix, você pode digitar:

uname -a

Para o FreeBSD, ele se parece com:

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 é 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 kernel é 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 é de 64 bits)

Maciej Kucharz
fonte
11
Ou apenas "-p uname" que retorna resultados como i386, x86_64, amd64 :)
Janne Pikkarainen
o que é i386? -p uname funciona, mas eu não entendo i386
Sagar R. Kothari
11
Lembre-se de que, no OSX, mesmo se você tiver uma CPU x86_64, (algumas) o kernel poderá ser executado em 32 bits. Isso é verdade para o MacBook do início de 2008 (4,1), por exemplo.
precisa saber é o seguinte
@sugar, o i386 é uma arquitetura de CPU de 32 bits e x86_64 é uma arquitetura de 64 bits.
trolle3000
11
@sugar você também pode ver em alguns lugares i486, i586 ou i686, estes também são 32 bits, mas incluem mais instruções.
precisa saber é o seguinte
7

Se você executasse alguma ação usando o script CMD no Windows, poderia iniciar o arquivo em lote da seguinte maneira:

@echo off

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

:x86
start "foo.exe"
goto :eof

:x64
start "bar.exe"
goto :eof
paradroid
fonte
apenas o que eu precisava
Piotr Kula
3

No Windows:

O Caminho da GUI

  1. Pressione Win + R para abrir a caixa de diálogo Executar ...
  2. Digite winmsd
  3. Procure a linha Processador ou Tipo de sistema

Se eles começarem com x86, você possui 32 bits, caso contrário, possui 64 bits.

Usando cmd.exe
Digite SET PROCESSOR_ARCHITECTURE
x86 significa 32 bits, caso contrário, é 64 bits

Usando o PowerShell,
digite o $env:PROCESSOR_ARCHITECTURE
significado é o mesmo que usar o cmd.exe

Cuidado
Existem dois tipos diferentes de arquiteturas de 64 bits.
Um é AMD64 para x64 e o outro é ia64 para Itanium (não tenho certeza se esse valor é exatamente assim, nunca funcionou com nenhum deles)

Pedro
fonte
ia64 é para processadores Itanium que são uma arquitetura completamente diferente e não fazem parte da família x86. Eles podem executar programas x86, mas seu modo de 64 bits é basicamente completamente diferente do x86 e requer diferentes compiladores e programação de baixo nível. Amd64 recebeu o nome da AMD porque criou extensões de 64 bits no conjunto de instruções x86. Seus processadores ainda são x86, mas podem funcionar com 64 bits e estão muito mais relacionados ao x86 de 32 bits do que ao itanium.
AndrejaKo
2

Maneiras estúpidas para Linux:

  1. Para identificar o kernel, cat / proc / kallsyms, verifique se os símbolos do kernel têm 32 bits de largura ou 64 bits de largura. Então você saberá que o kernel tem 32 bits ou 64 bits.

  2. Para o aplicativo do usuário, basta executar: $ file / bin / ls Para verificar se o comando ls é de 32 bits ou 64 bits, já que o sistema operacional pode conter aplicativos de 32 e 64 bits, isso pode não estar errado.

Sam Liao
fonte
2

@paradroid - Obrigado pelo brainstorm ^^

Agora eu uso isso para um programa Java que distribuo, que precisa que os usuários do Windows utilizem o javac. Este script verifica sua arquitetura e abre o download para a versão adequada do JDK no navegador padrão ...

@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
Dragão
fonte