This might be a silly question but it just popped up in my mind. All
the text about process address space and virtual memory layout
mentions that the process address space has space reserved for kernel.
For e.g. on 32 bit systems the process address space is 4GB of which 1
GB is reserved for kernel in Linux (Might be different on other OS).
I am just wondering why kernel is said to be in the process address
space when a process cannot address the kernel directly. Why don’t we
say that the kernel has a separate address space than a process and
why can’t we have a different page table for kernel itself which is
separate from the page tables of the processes?
我可以获得有关linux(debian或ubuntu)特定操作系统的解释.
解决方法:
进程“拥有”这里的整个虚拟地址空间,内核及其用户部分.
它无法窥视和戳戳内核代码和数据不是由于不同的地址空间,而是由于页表中设置的不同访问权限/权限.内核页面的设置方式使常规应用程序无法访问它们.
然而,习惯上将整个事物的两个部分称为内核空间和用户空间,这可能令人困惑.
标签:linux,operating-system,memory-management,kernel
来源: https://codeday.me/bug/20190930/1834800.html