花墨 发表于 2015-2-26 11:41:27

SO文件格式及linker机制学习总结

/*来自ThomasKing大神的两篇文章,原文地址:http://bbs.pediy.com/showthread.php?t=197512,http://bbs.pediy.com/showthread.php?t=197559*/

学习SO文件格式和linker已有很长一段时间,现实现SO文件的抽取以及相应的加载器,目的在于学习总结,并对之前帖子未涉及到的知识进行补充。当然,为了让总结更有意思,先从文件格式的定义上入手,自定义一个简单的文件格式。为了保持平台上的兼容性和实现的简单性,在对SO抽取的过程中,保持与指令集相关的相对结构,不涉及与平台相关的指令集重定位等。后文在此格式基础上,实现一个类似linker的加载器,对抽取后的SO文件进行加载。限于水平,难免会有错误和疏漏之处,请各位大大斧正。http://bbs.pediy.com/images/smilies/smile.gif

另外,限于篇幅,后续文章将会介绍如何内存加载SO文件以及融合加载器的实现,目的在于将加载器与抽取后的文件相融合,实现无缝加载和替换......



static/image/hrline/1.gif



小弟接着上篇帖子,介绍SO的内存加载以及改进上文的加载器。由于删减了部分内容,本想附带在上篇帖子。考虑到内容不同,还是选择了另开一贴http://bbs.pediy.com/images/smilies/redface.gif。至此,对ELF和linker的学习告一段落。在各位坛友的支持下,小弟坚持把学习笔记写完,对各位坛友表示衷心感谢http://bbs.pediy.com/images/smilies/biggrin.gif。限于水平,难免会有错误和疏漏之处,请各位大大斧正,小弟感激不尽。
----------------------------------------------
将上文生成的SO抽取文件libfoo.mo放入merge中,在linux环境下直接make,将生成的libfoo.so文件放入测试工程libs/armabi目录下即可。



static/image/hrline/3.gif



附件下载地址:

**** Hidden Message *****

默小坑 发表于 2015-2-26 13:21:13

回复可见。。。

世事繁华皆成空 发表于 2015-2-26 16:30:31

支持教学贴

lu543800 发表于 2015-2-26 16:36:04

来学习 学习大神的

wlhlw 发表于 2015-2-26 18:22:38

好帖马萨瑟

xxoo 发表于 2015-2-28 10:45:38

支持下下

单翅的天使ylj 发表于 2015-2-28 17:02:23

前来支持{:6_168:}

zshzm 发表于 2015-2-28 18:48:43

看看是什么

sndncel 发表于 2015-3-2 08:28:12

进来学习一下呀。。。。。哈哈。

p42833693 发表于 2015-3-2 13:33:21

学习学习
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: SO文件格式及linker机制学习总结