6

Я хотел бы знать, когда мне нужно использовать Pae/NX, а когда нет.

Нужно ли мне всегда или я не могу использовать его на своей виртуальной машине?

2 ответа2

7

Вам понадобится PAE, если вы виртуализируете 32-битную ОС и вам требуется более 4 ГБ памяти.

0

Комментарий @gronostaj и ответ @ajostergaard говорят только о части расширения физического адреса (PAE) в PAE/NX. Они оба превосходны, и у меня есть только пояснение - почему? Я также буду обсуждать часть "NX".


Мой ответ 1

Возможно, более полным ответом, расширяющим ответ @ajostergaard, будет:

Вам понадобится PAE/NX, если вы настраиваете виртуальную 32-битную ОС и:

1) вам нужно более 4 ГБ памяти (RAM)

ИЛИ ЖЕ

2) вам нужно сделать так, чтобы части памяти не могли использоваться для исполняемого кода, например, если у вас есть проблемы с безопасностью, которые включают в себя такие атаки, как описанные на странице NX-битной Википедии,

[C] обнаруживает вредоносные программы разных типов [может захватывать] компьютеры, вставляя их код в область хранения данных другой программы и выполняя собственный код из этого раздела ...

Также, насколько я знаю, вам не понадобится эта опция PAE/NX при настройке любой 64-битной ОС в качестве виртуальной машины. (Обратите внимание, я использовал только процессоры Intel и AMD - PAE/NX может потребоваться с другими процессорами. УБЕДИТЕСЬ, ЧТО ВЫ ПРОВЕРИТЕ!)


Далее я опишу, что означает NX часть PAE/NX и как она связана с проблемами безопасности.

(В основном я искал полный ответ. Google привел меня сюда, но я застрял на части "NX". Я надеюсь, что мои выводы помогут другим.)


Комментарии к PAE

Может быть трудно перейти от первого абзаца на вики-странице PAE к ответу @ ajostergaard. Первый абзац:

В вычислениях расширение физического адреса (PAE), иногда называемое расширением адреса страницы, является функцией управления памятью для архитектуры x86. PAE был впервые представлен Intel в Pentium Pro, а затем AMD - процессором Athlon. Он определяет иерархию таблицы страниц из трех уровней (вместо двух), с записями таблицы по 64 бита каждый вместо 32, что позволяет этим ЦП напрямую обращаться к физическому адресному пространству размером более 4 гигабайт (2 32 байта).

Какие?! Как это помогает нам узнать, стоит ли устанавливать флажок рядом с «Включить PAE/NX»? К счастью, @ajostergaard сказал нам.

Вам понадобится PAE, если вы виртуализируете 32-битную ОС и вам требуется более 4 ГБ памяти.

Итак, если ваша виртуальная ОС имеет 32-битный тип (как в случае, когда вам нужна виртуальная ОС Windows-NT), но у вас есть 16 ГБ ОЗУ (все, что вы хотите использовать), вам нужна опция PAE ,

Зачем? Позвольте мне остановиться на этом. Вам нужно знать, что адрес памяти является меткой для части памяти - обычно для одного байта памяти. 32-битная (4-байтовая) ОС - это та, которая имеет метки, которые могут

ноль (0) - представлен в двоичном виде 32 нулями, представлен в шестнадцатеричном виде 0x 00 00 00 00 -

в

4 294 967 295 - двоичные: 32 единицы, шестнадцатеричные: 0x FF FF FF FF .

Другими словами, у нас чуть меньше 4,3 миллиарда адресов памяти, каждый из которых указывает на один байт информации - на один байт памяти. Дело в следующем: максимальный объем памяти, который может быть адресован 32-битным компьютером (который использует все 32 бита для адресации), составляет 4 ГиБ. 2 Если у вас есть больше места в памяти, это хорошо, но компьютер никогда не сможет найти метку для данных. Другими словами, 32-разрядный компьютер не может использовать более 4 ГБ данных.

Если не вдаваться в подробности ужасных деталей (слишком поздно?), То, что делает PAE, - это вводит некоторые трюки, чтобы можно было обращаться к большим воспоминаниям (у нас могут быть метки для большего количества байтов данных) и, следовательно, эти большие воспоминания могут использоваться.

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

ноль (0) - 64 нуля в двоичном, шестнадцатеричный: 0x0000000000000000 -

в

18 446 744 073 709 551 615 = 18,4 квинтиллиона = 18,4 миллиарда миллиардов - 64 в двоичном, шестнадцатеричный 0xFFFFFFFFFFFFFFFF . У нас есть адреса для 18,4 миллиардов миллиардов байтов данных. Это 18,4 эксабайт = 18 447 петабайт = почти 18,5 миллионов терабайт. Согласно Wolfram | Alpha, это эквивалентно 1/54 информационного содержания всех глобальных данных. Сравните это с 9/10 однослойного DVD, в котором записи Wolfram | Alpha могут храниться с 4GiB. 3

Часть NX

На практике, 64-битные машины не используют все 64 бит для адресации памяти - они не должны делать это, а то , что я надеюсь , что было показано на 1/54 -of-на-planet's-данных обсуждения. Как написано в вики-статье PAE во втором пункте,

Структура таблицы страниц, используемая процессорами x86-64 [64-разрядными машинами] ... использует самый верхний бит записи таблицы 64-разрядных таблиц как бит без выполнения или "NX", указывая, что код не может быть выполнен из связанная страница.

Больше информации в NX-битной статье Википедии. Основная идея NX-бита заключается в том, что он указывает на то, что байт памяти, адресуемый 64-битной меткой (_plus_NX-bit_plus_other-stuff), можно пометить так, чтобы он не мог использоваться работающей программой. Среди прочего, это предотвращает тип атаки, описанный в начале этого ответа.

Теперь давайте вернемся к тому факту, что флажок для PAE/NX. Те же приемы, которые используются для увеличения количества доступных областей памяти, также можно использовать для добавления в NX-бит. Снова из второго абзаца статьи PAE Wikipedia,

Функция NX также доступна в защищенном режиме, когда эти процессоры работают под управлением 32-разрядной операционной системы, при условии, что в операционной системе включен PAE.


Заметки:

1) Этот ответ показывает мой процесс обнаружения. Я буду более чем счастлив, если кому-то понадобится уточнить или исправить все, что я написал.

2) На практике все 32 бита обычно не используются для адресации памяти, поэтому размер памяти, адресуемой 32-битной машиной, может быть меньше 4 ГиБ

3) Еще одно интересное сравнение объемов данных из этого источника.

По словам Videomaker, «Один час видеосъемки DV стандартной четкости требует приблизительно 12,7 ГБ памяти; приблизительно 217 МБ в минуту. Для сравнения: один час контента RAW 4K требует около 110 ГБ памяти; примерно 2 ГБ в минуту. "

Таким образом, 32-разрядный компьютер может использовать достаточно памяти для 15 минут стандартного разрешения DV (видео) или для 2 минут необработанного видео 4K. (Обратите внимание, что при наличии видеокодеков я могу получить почти 12 минут видео 4K в сжатом формате MP4, прежде чем мой старый телефон Android достигнет предельного размера файла 4 ГБ.)

С другой стороны, 64-разрядная машина может использовать достаточно памяти для 165 643 лет SD DV (видео) или 19 131 года сырого 4K видео.


Я запишу некоторые другие ссылки, которые я нашел полезными при написании этого ответа.

64-bit / x86_64 или x_64 VS 32-bit / x86, подумайте о папке Program Files (x86) в Windows или _x86 , x86_64 , x64 которые вы иногда видите в именах файлов установки.

Использование программного обеспечения из предыдущих (не слишком больших битов) архитектур

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .