Як перевірити, чи моя ОС 64-бітна чи 32-бітна?


9

Який найкращий спосіб визначити, чи моя ОС 64-бітна чи 32-бітна?

Припустимо, що я безпосередньо на деяких ОС & я збираюся встановити на нього програмне забезпечення. Але як визначити, 32-бітна чи 64-бітна ОС,

ОС може бути чим завгодно

  • windows xp
  • вид
  • windows 7
  • os x leopard
  • os x сніговий леопард
  • Червона шапочка Linux

Що я маю на увазі - це найкращий та поширений спосіб визначити, чи ОС 64-бітний чи 32-розрядний? Я маю на увазі, я кажу загалом. Я не встановив ОС на чиїйсь машині, і якщо я скажу вам визначити його базу ОС - 64 чи 32? то що б ти робив?

Заздалегідь дякую, що поділилися своїми знаннями. Цукор.


А як щодо OSX?
Сагар Р. Котарі

Відповіді:


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? unme -p працює, але я не розумію i386
Сагар Р. Котарі,

1
Майте на увазі, що в OSX, навіть якщо у вас процесор x86_64, (деякі частини) ядро ​​може працювати в 32-бітному. Це стосується, наприклад, MacBook на початку 2008 року (4,1).
trolle3000

@sugar, i386 - це 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

саме те, що мені було потрібно
Пьотр Кула

3

У Windows:

Шлях GUI

  1. Натисніть Win + R, щоб відкрити діалогове вікно Run ...
  2. Введіть winmsd
  3. Шукайте процесор рядка чи тип системи

Якщо вони починаються з x86, у вас 32-розрядні, інакше у вас 64-розрядні

Використання cmd.exe
Enter SET PROCESSOR_ARCHITECTURE
x86 означає 32-розрядний, інакше це 64-розрядний

Використання значення Powershell
Enter $env:PROCESSOR_ARCHITECTURE
означає те саме, що і з використанням cmd.exe

Остерігайтеся
Є два різних типи 64-бітових архітектур.
Один - AMD64 для x64, інший - ia64 для Itanium (не впевнений, що це значення саме таке, ніколи не працював ні з одним із них)


ia64 призначений для процесорів Itanium, які мають зовсім іншу архітектуру і не входять до сімейства x86. Вони можуть запускати програми x86, але їх 64-бітний режим принципово відрізняється від x86 і вимагає різних компіляторів і цілого програмування низького рівня. Amd64 названий на честь AMD, оскільки вони зробили розширення на 64 біт до набору інструкцій x86. Їх процесори все ще є x86, але вони можуть працювати з 64 бітами, і вони набагато більше пов'язані з 32-бітним x86, ніж ітанієм.
AndrejaKo

2

Дурні способи для Linux:

  1. Щоб ідентифікувати ядро, cat / proc / kallsyms, перевірте, чи символи для ядра є 32-бітними або 64-бітовими. Тоді ви дізнаєтесь, що ядро ​​становить 32 біти або 64 біт.

  2. Для користувацького додатку просто запустіть: $ file / bin / ls Щоб перевірити, чи є команда ls 32 біт або 64 біт, оскільки os може містити як 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.