Я хотел бы знать, когда мне нужно использовать Pae/NX, а когда нет.
Нужно ли мне всегда или я не могу использовать его на своей виртуальной машине?
Я хотел бы знать, когда мне нужно использовать Pae/NX, а когда нет.
Нужно ли мне всегда или я не могу использовать его на своей виртуальной машине?
Вам понадобится PAE, если вы виртуализируете 32-битную ОС и вам требуется более 4 ГБ памяти.
Комментарий @gronostaj и ответ @ajostergaard говорят только о части расширения физического адреса (PAE) в PAE/NX. Они оба превосходны, и у меня есть только пояснение - почему? Я также буду обсуждать часть "NX".
Возможно, более полным ответом, расширяющим ответ @ajostergaard, будет:
Вам понадобится PAE/NX, если вы настраиваете виртуальную 32-битную ОС и:
1) вам нужно более 4 ГБ памяти (RAM)
ИЛИ ЖЕ
2) вам нужно сделать так, чтобы части памяти не могли использоваться для исполняемого кода, например, если у вас есть проблемы с безопасностью, которые включают в себя такие атаки, как описанные на странице NX-битной Википедии,
[C] обнаруживает вредоносные программы разных типов [может захватывать] компьютеры, вставляя их код в область хранения данных другой программы и выполняя собственный код из этого раздела ...
Также, насколько я знаю, вам не понадобится эта опция PAE/NX при настройке любой 64-битной ОС в качестве виртуальной машины. (Обратите внимание, я использовал только процессоры Intel и AMD - PAE/NX может потребоваться с другими процессорами. УБЕДИТЕСЬ, ЧТО ВЫ ПРОВЕРИТЕ!)
Далее я опишу, что означает NX часть PAE/NX и как она связана с проблемами безопасности.
(В основном я искал полный ответ. Google привел меня сюда, но я застрял на части "NX". Я надеюсь, что мои выводы помогут другим.)
Может быть трудно перейти от первого абзаца на вики-странице 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
На практике, 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
которые вы иногда видите в именах файлов установки.
Использование программного обеспечения из предыдущих (не слишком больших битов) архитектур