PAE

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум до 4 ГБ виртуальной памяти[1]. Также, в новых моделях процессоров в PAE-режиме старший бит элемента таблицы страниц отвечает за запрет исполнения кода в странице, что затрудняет атаку по методу переполнения буфера.

Впервые расширение появилось в процессоре Pentium Pro. Для использования 36-разрядной адресации памяти необходима поддержка расширения физических адресов на аппаратном уровне (можно определить по команде CPUID) и программное включение режима PAE в ОС.

Содержание

Варианты применения [править]

  • PAE позволяет использовать более 4GB оперативной памяти в 32-битной ОС
  • выделить память, урезанную 32-битной ОС - стандартным резервированием адресного пространства под драйверные аппаратные адреса - под RAM drive, обычно это от 0.5 до 0.9 GB из установленных 4GB(не говоря уже больше) - в зависимости от ОС и её версии
  • задействуя замену драйвера ОС кэширования файлов, выделить вышеуказанный потерянный объём памяти под ОС файл кэш

Проблемы [править]

  • Из-за увеличения количества страничных уровней[2], система начинает тратить больше времени при обращении к памяти. Таким образом, если типичный объем используемый программой памяти незначительно больше 2GB, то работа без PAE может быть эффективнее.
  • Некоторые драйверы [3] несовместимы с режимом PAE
  • - кроме некоторых версий Linux, начиная с ядра ~2.6.2, где это стоит вручную выключать для задания нормальной скорости работы ПК.
  • В 32-битной windows режим включается автоматически когда система поддерживает PAE (Physical Address Extension) и присутствует более 4 Гб памяти, и если не задать "/nopae" в boot.ini который запрещает загрузчику (NTLDR) использовать PAE-версию ядра.
  • Включение режима PAE необходимо для использования технологии DEP в 32-хбитных версиях ОС windows. Т.е. этот режим включается автоматически независимо от наличия "/nopae" - если пользователь включил запрет исполнения кода в страницах памяти (NX)

Поддержка PAE в различных ОС [править]

Windows [править]

Начиная с Windows XP Service Pack 2, по умолчанию, на процессорах с поддержкой технологий no-execute (NX) или execute-disable (XD) система использует PAE для возможности использования DEP[4]

В 32-битных клиентах Microsoft Windows (начиная с Windows XP SP2) использование 36-битного PAE включается ключом /PAE в файле boot.ini, однако, максимальный физический адрес доступного операционной системе ОЗУ ограничен программно на уровне ядра[5]. В Windows XP это ограничение составляет 4 ГБ, 32-разрядный Windows Server 2003 Enterprise Edition поддерживает до 64 ГБ. Существуют программы, позволяющие обойти ограничение на доступную память, но их использование является нарушением лицензионного соглашения Microsoft. В случае 4 ГБ ОЗУ, память можно использовать в Windows XP почти полностью, переместив системные области адресного пространства выше 4 ГБ, такую функцию поддерживают некоторые версии BIOS. Тем не менее, согласно заявлениям Microsoft, введение 4 ГБ ограничения адресного пространства связано с отсутствующей или плохой поддержкой 36-битного адресного пространства некоторыми драйверами устройств.

Одним из пунктов минимальных системных требований Windows 8 является обязательная поддержка процессором PAE.

Другой возможностью для использования более чем 4 гигабайт памяти является интерфейс Address Windowing Extensions.

Linux [править]

В ядре Linux поддержка PAE имеется начиная с версии 2.3.23. Оно поддерживает до 64 Гб ОЗУ, но требует от процессора поддержки PAE. Также для включения PAE необходимо пересобрать ядро с параметром PAE. Поскольку это не всегда удобно, большинство дистрибутивов включили в свои репозитории готовые ядра с этим параметром. Также последние версии некоторых дистрибутивов поставляются с ядром с уже включенной поддержкой PAE.

FreeBSD [править]

FreeBSD поддерживает PAE: в линейке 4.x версий — начиная с 4.9, в линейке 5.x версий — начиная с 5.1, все 6.x и более поздние. Не все драйверы поддерживают более 4 Гб ОЗУ и поэтому могут работать некорректно.

Mac OS X [править]

В Mac OS X режим PAE включён по умолчанию при использовании 32-разрядного ядра.

Solaris [править]

Solaris поддерживает PAE, начиная с версии 7. Однако драйверы сторонних разработчиков могут работать некорректно.

См. также [править]

Примечания [править]

  1. часть адресного пространства, обычно от 0.9 до 2 ГБ резервируется под нужды ОС и недоступны приложению, см en:3 GB barrier, [1]
  2. Physical Address Extension
  3. Например, драйвер Microsoft Device Emulator
  4. The RAM reported by the System Properties dialog box and the System Information tool is less than you expect in Windows Vista or in Windows XP Service Pack 2 or later version
  5. Licensed Memory in Windows Vista (англ.)

Ссылки [править]