Архитектура - 32-битная обработка 64-битных инструкций

tomasz@tomasz-lenovo-ideapad-Y530:~$ lscpu
Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              6
CPU MHz:               2000.000
BogoMIPS:              4000.12
Cache L1d:             32K
Cache L1i:             32K
Cache L2:              3072K

Я вижу, что моя архитектура 32-битная (i686). Но операционные режимы процессора являются 32-разрядными и 64-разрядными. Вопрос в том, почему? Как обрабатывается, что 32-разрядный процессор выполняет 64-разрядные операции? Я думаю, что это намного медленнее, чем родные 32-битные операции. Это встроенный процессор (для эмуляции 64-битной версии) или программно-зависимый? Когда имеет смысл запускать 64-разрядные операции для 32-разрядного процессора?

2
задан 19 August 2014 в 16:38

3 ответа

lscpu сообщает вам, что ваша архитектура - i686 (32-разрядный процессор Intel), и что ваш процессор поддерживает как 32-разрядный, так и 64-разрядный режимы работы. Вы не сможете установить x64-приложения, так как они созданы специально для x64-архитектур.

Ваш конкретный процессор может работать со встроенными пакетами i386 или i686. Есть несколько способов проверить вашу архитектуру и Настройки ОС.

Попробуйте uname -m. Он покажет i686, что означает, что ваш процессор поддерживает 32 бита.

0
ответ дан 19 August 2014 в 16:38

Используйте команду lscpu, чтобы проверить, поддерживает ли ваш компьютер несколько режимов работы ЦП (обычно 32-битный или 64-битный режим).

Из терминала запустите:

lscpu | grep op-mode

Пример вывода на 64-разрядный процессор:

user@computer1:~$ lscpu | grep op-mode
CPU op-mode(s): 32-bit, 64-bit

Пример вывода на 32-разрядный процессор:

user@computer2$ lscpu | grep op-mode
CPU op-mode(s): 32-bit

В первом примере на компьютере может быть установлена ​​либо 32-битная Ubuntu, либо 64-битная Ubuntu. Во втором примере на компьютере может быть установлена ​​только 32-битная версия Ubuntu. На данном компьютере может быть установлена ​​либо 32-разрядная версия Ubuntu, либо 64-разрядная Ubuntu.

32-разрядное приложение будет работать в 32-разрядной или 64-разрядной операционной системе. 64-разрядная ОС будет работать только на 64-разрядном процессоре. 64-разрядное приложение будет работать в 64-разрядной ОС, и, выполнив некоторые тяжелые работы, можно также запустить некоторые 64-разрядные приложения в 32-разрядной ОС. Под «тяжелой работой» я подразумеваю, что вам нужно будет установить 64-битное ядро ​​ 1 , а также делать другие неприятные вещи, в зависимости от того, какое 64-битное приложение (я) Вы пытаетесь установить. Установка 32-битного приложения в 64-битной ОС, напротив, очень проста.

enter image description here
⠀ Летний ветер

1 https://unix.stackexchange.com/questions/134391/64-bit-kernel-but-all-32-bit-elf-executable-running-processes-how-is-this/134394 # 134394

0
ответ дан 19 August 2014 в 16:38

Это означает:

Architecture: i686              # <-- your kernel is 32 bit (you are using 32 bit Ubuntu)
CPU op-mode(s): 32-bit, 64-bit  # <-- your cpu can handle 32 or 64 bit instructions
0
ответ дан 19 August 2014 в 16:38

Другие вопросы по тегам:

Похожие вопросы: