uname -m
дает i686 и uname -m
вывод i686 i386 на машине Red Hat Enterprise Linux Server версии 5.4 (Tikanga). Мне нужно установить Oracle Database 10g Release 2 на эту машину. Итак, как я могу решить, является ли архитектура ядра 32-битной или 64-битной?
linux
command-line
x86
cpu-architecture
user2914
источник
источник
uname -m
аuname -m
?uname -m
показывает i? 86, у вас есть 32-битная система.getconf WORD_BIT
.getconf WORD_BIT
возвращает 32 на моем 64-битном UbuntuОтветы:
i386 и i686 являются 32-разрядными.
x86_64 является 64-битным
пример для 64 бит:
РЕДАКТИРОВАТЬ:
видите ли мой Linux ARM 32 или 64 бит? для ARM
источник
uname -m
. Это покажет только архитектуру.Это просто! Используйте
arch
команду.источник
arch
возвращаетсяi386
, ноuname -a
показываетx86_64
.@behrooz это правильно. К сожалению,
uname
требует, чтобы вы знали архитектуры. На самом деле, я искал список архитектур и нашел эту статью, которая отвечает на ваш вопрос. В отношенииuname -m
:Чтобы определить, способен ли аппарат работать на 64-битном ядре
Ищите следующее в выходных данных (все флаги, полученные из этого stackoverflow, отвечают на один и тот же вопрос)
lm
флаг означает процессор в длинном режиме - 64-битный процессорtm
флаг означает защищенный режим - 32-битный процессорrm
флаг означает реальный режим - 16-битный процессористочник
(РЕДАКТИРОВАТЬ: этот ответ НЕПРАВИЛЬНО. Благодаря комментарию @ Lizardx)
В Bash используется целочисленное переполнение:
Это гораздо эффективнее, чем запуск другого процесса или открытие файлов.
источник
((
является Bashism и не определяется POSIX mywiki.wooledge.org/Bashism#Conditionals((1<<32)-1)
Для Debian :
На моем ПК
Моя Малина Пи 2
источник
checkinstall
, thx!Самый простой способ - запустить:
который выведет 64 или 32 в зависимости от того, 32 или 64 бита.
например:
источник
getconf LONG_BIT
будет напечатано,32
хотя вы используете 64-битное ядро.использовать syscap из проекта Formake
syscap позволяет исследовать многие системные свойства и тестировать зависимости. Это портативный сценарий оболочки.
Получить архитектуру процессора:
Получить имя и версию ядра:
источник
Другой способ - проверить архитектуру, для которой был скомпилирован системный файл, например
источник
Или вы можете использовать способ внутренней команды uname , если хотите реализовать что-то самостоятельно:
источник
Вот еще один метод использования
uname
.От
man uname
:... -i, --hardware-platform print the hardware platform or "unknown" ...
# uname -i x86_64
#
источник
Если вы ищете простую однострочную версию, это самое надежное решение, которое я нашел, которое возвращает 64 или 32 . Не важно, используете ли вы ARM или нет, и он должен работать в любой системе, использующей bash или sh .
Осторожно, это предполагает, что система является либо 32-битной, либо 64-битной. См. Мое объяснение ниже, если вам нужно обнаружить архитектуру 8-16 или какой-то другой бит.
Что здесь происходит?
Логика очень проста, и все сводится к тому, как компьютеры хранят целые числа со знаком. 32-битная архитектура имеет только 32 бита, которые она может использовать для хранения целых чисел со знаком, в то время как 64-битная архитектура имеет 64 бита! Другими словами, множество целых чисел, которые могут быть сохранены, конечно. Половина этого набора представляет отрицательные числа, а половина представляет положительные числа. Целое число со знаком, равное -1, представляется как наибольшее число, которое может быть сохранено в заданном количестве битов для этой архитектуры. В 32-разрядной системе -1 может быть представлено шестнадцатеричным значением 0xFFFFFFFF (которое составляет 32 двоичных разряда, все равны 1). В 64-битной системе 0xFFFFFFFF преобразуется в 4 294 967 295, основание 10, а 0xFFFFFFFFFFFFFFFF - представление для -1). Вы можете видеть, как это будет легко масштабироваться для систем, которые также являются 8- или 16-битными, что будет равно -1 при 0xFF и 0xFFFF,
источник