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