จะตรวจสอบได้อย่างไรว่าระบบปฏิบัติการของฉันเป็นแบบ 64 บิตหรือ 32 บิต


9

วิธีที่ดีที่สุดในการพิจารณาว่าระบบปฏิบัติการของฉันคือ 64- บิตหรือ 32- บิต?

สมมติว่าฉันโดยตรงในบางระบบปฏิบัติการ & ฉันจะติดตั้งซอฟต์แวร์บน แต่วิธีการตรวจสอบว่าระบบปฏิบัติการเป็น 32 บิตหรือ 64 บิต

ระบบปฏิบัติการอาจเป็นอะไรก็ได้เช่น

  • windows xp
  • ทิวทัศน์
  • วินโดว 7
  • os x leopard
  • ระบบปฏิบัติการ x เสือดาวหิมะ
  • ลินุกซ์หมวกสีแดง

สิ่งที่ฉันหมายถึงคือ - วิธีที่ดีที่สุด & วิธีทั่วไปในการพิจารณาว่าระบบปฏิบัติการเป็น 64- บิตหรือ 32- บิตคืออะไร? ฉันหมายถึงฉันกำลังพูดโดยทั่วไป ฉันไม่ได้ติดตั้งระบบปฏิบัติการบนเครื่องของใครบางคน & ถ้าฉันบอกให้คุณทราบว่าระบบปฏิบัติการนั้นเป็น 64 - 32 หรือไม่ แล้วคุณจะทำอย่างไร

ขอบคุณล่วงหน้าสำหรับการแบ่งปันความรู้ของคุณ น้ำตาล.


แต่แล้ว OSX ล่ะ
Sagar R. Kothari

คำตอบ:


5

ในระบบ Unix ที่คุณสามารถพิมพ์:

uname -a

สำหรับ FreeBSD ดูเหมือนว่า:

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 หมายความว่าเคอร์เนลนี้เป็น 64- บิต)

สำหรับ 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 หมายความว่าเคอร์เนลนี้เป็น 32 บิต)

สำหรับ 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 หมายความว่าเคอร์เนลนี้เป็น 64- บิต)


1
หรือเพียงแค่ "uname -p" ซึ่งส่งคืนผลลัพธ์เช่น i386, x86_64, amd64 :)
Janne Pikkarainen

i386 คืออะไร uname -p ใช้งานได้ แต่ฉันไม่เข้าใจ i386
Sagar R. Kothari

1
โปรดทราบว่าใน OSX แม้ว่าคุณจะมีซีพียู x86_64 (บางส่วน) เคอร์เนลอาจทำงานใน 32 บิต นี่เป็นความจริงสำหรับ MacBook 2008 ต้น (4,1) เป็นต้น
trolle3000

@sugar, i386 เป็นสถาปัตยกรรม CPU 32 บิตและ x86_64 เป็นสถาปัตยกรรม 64 บิต
trolle3000

1
@sugar คุณอาจเห็นในบางสถานที่ i486, i586 หรือ i686 เหล่านี้เป็น 32 บิต แต่มีคำแนะนำเพิ่มเติม
AndrejaKo

7

หากคุณต้องดำเนินการใด ๆ โดยใช้การเขียนสคริปต์ CMD ใน Windows คุณสามารถเริ่มไฟล์แบตช์ดังนี้:

@echo off

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

:x86
start "foo.exe"
goto :eof

:x64
start "bar.exe"
goto :eof

สิ่งที่ฉันต้องการ
Piotr Kula

3

ภายใต้ Windows:

วิธี GUI

  1. กด Win + R เพื่อเปิดกล่องโต้ตอบเรียกใช้ ...
  2. ป้อน winmsd
  3. ค้นหาตัวประมวลผลแถวหรือชนิดของระบบ

หากพวกเขาเริ่มต้นด้วย x86 คุณมี 32 บิตมิฉะนั้นคุณจะมี 64- บิต

การใช้ cmd.exe ให้
ป้อนSET PROCESSOR_ARCHITECTURE
x86 หมายถึง 32 บิตมิฉะนั้นจะเป็น 64- บิต

การใช้ Powershell
Enter $env:PROCESSOR_ARCHITECTURE
Meaning เหมือนกับการใช้ cmd.exe

ระวัง
มีสถาปัตยกรรม 64 บิตสองประเภท
หนึ่งคือ AMD64 สำหรับ x64 อีกอันคือ ia64 สำหรับ Itanium (ไม่แน่ใจว่าค่านี้เป็นแบบนั้นไม่เคยทำงานกับมันเลย)


ia64 สำหรับโปรเซสเซอร์ Itanium ซึ่งเป็นสถาปัตยกรรมที่แตกต่างอย่างสิ้นเชิงและไม่ได้เป็นส่วนหนึ่งของตระกูล x86 พวกเขาสามารถเรียกใช้โปรแกรม x86 ได้ แต่โหมด 64 บิตนั้นแตกต่างอย่างสิ้นเชิงจาก x86 และต้องการคอมไพเลอร์และการเขียนโปรแกรมระดับต่ำทั้งหมด Amd64 นั้นตั้งชื่อตาม AMD เพราะพวกเขาทำส่วนขยาย 64 บิตเป็นชุดคำสั่ง x86 โปรเซสเซอร์ของพวกเขายังคงเป็น x86 แต่สามารถทำงานกับ 64 บิตและเกี่ยวข้องกับ 32 บิต x86 มากกว่า itanium
AndrejaKo

2

วิธีโง่สำหรับ Linux:

  1. ในการระบุเคอร์เนล cat / proc / kallsyms ตรวจสอบว่าสัญลักษณ์สำหรับเคอร์เนลกว้าง 32 บิตหรือกว้าง 64 บิต จากนั้นคุณจะรู้ว่าเคอร์เนลคือ 32 บิตหรือ 64 บิต

  2. สำหรับแอปพลิเคชันผู้ใช้เพียงรัน: $ file / bin / ls เพื่อตรวจสอบว่าคำสั่ง ls เป็น 32 บิตหรือ 64 บิตเนื่องจากระบบปฏิบัติการอาจมีแอปพลิเคชันทั้ง 32 บิตและ 64 บิตนี่อาจไม่ผิด


2

@paradroid - ขอบคุณสำหรับการระดมสมอง ^^

ตอนนี้ฉันใช้สิ่งนี้สำหรับโปรแกรม Java ฉันแจกจ่ายซึ่งต้องการให้ผู้ใช้ Windows ใช้งาน javac สคริปต์นี้ตรวจสอบสถาปัตยกรรมของพวกเขาและเปิดการดาวน์โหลดเป็นรุ่นที่เหมาะสมของ JDK ในเบราว์เซอร์เริ่มต้น ...

@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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.