欢迎光临散文网 会员登陆 & 注册

阅码场深入剖析Linux内核页表技术

2022-09-21 23:09 作者:娜娜络络  | 我要投稿

页表的作用是什么?

1)地址转换

将虚拟地址转换为物理地址已报名阅码场 底部 评

2)权限管理

管理cpu对物理页的访问,如读写执行权限

3)隔离地址空间

隔离各个进程的地址空间,使其互不影响,提供系统的安全性

打开mmu后,对没有页表映射的虚拟内存访问或者有页表映射但是没有访问权限都会发生处理器异常,内核选择杀死进程或者panic;通过页表给一段内存设置用户态不可访问, 这样可以做到用户态的用户进程不能访问内核地址空间的内容;而由于用户进程各有一套自己的页表,所以彼此看不到对方的地址空间,更别提访问,造成每个进程都认为自己拥有所有虚拟内存的错觉;通过页表给一段内存设置只读属性,那么就不容许修改这段内存内容,从而保护了这段内存不被改写;对应用户进程地址空间映射的物理内存,内核可以很方便的进行页面迁移和页面交换,而对使用虚拟地址的用户进程来说是透明的;通过页表,很容易实现内存共享,使得一份共享库很多进程都可以映射到自己地址空间使用;通过页表,可以小内存加载大应用程序运行,在运行时按需加载和映射...


阅码场深入剖析Linux内核页表技术的评论 (共 条)

分享到微博请遵守国家法律