[英]Kernel space in a.out
我对用户空间和内核空间有些困惑。 Linux中a.out的4 gb虚拟内存中包含的内核空间是不同的还是未包含在该4 gb内存空间中。 另外,为操作系统保留的4 GB虚拟内存部分包括内核或内核空间。 如果以上所有我的观念有误,请纠正我
这完全取决于操作系统。
大多数操作系统将空间划分为4GB(例如2/2或3/1),因为它使从用户模式切换到内核模式更加容易,并且在切换过程中不需要重新映射页表。
但是,Linux甚至允许4GB用户空间和4GB内核空间。 但是正如您可以想象的那样,每次需要切换到内核模式时,这都需要重新映射完整的内存,这会产生一些开销。
尽管它在您的内存空间中,但OS不允许从用户模式代码访问内核空间。 由于页表中的特权位,这种访问控制是可能的。
从用户空间对内核的所有调用实际上都是一个int 80h
调用。 该调用将调用转移到内核的中断处理程序,并使内核和用户空间均可访问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.