PAE

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 13:54, 3 грудня 2020, створена Yuriz (обговорення | внесок) (уточнення)
Перейти до навігації Перейти до пошуку

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

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

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

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

Починаючи з 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 підтримка PAE є починаючи з версії 2.3.23. Вона підтримує до 64 ГБ оперативної пам'яті, але вимагає від процесора підтримки PAE. Також для включення PAE необхідно перезібрати ядро з параметром PAE. Оскільки це не завжди зручно, більшість дистрибутивів включили в свої сховища (репозиторії) готові ядра з цим параметром. Також останні версії деяких дистрибутивів поставляються з ядром з вже ввімкнутою підтримкою PAE.

FreeBSD підтримує PAE: у лінійці 4.x версій — починаючи з 4.9, в лінійці 5.x версій — починаючи з 5.1, всі 6.x і пізніші. Не всі драйвери підтримують адресацію, вищу за 4 ГБ, і тому можуть працювати некоректно.

У Mac OS X режим PAE включений за замовчуванням при використанні 32-розрядного ядра. Запущені програми при цьому можуть використовувати як 32-розрядну, так і 64-розрядну адресацію, що знімає обмеження на обсяг пам'яті, що виділяється кожній програмі.

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

Див. також

Примітки

Посилання