Разпределение на паметта за процесите на Kernel Space и User Space

Is there any difference between kernel space & user space MEMORY ALLOCATIONS?
From which region of memory they get allocated.

Може ли някой да даде някои насоки по този въпрос?

Благодаря.

С Най-Добри Пожелания,

Сандип Сингх


person Sandeep Singh    schedule 06.01.2012    source източник
comment
възможен дубликат на Как ядрото на linux управлява по-малко от 1GB физическа памет? -- въпросът, който избрах, има някои подробности за 512M памет, които не са в този въпрос, и целта е маркирана arm, но там отговорите са доста добри... моля, прочетете го и вижте дали сте съгласни.   -  person sarnold    schedule 06.01.2012


Отговори (2)


Регионите на паметта и за двата региона се управляват от съответните диапазони на адресно пространство. Граничната стойност се съхранява в регистъра на оградата.

person Community    schedule 31.10.2012

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

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 bit винаги се контролират от режима на ядрото (пръстен 0): като нормален потребител (пръстен 3) няма да имате достъп до бита.

Още хардуерни функции:

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

person Peter Teoh    schedule 29.04.2016