- 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. Однако драйверы сторонних разработчиков могут работать некорректно.
См. также
Примечания
- ↑ часть адресного пространства, обычно от 0.9 до 2 ГБ резервируется под нужды ОС и недоступны приложению, см en:3 GB barrier, [1]
- ↑ Physical Address Extension
- ↑ Например, драйвер Microsoft Device Emulator
- ↑ 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
- ↑ Licensed Memory in Windows Vista (англ.)
Ссылки
Категории:- Расширения архитектуры x86
- Защита памяти
- Виртуальная память
Wikimedia Foundation. 2010.