为什么linux中.text 虚拟内存段不是从0起始的?
2014-09-29 10:57
246 查看
为什么linux中.text 虚拟内存段不是从0起始的?
0D4y 4 2011年12月10日
提问
关注 0 关注
收藏 0 收藏,18.8k 浏览
问题对人有帮助,内容完整,我也想知道答案
0
问题没有实际价值,缺少关键内容,没有改进余地
另外,为什么.text段对于32bit/64bit体系分别起始于0x08048000/0x00400000, 关于这个确定数值的取值有什么决定因素?
c
c++
vm
linux
linux-kernel
链接
0 评论
更多
2 个回答
答案对人有帮助,有参考价值2
答案没帮助,是错误的答案,答非所问
采纳
gaosboy 4.8k 2011年12月10日
回答
据我所知,这个数字没什么特殊含义,这个数值就是大佬们拍脑袋定的。
文档里说:虚拟内存不从0开始是为了可以预留一个足够大的read only堆,每个程序都可以在这里建立单独的2级页表。一个2级页表是0x00400000
链接
1 评论
更多
答案对人有帮助,有参考价值
0
答案没帮助,是错误的答案,答非所问
白开水 28 2011年12月13日
回答
From the Linkers and loaders book:
On 386 systems, the text base address is 0x08048000, which permits a reasonably large stack below the text while still staying above address 0x08000000, permitting most programs to use a single second-level page
table. (Recall that on the 386, each second-level table maps 0x00400000 addresses.)
相关文章推荐
- 为什么x86 Linux程序起始地址是从0x08048000开始的?
- (转)神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?
- Linux关闭Tomcat为什么要用Kill,而不是shutdown.sh
- linux中为什么要随机函数栈的起始地址
- linux perf: 为什么采样频率设置成99Hz而不是100Hz
- Linux perf: 为什么采样频率设置为99Hz而不是100Hz?
- 选择linux系统,为什么我选择CentOS而不是Debian/Ubuntu
- 【热文】 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows?
- 【热文】 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows?
- 为什么要用Linux,而不是Windows作为服务器
- Linux 操作系统的权限为什么是1,2,4 而不是 1,2,3?如何用二进制来做权限管理
- 神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?
- 《linux 内核完全剖析》上帝为什么是右移20,而不是22! dir = (unsigned long *) ((from>>20) & 0xffc)
- Linux关闭Tomcat为什么要用Kill,而不是shutdown.sh
- 为什么这么多Linux用户更喜欢命令行而不是GUI?
- 为什么Linux下的环境变量要用大写而不是小写
- [转]Linux关闭Tomcat为什么要用kill, 而不是shutdown.sh
- 为什么linux平台下软件安装不是双击执行
- 为什么Linux的音频驱动位于sound目录下而不是driver/sound?
- 交叉编译工具链为什么是arm-linux-而不是arm-linux-gcc