Выделение памяти для процессов ядра и пользовательского пространства - PullRequest
0 голосов
/ 06 января 2012
Is there any difference between kernel space & user space MEMORY ALLOCATIONS?
From which region of memory they get allocated.

Может ли кто-нибудь дать несколько советов по этому вопросу?

Спасибо.

С наилучшими пожеланиями,

Сандип Сингх

Ответы [ 2 ]

2 голосов
/ 31 октября 2012

Области памяти для обеих областей регулируются соответствующими диапазонами адресного пространства. Граничное значение сохраняется в регистре ограждения.

1 голос
/ 29 апреля 2016

Память пользователя и ядра имеет различия: в том смысле, что ей помечены разные физические атрибуты:

https://unix.stackexchange.com/questions/87625/what-is-difference-between-user-space-and-kernel-space

Но для самого алгоритма распределения: память пользовательского пространства всегда падаетв памяти ядра для его окончательной реализации.

И поскольку память в режиме ядра намного мощнее, чем пользовательский режим, существует аппаратный механизм, называемый SMEP для предотвращения выполнения памяти пользовательского режима изнутри режима ядра:

https://www.ncsi.com/nsatc11/presentations/wednesday/emerging_technologies/fischer.pdf

А аппаратные функции, такие как бит NX, всегда управляются из режима ядра (кольцо 0): как обычный пользователь (кольцо 3) вы не сможете получить доступ к биту.

Дополнительные аппаратные функции:

http://hypervsir.blogspot.sg/2014/11/page-structure-table-corruption-attacks.html

...