Ядро с высокой памятью - PullRequest
4 голосов
/ 31 декабря 2011

В операционной системе ядро ​​чаще всего отображается на высокий адрес виртуальной памяти, таким образом, получая контроль над верхней частью памяти.Оставшееся пространство внизу предназначено для приложений, работающих в пространстве пользователя, как превосходно описано в « Виртуальный адрес Linux 3/1 ».

Я хотел бы знать, почему принимается это дизайнерское решение или почему ядро ​​не использует нижнюю часть памяти?Это мне не совсем понятно, или, может быть, я что-то наблюдал.

Редактировать: Этот вопрос касается виртуальных адресов, а не физических.

1 Ответ

6 голосов
/ 02 января 2012

Некоторые преимущества / причины такого дизайна:

  • Приложениям не нужно заботиться о размере и расположении ядра, и они могут делать вид, что они единственные в памяти,начиная с 0 и расширяясь вверх, с минимальным перемещением кода или данных или вообще без него.Следовательно, приложения легче разрабатывать и реализовывать, и они могут с меньшей вероятностью иметь ошибки, связанные с управлением памятью.
  • Приложения могут использовать меньшие / короткие адреса / указатели и, следовательно, экономить часть памяти.
  • InЦП x86, 16-разрядные и 32-разрядные адресные пространства начинаются с виртуального адреса 0 и заканчиваются на уровне около 1 МБ (для реального и виртуального режимов 8086), 16 МБ (16-разрядный защищенный режим на i80286 +) и 4 ГБ (32-разрядный).режим, нереальный режим).Размещение ядра по более низким адресам уменьшит диапазон адресов, доступных приложениям (например, 16-разрядное приложение в 32-разрядном режиме или 32-разрядное приложение в 64-разрядном режиме) и / или усложнит управление их памятью.Перемещение ядра на вершину виртуального адресного пространства обычно имеет смысл для x86.

Могут быть и другие причины, обычно зависящие от платформы.На некоторых платформах разница между этими двумя вариантами может быть незначительной.Тем не менее, в других случаях предпочтительное расположение ядра может быть по нижним виртуальным адресам.Детали имеют значение.

...