Здравствуйте!
Какой флаг процессора указывыает на его архитектуру?
Есть два процессора Intel, для одного lscpu выводит i686, для другого x86_64.
Все флаги 32-разрядного есть и у 64-разрядного.
Ниже приведены флаги 64-разрядного, отсутствующие у 32-разрядного.
[console]
arat
ept
nonstop_tsc
nx
popcnt
rdtscp
rep_good
sep
sse4_1
sse4_2
syscall
vpid
xtopology
[/console]
И какой из них указывает на 64-разрядность?
Пётр.
cpuinfo
Никакой.
Сделай cat /proc/cpuinfo
И смотри наличие флага lm
Это флаг long mode, если он есть, то процессор поддерживает 64-бита.
Так же это можно посмотреть в выводе inxi -Cx
Никакой.
Тогда на основании чего lscpu определяет архитектуру?
Пётр.
Сделай cat /proc/cpuinfo
И смотри наличие флага lm
Это флаг long mode, если он есть, то процессор поддерживает 64-бита.
lm есть у обоих, оба подерживают 64-разрядные операции.
Пётр.
Покажи вывод lscpu для обоих процессоров.
Возможно показывается архитектура текущей операционной системы, а не возможности процессора.
На компьютере, на котором "uname -m" выводит i686, действительно установлена 32-разрядная система,
а на другом - 64-разрядная.
Вывод lscpu для 32-разрядной:
[console]
Architecture: i686
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 1
Core(s) per socket: 4
CPU socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 15
Stepping: 11
CPU MHz: 1600.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
[/console]
Вывод для 64-разрядной:
[console]
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 3333.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 4096K
[/console]
Пётр.
Вот видишь - оба процессора 64-битные, а Architecture указывает лишь на разрядность операционной системы.
Вот видишь - оба процессора 64-битные, а Architecture указывает лишь на разрядность операционной системы.
Хорошо, но я думал, что должен быть ещё один флаг, кроме lm, указывающий на 64-разрядность.
Пётр.
Зачем? Достаточно одного флага.
Зачем? Достаточно одного флага.
Да, я, наверное, что-то перепутал. Благодарю за разъяснения.
Пётр.
на самом деле, amd64 полностью совместима с IA-32. И также полностью совместима с IA-16. И кроме того, частично совместима с IA-8(i8080). Потому на любой CPU amd64 можно установить любую 64х, 32х, и даже 16и битную операционную систему. И они даже будут работать, как и программы (единственная проблема заключается в том, что 64х битная ОС ждёт от программы обращения к 64х битным библиотекам, потому для запуска 32х битного кода необходимо и достаточно дополнительно установить 32х битные библиотеки).