Недавно я установил Virtual Box и был озадачен, почему он не предлагает 64-битных версий ни одной ОС.
Поэтому я посмотрел, что у меня установлено, и нашел три разные команды, чтобы попытаться выяснить, что происходит.
uname -a
Показывает:
Linux kubuntuBox 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Похоже, я установил 64-битную версию Kubuntu.
Вторая найденная мной команда проверяет флаги:
grep flags /proc/cpuinfo
Что выводит следующую строку 8 раз:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
Не совсем уверен, почему он выводится 8 раз, но это так. Странно, что он выводится, lahf_lm
но неlm
Лучшая команда, которую я нашел, — это команда getconf WORD_BIT
, вывод которой 32
ясен как день.
Теперь я в замешательстве — я определенно установил 64-битную версию Kubuntu (14.04) и примерно раз в месяц запускаю dist-ugrades, но ОС, похоже, работает в 32-битном режиме.
Почему это и как это решить? Мне нужно будет переустановить Kubuntu?
решение1
Это просто, на самом деле. Вы успешно выполнили getconf
, так что давайте посмотрим на это. Выполните следующую команду:
file $(which getconf)
Выведется что-то вроде этого:
/usr/bin/getconf: исполняемый файл ELF 64-бит LSB, x86-64, версия 1 (SYSV), динамически скомпонованный, интерпретатор /usr/lib/ld-linux-x86-64.so.2, для GNU/Linux 2.6.32, BuildID[sha1]=e9b5e04a7d7c7552abb2e260d9c17c8ffb4ce2a3, урезанный
...что явно указывает на то, что вы используете 64-битную систему. Иначе вы бы не смогли запускать 64-битные программы, в конце концов.
Вывод uname
также ясно показывает, что это x86_64
ядро.
getconf
просто неверно (или, скорее, не имеет смысла). /proc/cpuinfo
также может быть неверно, то, что там написано, зависит от простого анализатора в ядре.
Он содержит информацию обо всех процессорах в системе, поэтому у вас будет 4 блока на 4-ядерном ЦП. Умножается на 2, если активна технология Hyper-Threading.