Как проверить, является ли моя ОС 64-битной или 32-битной?
Каков наилучший способ определить, является ли моя ОС 64-битной или 32-битной?
Предположим, что я непосредственно на какой-то ОС, и я собираюсь установить программное обеспечение на нем. Но как определить, является ли ОС 32-битной или 64-битной,
ОС может быть чем угодно, например
- Windows XP
- перспектива
- Windows 7
- ос х леопард
- ос х снежный барс
- Красная шляпа Линукс
Я имею в виду, что это лучший и наиболее распространенный способ определить, является ли ОС 64-битной или 32-битной? Я имею в виду, я говорю в целом. Я не установил ОС на чью-то машину, и если я скажу вам определить ее базовую ОС - 64 или 32? тогда что бы вы сделали?
Заранее благодарим за то, что поделились своими знаниями. Сахар.
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-битное)
Если бы вы выполняли какие-либо действия с использованием сценариев 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
Под виндой:
GUI Way
- Нажмите Win+R, чтобы открыть диалог Выполнить...
- Введите winmsd
- Ищите строку Процессор или Тип системы
Если они начинаются с x86, у вас есть 32-битная, в противном случае у вас есть 64-битная
Использование cmd.exe
Войти SET PROCESSOR_ARCHITECTURE
x86 означает 32-битный, иначе он 64-битный
Использование Powershell
Войти $env:PROCESSOR_ARCHITECTURE
Значение такое же, как с использованием cmd.exe
берегись
Существует два разных типа 64-битных архитектур.
Один - AMD64 для x64, другой - ia64 для Itanium (не уверен, что это значение точно такое, никогда не работал ни с одним из них)
Глупые пути для Linux:
Чтобы идентифицировать ядро, cat /proc/kallsyms, проверьте, имеют ли символы для ядра ширину 32 бита или ширину 64 бита. Тогда вы будете знать, что ядро 32-битное или 64-битное.
Для пользовательского приложения просто запустите: $file /bin/ls Чтобы проверить, является ли команда ls 32-битной или 64-битной, поскольку ОС может содержать как 32-битные, так и 64-битные приложения, это может быть не так.
@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