Что требуется для запуска 64-разрядного программного обеспечения пользователя на 32-разрядном ядре?

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

dpkg --info yourfile.deb | grep Version
9
13.11.2018, 19:16
2 ответа

Запуск 64 -битных приложений требует некоторой поддержки со стороны ядра :ядро ​​должно по крайней мере настроить таблицы страниц, таблицы прерываний и т.д., необходимые для поддержки выполнения 64 -битного кода на ЦП, и ему необходимо сохранять полный 64-битный -контекст при переключении между приложениями (и из приложений в ядро ​​и обратно ). Таким образом, чисто 32 -битное ядро ​​не может поддерживать 64 -битное пользовательское пространство.

Однако ядро ​​может выполнять 32 -битный код в пространстве ядра, поддерживая при этом 64 -битный код в пользовательском пространстве. Это включает в себя обработку, аналогичную поддержке, необходимой для запуска 32 -битных приложений с 64 -битным ядром :, по сути, ядро ​​должно поддерживать 64 -битные интерфейсы, ожидаемые приложениями. Например, он должен предоставить какой-то механизм для 64-битного кода -для обращения к ядру и сохранения значения параметров (в обоих направлениях ).

Тогда возникает вопрос, стоит ли оно того. На Mac и некоторых других системах можно сделать вывод, поскольку поддержка 32-битного кода ядра -означает, что всем драйверам не нужно переключаться одновременно. В Linux модель разработки отличается :все, что находится в ядре, переносится по мере необходимости, когда вносятся большие изменения, и все, что вне ядра, на самом деле не поддерживается разработчиками ядра. Поддержка 32 -битного пользовательского пространства с 64 -битным ядром, безусловно, полезна и стоит затраченных усилий (, по крайней мере, так было, когда была добавлена ​​поддержка x86 -64 ), я не уверен, что есть случай сделать для 64 -бит на 32 -бит...

16
27.01.2020, 20:05

Snow Leopard мог запускать 64-битные двоичные файлы на 64-битном процессоре Intel.

Он также мог загружаться с 64-битным ядром, когда ваш efi уже был 64-битным (моя производственная партия Macbook «переходная -модель» pro уже была такой машиной ).

Эмуляция не использовалась, вы просто платили меньше за производительность при загрузке в 32-битном режиме.

В чистых 32 -битных процессорах вы не сможете этого сделать, так как они понятия не имеют, как интерпретировать 64-битный код. Если вы не эмулируете с помощью программного обеспечения, что было бы слишком медленным для такого класса традиционно маломощных встраиваемых машин.

3
27.01.2020, 20:05

Теги

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