Назад | Перейти на главную страницу

Если тип ядра (64/32) не указывает на разрядность вашего дистрибутива, как мне узнать, что я использую?

Если тип ядра (64/32) не указывает на разрядность вашего дистрибутива, как мне узнать, что я использую? Я использую Ubuntu, и, к своему удивлению, я только что узнал, что вы можете использовать 64-битное ядро ​​в 32-битном дистрибутиве Linux ... так как я могу точно сказать, какой тип программного обеспечения я использую, 64-битный или 32 бит?

Просто запустите это в командной строке

getconf LONG_BIT

Он вернет 32 или 64

cat /proc/version
cat /etc/issue
uname -a

в терминале должна отображать полезную информацию, чтобы прояснить, что вы запускаете на той или иной машине.

Я бы сказал, что очень редко у вас будет ядро, которое настроено не синхронно с программным обеспечением дистрибутива в целом, конечно, я никогда не встречал никого, кто настраивал его таким образом, поэтому обычно вы можете ожидать x86_64 чтобы представить 64-битную операционную систему и ядро ​​практически всякий раз, когда вы с этим сталкиваетесь.

Поскольку вы находитесь в ubuntu, для любого заданного программного обеспечения вы можете просто запустить:

apt-cache policy <packagename>

и ищите контрольные признаки, например мои результаты по скайпу:

apt-cache policy skype
skype:
  Installed: 4.2.0.11-0ubuntu0.12.04.1
  Candidate: 4.2.0.11-0ubuntu0.12.04.1
  Version table:
 *** 4.2.0.11-0ubuntu0.12.04.1 0
        500 http://archive.canonical.com/ubuntu/ precise/partner amd64 Packages
        100 /var/lib/dpkg/status

Вы знаете, что с 32-битным ядром все приложения должны быть 32-битными. С 64-битным ядром может быть любое сочетание 32-битных и 64-битных приложений и библиотек. Вы должны проверить приложения, которые вам интересны, чтобы узнать, к какому типу они относятся. Вы можете использовать file команда для проверки разрядности библиотеки или исполняемого файла.

Если вы не можете вспомнить никого из других, а я не могу, то следующий трюк сработает, просто выведите длину указателя на C / C ++:

#include <iostream>
using namespace std;

int main( int argc, char *argv[] ) {
    cout << sizeof( void *) << endl;
    return 0;
}

Это даст «4» для 32-битной ОС (т. Е. 4 байта = 32 бита) и «8» для 64-битной ОС (т. Е. 8 байтов = 64 бита).