Jak sprawdzić, czy mój system operacyjny jest 64-bitowy czy 32-bitowy?

9

Jaki jest najlepszy sposób ustalenia, czy mój system operacyjny jest 64-bitowy czy 32-bitowy?

Załóżmy, że bezpośrednio w niektórych systemach operacyjnych i zamierzam zainstalować na nim oprogramowanie. Ale jak ustalić, czy system operacyjny jest 32-bitowy czy 64-bitowy,

System operacyjny może być dowolny

  • Windows XP
  • widok
  • System Windows 7
  • os x lampart
  • os x snow leopard
  • Czerwony kapelusz linux

Chodzi mi o to - jaki jest najlepszy i najczęstszy sposób ustalenia, czy OS jest 64-bitowy czy 32-bitowy? Mówię ogólnie. Nie zainstalowałem systemu operacyjnego na czyjejś maszynie, a jeśli powiem, żebyś określił jego bazę systemu operacyjnego - 64 czy 32? co byś zrobił?

Z góry dziękuję za podzielenie się swoją wiedzą. Cukier.

Sagar R. Kothari
źródło
Ale co z OSX?
Sagar R. Kothari,

Odpowiedzi:

5

W wielu systemach uniksowych możesz wpisać:

uname -a

W przypadku FreeBSD wygląda to następująco:

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 oznacza, że ​​to jądro jest 64-bitowe)

W systemie 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 oznacza, że ​​to jądro jest 32-bitowe)

W systemie 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 oznacza, że ​​to jądro jest 64-bitowe)

Maciej Kucharz
źródło
1
Lub po prostu „uname -p”, który zwraca wyniki takie jak i386, x86_64, amd64 :)
Janne Pikkarainen
co to jest i386? uname -p działa, ale nie rozumiem i386
Sagar R. Kothari,
1
Pamiętaj, że w OSX, nawet jeśli masz procesor x86_64, (niektóre) jądro może działać w wersji 32-bitowej. Dotyczy to na przykład MacBooka z początku 2008 r. (4,1).
trolle3000,
@sugar, i386 to 32-bitowa architektura procesora, a x86_64 to architektura 64-bitowa.
trolle3000,
1
@sugar możesz również zobaczyć w niektórych miejscach i486, i586 lub i686, są one również 32-bitowe, ale zawierają więcej instrukcji.
AndrejaKo,
7

Jeśli miałbyś wykonywać jakieś czynności przy użyciu skryptów CMD w systemie Windows, możesz uruchomić plik wsadowy mniej więcej tak:

@echo off

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

:x86
start "foo.exe"
goto :eof

:x64
start "bar.exe"
goto :eof
paradroid
źródło
właśnie tego potrzebowałem
Piotr Kula
3

W systemie Windows:

Sposób GUI

  1. Naciśnij Win + R, aby otworzyć okno dialogowe Uruchom ...
  2. Wpisz winmsd
  3. Poszukaj procesora wiersza lub typu systemu

Jeśli zaczynają się od x86, masz wersję 32-bitową, w przeciwnym razie masz wersję 64-bitową

Za pomocą cmd.exe
Enter SET PROCESSOR_ARCHITECTURE
x86 oznacza 32-bit, w przeciwnym razie jest to 64-bit

Używanie programu Powershell
Enter $env:PROCESSOR_ARCHITECTURE
Znaczenie jest takie samo, jak przy użyciu cmd.exe

Uwaga
Istnieją dwa różne rodzaje architektury 64-bitowej.
Jeden to AMD64 dla x64, drugi to ia64 dla Itanium (nie jestem pewien, czy ta wartość jest dokładnie taka, nigdy nie działał z żadnym z nich)

Piotr
źródło
ia64 jest przeznaczony dla procesorów Itanium, które mają zupełnie inną architekturę i nie należą do rodziny x86. Mogą uruchamiać programy x86, ale ich tryb 64-bitowy jest zasadniczo zupełnie inny niż x86 i wymaga różnych kompilatorów i całego programowania niskiego poziomu. Amd64 nosi nazwę AMD, ponieważ stworzyli 64-bitowe rozszerzenia zestawu instrukcji x86. Ich procesory są nadal x86, ale mogą pracować z 64-bitowymi i są one znacznie bardziej związane z 32-bitowym x86 niż itanium.
AndrejaKo,
2

Głupie sposoby na Linuksa:

  1. Aby zidentyfikować jądro, cat / proc / kallsyms, sprawdź, czy symbole dla jądra mają szerokość 32 bitów, czy szerokość 64 bitów. Wtedy będziesz wiedział, że jądro ma 32 bity lub 64 bity.

  2. W przypadku aplikacji użytkownika po prostu uruchom: $ file / bin / ls Aby sprawdzić, czy komenda ls ma 32 bity, czy 64 bity, ponieważ system operacyjny może zawierać zarówno aplikacje 32-bitowe, jak i 64-bitowe, może nie być źle.

Sam Liao
źródło
2

@paradroid - Dzięki za burzę mózgów ^^

Teraz używam tego do rozpowszechnianego przeze mnie programu Java, który potrzebuje użytkowników systemu Windows do korzystania z javaca. Ten skrypt sprawdza ich architekturę i otwiera pobieranie do odpowiedniej wersji JDK w domyślnej przeglądarce ...

@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
smok
źródło