- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux
linux
lliinnuuxx中的物理地址和虚拟地址
在支持MMU 的32位处理器平台上,Linux 系统中的物理存储空间和虚拟存储空间的地址范围分别都是从
00xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux 运行在虚
拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存
储空间中。
� 物理存储空间布局
� 物理存储空间布局
�� 物物理理存存储储空空间间布布局局
Linux 的物理存储空间布局与处理器相关,详细情况可以从处理器用户手册的存储空间分布表(memory
map)相关章节中查到,我们这里只列出嵌入式处理器平台Linux 物理内存空间的一般布局,如图18-4所
示。
500)this.width=
500;
图18-4 Linux 物理内存空间一般布局示意图
说明:
1)最大node号n 不能大于MAX_NUMNODES-1。
2)MAX_NUMNODES 表示系统支持的最多node数。在ARM 系统中,Sharp芯片最多支持16个nodes,
其他芯片最多支持4 个nodes。
3)numnodes 是当前系统中实际的内存node数。
4)在不支持CONFIG_DISCONTIGMEM 选项的系统中,只有一个内存node。
5)最大bank 号m 不能大于NR_BANKS-1。
6)NR_BANKS表示系统中支持的最大内存bank数,一般等于处理器的RAM 片选数。在ARM 系统中,
Sharp芯片最多支持16个banks,其他芯片最多支持8 个banks。
7)mem_init()函数会将所有节点的页帧位码表所占空间、孔洞页描述符空间及空闲内存页都释放掉。
� 虚拟存储空间布局
� 虚拟存储空间布局
�� 虚虚拟拟存存储储空空间间布布局局
在支持MMU 的系统中,当系统做完硬件初始化后就使能MMU 功能,这样整个系统就运行在虚拟存储空
间中,实现虚拟存储空间到物理存储空间映射功能的是处理器的MMU,而虚拟存储空间与5 路存储空间
的映射关系则是由Linux 内核来管理的。32位系统中物理存储空间占4GB空间,虚拟存储空间同样占4GB
空间,Linux 把物理空间中实际存在的远远小于4GB的内存空间映射到整个4GB虚拟存储空间中除映射
I/O 空间之外的全部空间,所以虚拟内存空间远远大于物理内存空间,这就说同一块物理内存可能映射到多
处虚拟内存地址空间上,这正是Linux 内存管理职责所在。图18-5列出了Linux 内核中虚拟内存空间的一
般布局(其实I/O 空间也在其中,通常占用高端内存空间,在此未标出)。
500)this.width=500;
图18-5 Linux 系统虚拟内存空间一般布局示意图
说明:
1)线性地址空间:是指Linux系统中从00xFFFFFFFF 整个4GB虚拟存储空间。
2)内核空间:内核空间表示运行在处理器最高级别的超级用户模式(supervisor mode)下的代码或数据,
内核空间占用从0xC0000000到0xFFFFFFFF 的1GB线性地址空间,内核线性地址空间由所有进程
文档评论(0)