Вы видите, является ли ЦП 64-разрядным, 32-разрядным, или способным к обоим путем проверки flags
строка в /proc/cpuinfo
. Необходимо знать возможные флаги на семействе архитектуры. Например, на i386/amd64 платформах, lm
флаг определяет amd64-способные центральные процессоры (центральные процессоры, которые не имеют того флага, i386-только).
grep -q '^flags\s*:.*\blm\b' /proc/cpuinfo # Assuming a PC
Вы видите, является ли ядро 32-разрядным или 64-разрядным путем запросов архитектуры с uname -m
. Например, i[3456]86
являются 32-разрядными в то время как x86_64
является 64-разрядным. Обратите внимание, что на нескольких архитектуре, 64-разрядное ядро может запустить 32-разрядные программы пространства пользователя, поэтому даже если uname -m
показывает 64-разрядное ядро, нет никакой гарантии, что 64-разрядные библиотеки будут доступны.
[ "$(uname -m)" = "x86_64" ] # Assuming a PC
Отметьте также это uname -m
может возвратить “виртуализированное” значение. Например, в соответствии с Linux, если Вы работаете setarch i386 bash
в amd64 системе, и Вы работаете uname -m
от того удара Вы будете видеть uname -m
создание отчетов i386
. Это эффективно позволяет Вам притвориться, что Вы находитесь в “32-разрядной системе” даже при том, что ядро является 64-разрядным, например, для компиляции 32-разрядных программ, не настраивая кросс-компиляцию.
Вы видите то, что доступно в пространстве пользователя путем запросов поддержки LSB с lsb_release
команда. Более точно, lsb_release -s
печать a :
- разделенный список поддерживавших функций LSB. Каждая функция имеет форму module-version-architecture
. Например, доступность библиотеки ix86 C обозначается core-2.0-ia32
, в то время как core-2.0-amd64
аналог для amd64. Не каждое распределение объявляет все доступные модули LSB, хотя, таким образом, больше может быть доступным, чем обнаруживаемо таким образом.
Можно узнать предпочтительный размер слова для разработки (предполагающий, что компилятор C доступен) путем компиляции программы C с 5 строками, которая печатает sizeof(void*)
или sizeof(size_t)
.
Тип:
uname -a
Если Вы добираетесь x86_64 GNU/Linux
Вы выполняете ядро на 64 бита. Если Вы получаете что-то подобное i386/i486/i586/i686
Вы по всей вероятности выполняете ядро на 32 бита