繁体   English   中英

内核空间

[英]Kernel space in a.out

我对用户空间和内核空间有些困惑。 Linux中a.out的4 gb虚拟内存中包含的内核空间是不同的还是未包含在该4 gb内存空间中。 另外,为操作系统保留的4 GB虚拟内存部分包括内核或内核空间。 如果以上所有我的观念有误,请纠正我

32位Linux的标准内存模型使用1 GB的内核空间和3 GB的用户空间空间。

总和为4 GB可用内存空间,因此,是,内核空间包含在地址空间中。

本文提供了一些显示拆分的图表。

这完全取决于操作系统。

大多数操作系统将空间划分为4GB(例如2/2或3/1),因为它使从用户模式切换到内核模式更加容易,并且在切换过程中不需要重新映射页表。

但是,Linux甚至允许4GB用户空间和4GB内核空间。 但是正如您可以想象的那样,每次需要切换到内核模式时,这都需要重新映射完整的内存,这会产生一些开销。

尽管它在您的内存空间中,但OS不允许从用户模式代码访问内核空间。 由于页表中的特权位,这种访问控制是可能的。

从用户空间对内核的所有调用实际上都是一个int 80h调用。 该调用将调用转移到内核的中断处理程序,并使内核和用户空间均可访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM