《Linux0.11内核完全注释》读后小结 --- 内存寻址

Posted on 2012-02-13 19:30  Teddy Yan  阅读(287)  评论(0编辑  收藏  举报


Linux 内存管理主要是32保护模式下,段页式内存管理。如何处理内存相关的寄存器,使得程序可以读写超过4G的内存。x86这个CPU框架,会根据寄存器的值和段页式规则来进行地址变换,进行内存访问。其中,也会进行权限验证等附加判断。

几个概念:

保护模式vs实模式



保护模式下的:

虚地址:程序产生的段选择符,段内偏移地址两部分组成。要经过分段地址变换处理后,才对应到屋里地址。

逻辑地址:在Intel86保护模式下,就是指程序执行代码段限长内的偏移地址。

线性地址:虚拟地址到物理地址变换的中间层。如果没有启用分页机制,线性地址就是物理地址。


在保护模式下,读取内存很费周章。如下图,需要先找到GDT,然后找到LDT,LDT指向了LDT描述符,其中保存了该进程的内存地址。


加上页管理,这个寻址过程就是:


页式管理

Copyright © 2024 Teddy Yan
Powered by .NET 8.0 on Kubernetes