Ответ на вопрос в заголовке находится в начале вывода:
ELF 64-битный исполняемый LSB, x86-64
ELF - это исполняемый и линкованный формат, двоичный формат исполняемых файлов, наиболее часто используемый в Linux.
x86-64 - это архитектура двоичного кода, 64-битная версия набора команд x86, первоначально представленная AMD. По независящим от меня причинам Microsoft называет его "x64", но это то же самое.
Если вам нужно знать архитектуру самого ядра, вы можете использовать uname -mpi
. Например, в моей системе это печатает:
x86_64 неизвестно неизвестно
это означает, что я использую ядро x86-64.
Если вас интересует сам процессор, посмотрите в /proc/cpuinfo
информацию о процессорах, обнаруженных ядром Linux.
32-битный исполняемый файл 80x86 идентифицируется file
как, например:
ELF 32-битный исполняемый LSB, Intel 80386, версия 1 (SYSV), динамически связанный (использует разделяемые библиотеки), для GNU/Linux 2.6.8, раздетый
это говорит нам о том, что это 32-битный исполняемый файл, использующий набор инструкций Intel 80386 (возможно, с расширениями).
Обратите внимание, что это не так просто, как 32-битные и 64-битные архитектуры. Например, ядро Linux поддерживает 32-разрядные архитектуры, такие как Intel 80386, AVR32, S/390 и Unicore32. Что касается 64-битной стороны, Linux можно использовать на PA-RISC, x86-64, Itanium и Alpha, среди других. Однако не все дистрибутивы предоставляют двоичные файлы для всех архитектур (и я сомневаюсь, что есть какие-либо дистрибутивы, которые одинаково нацелены на все поддерживаемые архитектуры ЦП). Поэтому, если вы хотите знать, будет ли данный двоичный файл выполняться в данной системе, вам нужно рассмотреть архитектуру, а не собственный размер слова ЦП.