首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于text段,data段的疑惑解决方法

2012-06-13 
关于text段,data段的疑惑比如说arm的bootloader,编译出来是二进制文件,里面含有text段,data段,bss段,堆栈

关于text段,data段的疑惑
比如说arm的bootloader,编译出来是二进制文件,里面含有text段,data段,bss段,堆栈段等信息,该二进制文件需要烧录到rom中,烧进去以后这些段就自己分开了吗?是什么原理?

[解决办法]
这些段都是人为划分的吧,说的是程序运行时的内存布局
程序文件中只存储text段、data段
[解决办法]
二进制文件只有text段,data段,bss段
成为进程后才有堆栈段
二进制文件里的各个段按照elf 或pe等结构存储,在文件里的地址偏移跟最终的内存状态的各个段的位置没有联系
程序执行时,加载器load负责分析elf文件,取出各个段,放在最终的内存虚拟地址

想深入学习,有
《程序员的自我修养-链接、装载和库》这本书

热点排行