Cheetah,曾为 U-boot 社区和 Linux 内核社区提交过若干补丁,主要从事 Linux 相关系统软件开发工作,负责 Soc 芯片 BringUp 及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。为了系统的安全性,Linux 内核将各个用户进程运行在各自独立的虚拟地址空间,用户进程之间通过虚拟地址空间相互隔离,不能相互访问,一个进程的奔溃不会影响到整个系统的异常也不会干扰到系统以及其他进程运行。 Linux 内核可以通过共享内存的方式为系统节省大量内存,例如 fork 子进程的时候,父子进程通过只读的方式共享所有的私有页面。再比如通过 IPC 共享内存方式,各个不相干的进程直接可以共享一块物理内存等等。我们都知道操作系统开启 mmu 之后 cpu 访问到的都是虚拟地址,当 cpu 访问一个虚拟地址的时候需要通过 mmu 将虚拟地址转化为物理地址,这叫做正向映射。而与本文相关的是反向映射,它主要是通过物理页来找到共享这个页的所有的 vma 对应的页表项,这是本文讨论的问题。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !