Linux中的页表

Linux中的页表,linux,linux-kernel,paging,osdev,Linux,Linux Kernel,Paging,Osdev,问题1:-在引导过程中,Linux创建页面表。但是,当执行新进程时,它也有自己的页表。这两张桌子有何不同 问题2:-在x86 arch上,Linux使用定义良好的方案,其中包括页面目录、页面表条目,并将线性地址转换为物理地址。 假设我们在进程地址空间a中有一个线性地址X,当使用页表进行转换时,它对应于物理地址Y。还有一些进程B也有属于其自身地址空间的有效线性地址X。现在,如果进程B想要访问X,X是否会再次对应于相同的物理地址Y?问题1:它们的权限不同 问题2:没有 如果你真的很好奇,而不仅仅是在

问题1:-在引导过程中,Linux创建页面表。但是,当执行新进程时,它也有自己的页表。这两张桌子有何不同

问题2:-在x86 arch上,Linux使用定义良好的方案,其中包括页面目录、页面表条目,并将线性地址转换为物理地址。
假设我们在进程地址空间a中有一个线性地址X,当使用页表进行转换时,它对应于物理地址Y。还有一些进程B也有属于其自身地址空间的有效线性地址X。现在,如果进程B想要访问X,X是否会再次对应于相同的物理地址Y?

问题1:它们的权限不同

问题2:没有


如果你真的很好奇,而不仅仅是在为你的家庭作业寻找简单的答案,你可能也想看看这个问题:

问题1:他们的权限不同

问题2:没有

如果你真的很好奇,而且不只是想为你的家庭作业寻找简单的答案,那么你可能也想看看这一点:

问题1:页面表格不仅仅是在启动时创建的。每次分叉进程时,都会创建一个新的页表。新表遵循内核在引导时设置的模板,但每个表都是独立的数据结构,每个进程都可以更改。它们通常不同,允许每个进程拥有自己的工作内存,只有它才能访问

问题2:不,这种行为是首先使用分页的原因之一。

问题1:分页表不是仅在启动时创建的。每次分叉进程时,都会创建一个新的页表。新表遵循内核在引导时设置的模板,但每个表都是独立的数据结构,每个进程都可以更改。它们通常不同,允许每个进程拥有自己的工作内存,只有它才能访问


问题2:不,这种行为是首先使用分页的原因之一。

请编辑它,这样你就可以问两个独立的问题,而不是一个两个问题。这听起来很像家庭作业,不是吗?@knittl:也许吧,但我怀疑这里的任何答案都远远超出了老师的要求,并可能影响课堂笔记。Linux使用定义良好的方案?就一个?最近不是有变化吗?@David+1指出除了编辑和添加评论之外,实际上没有人试图回答这个问题。@knittl:听起来像是家庭作业问题,我同意。我试图理解Linux的MMU部分,我在这里发布的这些问题是一些最初的疑问。请编辑这些问题,这样你就可以问两个独立的问题,而不是一个两个问题。这听起来很像家庭作业,不是吗?@knittl:也许吧,但我怀疑这里的任何答案都远远超出了老师的要求,并可能影响课堂笔记。Linux使用定义良好的方案?就一个?最近不是有变化吗?@David+1指出除了编辑和添加评论之外,实际上没有人试图回答这个问题。@knittl:听起来像是家庭作业问题,我同意。我试图理解Linux的MMU部分,我在这里发布的这些问题是一些最初的疑问。