构造动态组件的方法和系统技术方案

技术编号:2826902 阅读:145 留言:0更新日期:2012-04-11 18:40
一种构造动态组件的方法,其特征在于,预先设定内核各API与其所在地址的映射关系表,并设定应用所要调用的内核API标识到映射关系表相关记录的映射关系的胶合函数,该方法包括:    设定应用调用内核中API的方式为通过胶合函数跳转到内核中的映射关系表,再通过该映射关系表跳转到内核中的API;    设定应用导出可被调用的接口;    将所述通过胶合函数跳转到内核中的映射关系表、再跳转到内核中的API的设定,和对导出接口方式的设定,和应用经编译、连接后生成动态组件。

【技术实现步骤摘要】

本专利技术涉及计算机软件
,特别涉及一种构造动态组件的方法和系统
技术介绍
随着第三代移动通信技术的不断成熟,可提供的传输带宽越来越宽。更宽 的带宽能够提供给用户更加丰富的业务和应用,且用户对新业务的需求也不断 提高,因此,需要开发更多的应用以满足需求。目前较普遍的应用的开发模式为采用实时操作系统(Real Time Operating System, RTOS)为开发环境,构造动态组件,使动态组件可以动态地加载到 系统。其中,动态组件是按照一定的格式单独编译、连接好的应用,提供一定 的功能,以文件的形式存在。该动态组件动态加载到系统上,具体的,是动态 加载到系统内核上,成为可以执行的代码指令。所述的应用可以由用户自行开 发,或由第三方开发,这样将应用的开发和动态组件的构造分为两个过程,利 于开发应用的自由度,方1更应用的单独开发。动态组件需要加载在系统内核上,调用系统内核中的API ( Application Programming Interface,应用程序接口 ),并提供接口到其它模块,使其它模块 可以通过该接口使用该动态组件。基于此, 一般的构造动态组件的方法如下编写应用;设定应用通过内核接口对内核API的方式; 设定应用导出给其它模块使用的接口的方式;将应用、设定的内核API调用方式和设定的导出接口方式经编译、连接后 生成动态组件。其中,设定应用通过内核接口对内核API调用的方式,和设定应用导出给 其它模块使用的接口的方式,是构造动态组件过程中需要着重解决的两个问 题。因为这两个问题的解决会影响到动态组件对内核调用的效率,还会涉及到 在实时操作系统中构造动态组件的实现起来的难易度。现有技术中的 一种PIC/PID形式构造动态组件的方法中,解决上述两个问题的方式如下内核提供统一的调用接口,该接口采用宏重新定义,以使动态组件可以通 过统一的内核^矣口 , 4妄照定义的宏来调用内核API; 导出 一个接口给其它模块调用。该方法中,由于内核提供的是统一的调用接口,因此动态组件通过该接口 调用内核中不同API时,需要经过一定次数的比较对内核接口定义的宏才能得 到真正调用的内核中API,这些对内核接口重新定义的宏位于头文件中,很多 时候,如果宏很多,需要比较的次数可能很大,这样就影响了动态组件调用内 核API的效率,同时,更改头文件也导致该方法实现过程较繁瑣。此外,针对 PIC/PID形式,需要修改实时操作系统中内核线程的调度,这也使该方法实现 过程较困难。另外,现有技术中还有一种Module形式的构造动态组件的方法。与前述 方法不同,该方法中,内核提供所有接口的符号与API所在内核中的地址的对 应表,动态组件对接口的引用通过符号进行引用,具体的,在内核加载过程中 解析这些符号,同时,动态组件接口的导出也通过符号的形式导出。且方法最 终生成的动态组件是未经连接的ELF文件。该方法由于提供的接口是符号形式,则在内核加载过程和接口导出过程 中,需要解析这些符号,这样会导致效率降低。而且,连接过程的作用是指定 文件执行时的入口,该方法生成的则是未经连接的ELF文件,即不会指定该 文件执行时的入口。本领域技术人员知道,文件中包括很多不同的段,可能执 行时只需要使用其中的某一些段,则将需要的段保留,将不需要的段去除,这 样可以精筒组件。而本方法不指定入口与出口,就不会知道哪些段是需要使用 的段,也就不会去除不需要的段,这样就使生成的文件体积很大,而在执行时 需要将该文件全部调入内存中,这样,该方法占用了较大内存空间,会造成内 存资源的浪费。
技术实现思路
本专利技术的目的是提供一种构造动态组件的方法和系统,以克服现有技术构 造的动态组件调用内核接口效率不高的问题。为解决上述技术问题,本专利技术提供一种构造动态组件的方法和系统是这样实现的一种构造动态组件的方法,预先设定内核各API与其所在地址的映射关 系表,并设定应用所要调用的内核API标识到映射关系表相关记录的映射关系 的月交合函lt,该方法包4舌设定应用调用内核中API的方式为通过胶合函数跳转到内核中的映射关 系表,再通过该映射关系表跳转到内核中的API;设定应用导出可被调用的接口 ;将所述通过胶合函数跳转到内核中的映射关系表、再跳转到内核中的API 的设定,和对导出接口方式的设定,和应用经编译、连接后生成动态组件。所述设定胶合函数还包括将每一胶合函数设定于不同的段中。所述设定应用导出可被调用的接口由以下方式实现设定应用通过弱函数导出可被调用的接口 。所述设定应用通过弱函数导出可被调用的接口由以下方式实现提供动态组件框架,设定加载器加载动态组件时向该动态组件框架发出请 求,该动态组件框架使用协议中规定的弱函数应答;其中,所述弱函数应答内容包括导出的可被调用的接口,所述请求/应答 采用协议规定进行通信。所述连接步骤中还包括强制保留弱函数。所述连接步骤包括指定该动态组件执行时的入口与出口,并去除没有用 到的胶合函数所在的段。一种构造动态组件的系统,包括映射关系表模块、胶合函数模块、内核 API的调用方式设定模块、组件框架模块、应用和连接器,其中,映射关系表用于在内核中保存映射关系表;胶合函数模块用于保存不同的胶合函数于不同的段中,这些胶合函数实现所要调用的内核API到映射关系表的跳转;内核API的调用方式设定模块用子设定应用调用内核中API的方式为通 过段中的胶合函数跳转到内核中的映射关系表,再通过该映射关系表跳转到内 核中的API;组件框架4莫块用于设定应用通过组件框架,使用协议规定的弱函数导出接;连接器用于将所述内核API的调用方式设定模块中对内核API调用方式 的设定,和组件框架模块中对导出接口方式的设定,和应用经编译、连接后生 成动态组件。所述胶合函数模块中包括不同的段,每个段保存不同的胶合函数,每个胶 合函数实现所要调用的内核API到映射关系表的一条记录的跳转。由以上本专利技术提供的技术方案可见,本专利技术预先提供内核各API与其所在 地址的映射关系表,并提供胶合函数,设定通过段中的胶合函数跳转到内核中 的映射关系表,再通过该映射关系表跳转到内核中的API,经过这两次跳转就 可以实现动态组件进入内核,对内核的API进行调用和执行,这样提高了动态 组件进入内核的速度,有效提高了效率。 附图说明图1为本专利技术构造动态组件的原理图; 图2为本专利技术方法的流程图; 图3为本专利技术系统的框图;图4为利用本专利技术构造的动态组件加载到系统内核上执行的过程。具体实施方式本专利技术在内核中预先设置内核各API与其所在地址的映射关系表,该映射 关系表可以在加载动态组件时提供给所述动态组件,并在每一个段中设置一个 胶合函数,在构造动态组件时,设定应用通过该胶合函数和映射关系表调用内 核API;所述胶合函数提供动态组件执行时,跳转到调用的API相关的映射关系所在映射关系表中的地址;构造动态组件时,还要设定应用导出给其它模块使用的接口的方式,并将应用、胶合函数和对导出接口方式的设定经编译、连 接后生成动态组件。其中,设定应用导出接口可以是提供一个动态组件框架, 该动态组件框架使用弱函数导出接口 。为了使本
的人员更好地理解本专利技术方案,下面结合附图和实施方 式对本专利技术作进一步的详细说本文档来自技高网
...

【技术保护点】
一种构造动态组件的方法,其特征在于,预先设定内核各API与其所在地址的映射关系表,并设定应用所要调用的内核API标识到映射关系表相关记录的映射关系的胶合函数,该方法包括:设定应用调用内核中API的方式为通过胶合函数跳转到内核中的映射关系表,再通过该映射关系表跳转到内核中的API;设定应用导出可被调用的接口;将所述通过胶合函数跳转到内核中的映射关系表、再跳转到内核中的API的设定,和对导出接口方式的设定,和应用经编译、连接后生成动态组件。

【技术特征摘要】
1. 一种构造动态组件的方法,其特征在于,预先设定内核各API与其所在地址的映射关系表,并设定应用所要调用的内核API标识到映射关系表相关记录的映射关系的胶合函数,该方法包括设定应用调用内核中API的方式为通过胶合函数跳转到内核中的映射关系表,再通过该映射关系表跳转到内核中的API;设定应用导出可被调用的接口;将所述通过胶合函数跳转到内核中的映射关系表、再跳转到内核中的API的设定,和对导出接口方式的设定,和应用经编译、连接后生成动态组件。2、 如权利要求1所述的方法,其特征在于,所述设定胶合函数还包括 将每一胶合函数设定于不同的段中。3、 如权利要求l所述的方法,其特征在于,所述设定应用导出可被调用 的接口由以下方式实现设定应用通过弱函数导出可被调用的接口 。4、 如权利要求3所述的方法,其特征在于,所述设定应用通过弱函数导 出可被调用的接口由以下方式实现提供动态组件框架,设定加载器加载动态组件时向该动态组件框架发出请 求,该动态组件框架使用协议中规定的弱函数应答;其中,所述弱函数应答内容包括导出的可被调用的接口,所述请求/应答 采用协议规定进行通信。5、 如权利要求4所述的方法,其...

【专利技术属性】
技术研发人员:吴涛
申请(专利权)人:大唐移动通信设备有限公司上海大唐移动通信设备有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1