+ -
当前位置:首页 → 问答吧 → 线性地址与逻辑地址

线性地址与逻辑地址

时间:2010-11-20

来源:互联网

系统RAM所有页框描述符都存在mem_map数组中,指针mem_map指针是该数组的线性地址还是物理地址?virt_to_page(addr)宏返回的是页框描述符的线性地址还是物理地址?
ULK说,如果页框不在高端内存区,可以通过计算页框下标,然后将其转换为物理地址,在根据物理地址得到相应页框的线性地址,代码如下:__va((unsigned long) (page - mem_map) << 12),page-mem_map可以得到该页框在数组mem_map的偏移,但是再左移12位是什么意思呢?

作者: diandianlianyi   发布时间: 2010-11-20

本帖最后由 瀚海书香 于 2010-11-20 16:59 编辑


QUOTE:
系统RAM所有页框描述符都存在mem_map数组中,指针mem_map指针是该数组的线性地址还是物理地址?virt_to_pag ...
diandianlianyi 发表于 2010-11-20 16:25



mem_map是线性地址,virt_to_page返回的也是线性地址。
page-mem_map可以得到该页框在数组mem_map的偏移,而偏移的单位就是每个页框的大小,也就是4K。所以需要再左移12位。

作者: 瀚海书香   发布时间: 2010-11-20