当前位置: 网学 > 网学资源大全 > 计算机 > 正文

Linux下基于动态加载的通信数据处理的实现

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: admin 发布时间: 13/09/05
【网学提醒】:本文主要为网上学习者提供Linux下基于动态加载的通信数据处理的实现,希望对需要Linux下基于动态加载的通信数据处理的实现网友有所帮助,学习一下吧!

资料包括: 论文(7页4513字) 源码 图纸 
说明:

摘要:本文详细介绍了在Linux平台上如何创建和使用动态加载库,并提出了一种基于动态加载的通信数据处理模型。随后并给出了该模型的一个项目实例的主要实现,由此分析了动态加载库的应用对系统性能带来的影响。
关键字:Linux,动态加载,通信数据处理,共享库,gcc

Realization of the Dynamic Loaded-Based Communication Data Processing on Linux
Abstract:This paper discuss how to create and use dynamic loaded library on Linux in detail, and put forward a kind of application model of dynamic loaded-based communication data processing, Subsequently, it also gives the main implement of a project example of that model and explains the effect on system performance of the application of dynamic loaded library.
Key words::Linux, Dynamic Loaded, communication data processing, shared library, gcc

1 引言
随着网络尤其是Internet的广泛普及,基于网络的应用系统的开发数量得到迅速增加。在这些应用系统中,都需要对通信数据(即消息)进行处理,并且通常对于整个系统的性能都有影响。在多数系统中,如银行代收代付系统,不可避免地有时会需要增加和修改业务,这一变化通常会导致对消息进行分发和处理程序的变动。如何可以将这些变动限制在局部范围内,并且相应地使系统的升级变得简化。在Window32的平台上,可以通过使用动态链接库(DDL)来实现。
在Linux平台上,也有与动态链接库相似的机制,被称为共享库(Shared Libraries)或共享对象(Shared Object)。通过共享库来实现动态加载,可以更换共享库来升级应用系统,所付出的代价只不过是系统的安装配置变得复杂。在通常的消息处理模型中,对消息的处理都是通过调用对应的处理函数来实现的。将消息处理函数通过动态链接的方式调用,不但提高了代码的重用性,并简化了以后软件的升级,只需要更换相应的共享库文件就可以了。Linux的主要C/C++编译器gcc很好地实现了共享库和动态加载机制,并已经得到了广泛应用。

2 Linux的函数链接方式
Linux 中的应用程序可以通过两种方式链接到外部函数:一种是在构建时与静态库( lib*.a)静态地链接,并将库代码包含在该应用程序的可执行文件里;一种是在运行时与共享库( lib*.so)动态地链接。与静态链接不同的是,应用程序的可执行文件中不包含共享库中的要调用的代码,而仅仅包含了一个索引而已。
2.1 档案文件( Archives )
档案文件(又称为静态库)只是将一系列C/C++程序编译成的对象文件(.o文件)存放在一个文件里。它类似于Windows中的.LIB文件。在链接可执行文件时,通过向链接器提供静态库文件,链接器就会在静态库文件中搜索到需要的对象文件,并把它取出链接到程序里去。这和直接提供给链接器这些对象文件是一样的。
在Linux中,可以通过ar命令来创建静态库文件(通常以.a作为后缀名)。将test1.o和test2.o两个对象文件生成一个静态库文件libtest.a的命令如下:
% ar cr libtest.a test1.o test2.o
cr是表示创建静态库文件的命令行参数。如果程序app.c中调用了test1.o中的函数,则在将app.c编译成.o文件之后,调用命令:
% gcc -o app app.o -L. –ltest
由于Linux中的静态库文件通常是lib*.a的格式,因而链接器会自动将-ltest补为libtest.a。

目录:
1引言
2Linux的函数链接方式
3动态加载
4基于动态链接消息处理机制的模型与实现
5结束语

参考文献:
David A. Wheeler. Program Library HOWTO [M/OL]. http://www.tldp.org/HOWTO/Program-Library-HOWTO/index.html
Mark Mitchell, Jeffrey Oldham , and Alex Samuel.Advanced Linux Programming[M]. 2001 by New Riders Publishing
Ashish Bansal. How to write dynamically loadable libraries [J/OL]. http://www-106.ibm.com/developerworks/library/
Andrei Alexandrescu.设计就在代码中:C++中的增强性重用技术[A]. 极限编程研究[C] , 人民邮电出版社,2002年6月
Andrei Alexandrescu. 侯捷 於春景译.C++设计新思维——泛型编程与设计模式之应用[M] . 华中科技大学出版社2003年3月


作者点评:
Linux的动态加载技术对于许多应用系统的开发,尤其是大型系统的开发都是有非常大的帮助,并在一定程度上提高了应用系统性能,而且提高了软件开发效率和重用性。希望本文能对有兴趣在Linux平台上开发的读者有所帮助。
  • 上一篇资讯: 信息技术与信息技术工业化对经济的影响
  • 下一篇资讯: 计算机辅助质量管理系统的分析与设计
  • 相关资讯

    网学推荐

    免费论文

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号