了解linux 64位地址空间内存布局
2015-11-08 00:00
309 查看
主要搞清楚下列问题:
1.X86-64 页式管理有哪些改变?
2.Linux是怎样支持64bit地址管理?
3.64bit 内存布局是怎么样的?
1. X86-64 页式管理
查看《64-ia-32-architectures-software-developer-manual》-> VOLUME3 -> Chapter 4 paging -> 4.5 IA-32E PAGING,重点查看**地址转换**图。
另外参考《X86-64上的Linux VM管理系统》更容易理解。
2. Linux下64bit地址管理
查看随内核文档《https://www.kernel.org/doc/Documentation/x86/x86_64/mm.txt 》,初次看有些费解,注意:
内存布局重要分三大块,从低地址到高地址,依次是:用户空间,空洞(目前换没用), 内核空间;
用户空间相当简单是连续的,而内核空间又分成很多小的区域,如直接映射区,vmalloc,text区和内核模块区等,并且各区域由空洞隔开;
要弄懂三大区域进一步是如何布局的,就比较费事了,参考问题3会有个大概了解。
内存布局的配置文件见《http://lxr.free-electrons.com/source/arch/x86/include/asm/
pgtable_64_types.h?v=3.8#L26》
3. 64bit 内存布局
为了观察一个具体进程的内存布局,可以sudo cat /proc/pid/maps,特殊可以直接sudo cat /proc/self/mpas查看当前进程内存布局。
1.X86-64 页式管理有哪些改变?
2.Linux是怎样支持64bit地址管理?
3.64bit 内存布局是怎么样的?
1. X86-64 页式管理
查看《64-ia-32-architectures-software-developer-manual》-> VOLUME3 -> Chapter 4 paging -> 4.5 IA-32E PAGING,重点查看**地址转换**图。另外参考《X86-64上的Linux VM管理系统》更容易理解。
2. Linux下64bit地址管理
查看随内核文档《https://www.kernel.org/doc/Documentation/x86/x86_64/mm.txt 》,初次看有些费解,注意:内存布局重要分三大块,从低地址到高地址,依次是:用户空间,空洞(目前换没用), 内核空间;
用户空间相当简单是连续的,而内核空间又分成很多小的区域,如直接映射区,vmalloc,text区和内核模块区等,并且各区域由空洞隔开;
要弄懂三大区域进一步是如何布局的,就比较费事了,参考问题3会有个大概了解。
内存布局的配置文件见《http://lxr.free-electrons.com/source/arch/x86/include/asm/
pgtable_64_types.h?v=3.8#L26》
3. 64bit 内存布局
为了观察一个具体进程的内存布局,可以sudo cat /proc/pid/maps,特殊可以直接sudo cat /proc/self/mpas查看当前进程内存布局。
相关文章推荐
- 2015.11.07_07_03_Linux文件查找详解
- linux新内核的freeze框架以及意义
- Linux目录树详解(转)
- Linux C学习笔记
- Linux(centOS)上的mysql 1130连接错误
- linux下用户账户切换
- VMware中的Linux系统下的硬盘扩容:ubuntu 重新挂载/usr
- LINUX下压缩某个文件夹(文件夹打包)
- Linux命令之 文件归档管理
- 每个程序员都应该知道的8个Linux命令
- Linux内核原理-进程入门
- Ubuntu硬盘安装
- linux 后台任务以及查看查看文件夹大小命令
- Linux系统中查看服务器型号
- OpenStack CentOS7 virt-manager Windows Server 2012R2镜像
- linux语句
- #include后尖括号和双引号的区别
- Linux的分段和分页机制
- Linux上安装ArcGIS for Server超详细教程——以Redhat6.5上安装ArcGIS for Server 10.3.1为例
- Linux中的进程关系详解