Как проверить, является ли моя ОС 64-битной или 32-битной?

27953
Sagar R. Kothari

Как лучше всего определить, является ли моя ОС 64-битной или 32-битной?

Предположим, что я непосредственно на какой-то ОС, и я собираюсь установить программное обеспечение на нем. Но как определить, является ли ОС 32-битной или 64-битной,

ОС может быть чем угодно, например

  • Windows XP
  • перспектива
  • Windows 7
  • ос х леопард
  • ос х снежный барс
  • Красная шляпа Линукс

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

Заранее спасибо за то, что поделились своими знаниями. Сахар.

10
Но как насчет OSX? Sagar R. Kothari 13 лет назад 0

5 ответов на вопрос

7
paradroid

Если бы вы выполняли какие-либо действия с использованием сценариев 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 
только то, что мне нужно ppumkin 12 лет назад 0
6
Maciej Kucharz

Во многих 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-битное)

Или просто "uname -p", который возвращает результаты, такие как i386, x86_64, amd64 :) Janne Pikkarainen 14 лет назад 1
что такое i386? uname -p работает но я не понимаю i386 Sagar R. Kothari 14 лет назад 0
Имейте в виду, что в OSX, даже если у вас процессор x86_64, (некоторые из них) ядро ​​может работать в 32-битном режиме. Это верно для MacBook начала 4,1 (например). trolle3000 14 лет назад 1
@sugar, i386 - это 32-битная архитектура процессора, а x86_64 - это 64-битная архитектура. trolle3000 14 лет назад 0
@sugar вы также можете увидеть в некоторых местах i486, i586 или i686, они также 32-битные, но содержат больше инструкций. AndrejaKo 14 лет назад 1
почему ты забываешь про винду ..? ppumkin 12 лет назад 0
3
peter

Под виндой:

GUI Way

  1. Нажмите Win + R, чтобы открыть диалог Выполнить ...
  2. Введите winmsd
  3. Ищите строку Процессор или Тип системы

Если они начинаются с x86, у вас есть 32-битная, в противном случае у вас есть 64-битная

Использование cmd.exe
Введите 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, чем с itanium. AndrejaKo 14 лет назад 0
2
Sam Liao

Глупые пути для Linux:

  1. Чтобы идентифицировать ядро, cat / proc / kallsyms, проверьте, имеют ли символы для ядра ширину 32 бита или ширину 64 бита. Тогда вы будете знать, что ядро ​​32-битное или 64-битное.

  2. Для пользовательского приложения просто запустите: $ file / bin / ls Чтобы проверить, является ли команда ls 32-битной или 64-битной, поскольку ОС может содержать как 32-битные, так и 64-битные приложения, это может быть не так.

2
Dragon

@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 

Похожие вопросы