PAE

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

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

Принцип роботи

Цей розділ потребує доповнення.
  • Структура таблиць сторінок
  • Без PAE, 4 КБ-сторінки
    Без PAE, 4 КБ-сторінки
  • Без PAE, 4 МБ-сторінки
    Без PAE, 4 МБ-сторінки
  • З PAE; 4 КБ-сторінки
    З PAE; 4 КБ-сторінки
  • З PAE; 2 МБ-сторінки
    З PAE; 2 МБ-сторінки

Підтримка PAE у різноманітних ОС

Windows

Починаючи з Windows XP Service Pack 2, за замовчуванням, на процесорах з no-execute (NX) або execute-disable (XD) система використовує PAE для можливості використання NX.[1]

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

Linux

У ядрі Linux підтримка PAE є починаючи з версії 2.3.23. Вона підтримує до 64 ГБ оперативної пам'яті, але вимагає від процесора підтримки 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-розрядного ядра. Запущені програми при цьому можуть використовувати як 32-розрядну, так і 64-розрядну адресацію, що знімає обмеження на обсяг пам'яті, що виділяється кожній програмі.

Solaris

Solaris підтримує PAE, починаючи з версії 7. Однак драйвери сторонніх розробників можуть працювати некоректно.

Див. також

Примітки

  1. 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 (англ.). Архів оригіналу за 4 червня 2011. Процитовано 31 травня 2011.
  2. Licensed Memory in Windows Vista [Архівовано 12 квітня 2022 у Wayback Machine.] (англ.)

Посилання

  • Physical Address Extension — PAE Memory and Windows (англ.)
  • Підтримка пам'яті великого розміру у Windows Server 2003 і Windows 2000 [Архівовано 29 квітня 2011 у Wayback Machine.]
  • PAE в Ubuntu [Архівовано 13 березня 2011 у Wayback Machine.]