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; 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. Оскільки це не завжди зручно, більшість дистрибутивів включили в свої сховища (репозиторії) готові ядра з цим параметром. Також останні версії деяких дистрибутивів поставляються з ядром з вже ввімкнутою підтримкою PAE.
FreeBSD
FreeBSD підтримує PAE: у лінійці 4.x версій — починаючи з 4.9, в лінійці 5.x версій — починаючи з 5.1, всі 6.x і пізніші. Не всі драйвери підтримують адресацію, вищу за 4 ГБ, і тому можуть працювати некоректно.