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

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

Принцип роботи ред.

Підтримка 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.] (англ.)

Посилання ред.