LINUX.ORG.RU

Подскажи Что такое «верхняя память».

 


0

2

В большинстве источников написано что 384 килобайта памяти, расположенные после основной памяти и туда адресуется память различных устройств. Но в некоторых других статьях статьях написано что она используется для адресации свыше двух гигов памяти. читаю про компиляцию ядра, а там нет разъяснения.


В большинстве источников написано что 384 килобайта памяти, расположенные после основной памяти и туда адресуется память различных устройств.

каких устройств и для какой архитектуры?

darkenshvein ★★★★★
()

Ты путаешь high memory и upper memory blocks. Второе — грёбаный архаизм из девяностых, про который все забыли с появлением x86 protected mode. Первое — грёбаный архаизм из 32-битного режима. Это память, к которой ядро не имеет прямого доступа (потому что его адресное пространство меньше физической памяти) и вынуждено каждый раз маппить его куски «вниз».

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Ват?

HMA это 65520 байт, которые можно адресовать за мегабайтом на 286+ процах в 16-битном реальном режиме засчет того, что FFFF:xxxx не заворачивается через ноль (A20 line wrapping), а превращается в честные FFFF0-10FFEF физического адреса. Кейворды «ядро» и «мапить» тут вообще ни при чем.

arturpub ★★
()

А вообще в верхней UMB памяти (не в самой памяти, которой 640Кб хватит всем, а в соотв. адресах) валялся видеобуфер (A0000-BFFFF), а остальное уходило под BIOS'ы или просто было незанятым. Кроме того, была такая штука, как EMS, когда в части верхней области можно было мапить окна с карты расширения памяти, воткнутой в ISA-слот, например. А с приходом защищенного режима и метровых планок туда мапилась обычная память выше 640Кб, чтобы складывать дрова, смартдрайвы, стакеры и прочие TSR, чтобы они не жрали от основного блока и игры не писали not enough memory.

arturpub ★★
()
Последнее исправление: arturpub (всего исправлений: 1)
Ответ на: комментарий от arturpub

Я всё это прекрасно знаю. Так вот термином «верхняя память» называют либо UMB (384К выше conventional memory), либо HMA (64К-16 выше первого мегабайта), либо т. н. «high memory» (это уже из Linux/IA-32 специфики). Грепни HIGHMEM по конфигу ядра.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.