内核空间和用户空间进程的内存分配

时间:2012-01-06 04:27:27

标签: linux-kernel kernel device-driver systems-programming

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

有人可以就此提供一些指示吗?

感谢。

最诚挚的问候,

Sandeep Singh

2 个答案:

答案 0 :(得分:2)

两个区域的存储区域由相应的地址空间范围控制。边界值存储在围栏寄存器中。

答案 1 :(得分:1)

用户和内核内存确实存在差异:在标记不同的物理属性的意义上:

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

但是对于分配算法本身:用户空间内存总是落在内核内存上以实现其最终实现。

由于内核模式内存比usermode强大得多,因此有一种名为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