手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Intel平台下linux中 ELF文档动态链接的加载、解析及实例分析(二): 函数解析和卸载

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

综合来看,dl_close这个函数假如是最终要卸载整个可执行文档的工作的话,那就要最高层的可执行文档开始,这里采用对可能有错综复杂的依赖关系的动态链接库使用了一个mark_removed和dl_close相结合的方法,在不断的递归调用中,把任何的动态链接库 l_opencount减少到0。最后释放任何的内存空间。这种情况假如您和linux内核中delet_module的调用相对比,也能够看的更清楚。

六、前景和展望

动态链接库的实现发展到现今已相当完善,他在理论和实践方面对于我们学习操作系统和编译语言提供了一个很好的范例。但是,动态链接库的实现毕竟还是只能在一个操作系统,一个单机,一种编程语言(假如是c 编程语言,则这一点也满足不了,因为不同的编译器可能对function name mangling-----函数名称混译也不同),对于现在网络化的信息产业是不够的。所以,出现了以这个为目标的二进制实现规范,这就是OMG (object model group )所定制出来的 CORBA,和由 Microsoft 所定制出来的 COM,我可能以后的日子中周详来探讨这些最新发展。

参考资料

[1]glibc-2.3.2 sourcecode 这是我这里主要的代码来源,能够在 ftp://ftp.gnu.org 中下载

[2]John R.Levine "Linkers and Loaders" 介绍动态链接库技术的经典 http://linker.iecc.com/

[3] Hongjiu Lu "ELF: From The Programmer's Perspective" 好的ELF编程的参考。在 http://linux4u.jinr.ru/usoft/WWW/www_debian.org/Documentation/elf/elf.html 能够看到


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!