当前位置: 技术问答>linux和unix
谁搞得灵清虚拟地址与物理地址!帮帮忙啦
来源: 互联网 发布时间:2014-10-25
本文导语: 为什么说Linux的内核态线程是没有虚拟存储空间的进程,它们运行在内核态中,直接使用物理地址空间。能直接使用物理地址吗? 详细点啦 |swapper_pg_dir在3GB~4GB映射物理内存地址0~系统最大物理内存。 ...
为什么说Linux的内核态线程是没有虚拟存储空间的进程,它们运行在内核态中,直接使用物理地址空间。能直接使用物理地址吗?
详细点啦
详细点啦
|
swapper_pg_dir在3GB~4GB映射物理内存地址0~系统最大物理内存。 并使用: #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) #define __PAGE_OFFSET (0xC0000000) 进行转化(多是在填写页表时用到),其实,在程序中都是一般都是使用虚拟地址,内核并不需要特殊的转换,只需要把页表填写好,mmu会自动完成这些工作的。
|
好象这里不好说清楚,你还是多看看相关书,比如操作系统。有本叫<Linux编程白皮书>中也有一段关于虚址与物理地址的说明,不防看看。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。