>第 18 章 x86汇编程序基础>ELF文件>可执行文件

cyy cyy198767@hotmail.com
2009-05-01 16:38:00

"在加载时要求文件中的一页对应内存中的一页"这句话好诡异啊,是不是应该是"在加载时要求文件中的一个segment对应内存中的一页,要不然的话文件怎么分页啊,这边也没说啊。


宋劲杉 songjinshan@akaedu.org
2009-05-04 09:51:26

不是文件中的一个segment对应内存中的一页,而是文件中的一个4KB页对应内存中的一页。我再改改,说清楚一点好了。


申波 shenbo_7@163.com http://learn.akae.cn/media/ch18s05.html
2010-06-05 13:56:59

“在ELF Header中,Type改成了EXEC,”,前后有变化的地方,如果能用不同的颜色或字体区分开,这样对比看起来就更直观了。
因为刚开始学,不是很熟,接受起来有点吃力。


邓学正 wiki2008@163.com
2010-07-24 17:23:37

指令中的地址原本是0x00000000,现在改成了0x080409a0(注意是小端字节序)。那么链接器怎么知道要改这两处呢?是根据目标文件中的.rel.text段提供的重定位信息来改的:

0x080409a0这个应该是0x080490a0


宋劲杉 songjinshan@gmail.com
2010-07-27 23:33:29

多谢指出!


杨震 yangzhendadi@sina.com
2010-10-05 20:52:35

讲的很好呀,非常感谢!!我编译了一下linux0.11,system部分是elf格式的,显然,我现在没有办法与前面的两部分拼接了。system前面一部分代码执行时,分页机制还没开启呢(即便开启了,也是从虚拟地址0开始执行的),但现在编译的system用的全是虚拟地址,大家有没有好的解决办法呀?


如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!