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

9

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

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

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

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

Что я имею в виду - какой самый лучший и распространенный способ определить, является ли ОС 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? uname -p работает, но я не понимаю i386
Сагар Р. Котари
1
Имейте в виду, что в OSX, даже если у вас процессор x86_64, (некоторые из них) ядро ​​может работать в 32-битном режиме. Это верно для MacBook начала 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
Paradroid
источник
именно то, что мне нужно
Петр Кула
3

Под виндой:

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
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
Дракон
источник