内核模块加载方法和装置制造方法及图纸

技术编号:13591720 阅读:39 留言:0更新日期:2016-08-26 01:05
本申请公开了内核模块加载方法和装置。该方法的一具体实施方式包括:响应于将待加载内核模块加载到目标内核的加载操作,获取目标内核的特征信息;基于特征信息,配置待加载内核模块对应的加载信息;基于加载信息,将待加载内核模块加载到目标内核中。实现了在需要将内核模块在目标内核上进行加载时,直接对内核模块对应的ELF文件中的内核版本参数、内核符号校验参数、内核模块加载函数指针、内核模块卸载函数指针等加载信息进行修改,使得加载信息适用于目标内核的校验,内核模块可以加载到目标内核中。即内核模块在无需重新编译的情况下,加载在不同版本的内核中,增强了内核模块的适用性,节省开发成本。

【技术实现步骤摘要】

本申请涉及计算机领域,具体涉及操作系统领域,尤其涉及内核模块加载方法和装置
技术介绍
在内核程序的开发中,通常需要生成包含内核程序的源代码的内核模块,然后,将内核模块加载到内核中,从而,使得内核程序可以在内核中运行。目前,在将内核模块加载到内核中时,通常采用的方式为:在内核模块中配置内核模块加载过程中由内核需要校验的参数,然后,对内核模块进行重新编译后加载到内核中。然而,由于内核版本的多样性,在一个版本的内核上加载的内核模块中的内核所需要校验的参数是固定的,导致内核模块只能在一个版本的内核上进行加载,使得内核模块的适用性受到限制,增加开发成本。
技术实现思路
本申请提供了内核模块加载方法和装置,用于解决上述
技术介绍
部分存在的技术问题。第一方面,本申请提供了内核模块加载方法,该方法包括:响应于将待加载内核模块加载到目标内核的加载操作,获取目标内核的特征信息,其中,目标内核为待加载内核模块在加载之后所运行的内核;基于特征信息,配置待加载内核模块对应的加载信息,其中,加载信息包括:被目标内核校验的、用于将内核模块加载到目标内核的信息;基于所述加载信息,将待加载内核模块加载到目标内核中。第二方面,本申请提供了内核模块加载装置,该装置包括:获取单元,配置用于响应于将待加载内核模块加载到目标内核的加载操作,
获取目标内核的特征信息,其中,目标内核为待加载内核模块在加载之后所运行的内核;配置单元,配置用于基于特征信息,配置待加载内核模块对应的加载信息,其中,加载信息包括:被目标内核校验的、用于将内核模块加载到目标内核的信息;加载单元,配置用于基于加载信息,将待加载内核模块加载到目标内核中。本申请提供的内核模块加载方法和装置,通过响应于将待加载内核模块加载到目标内核的加载操作,获取目标内核的特征信息;基于特征信息,配置待加载内核模块对应的加载信息;基于加载信息,将待加载内核模块加载到目标内核中。实现了在需要将内核模块在目标内核上进行加载时,直接对内核模块对应的ELF文件中的内核版本参数、内核符号校验参数、内核模块加载函数指针、内核模块卸载函数指针等加载信息进行修改,使得加载信息适用于目标内核的校验,内核模块可以加载到目标内核中。即内核模块在无需重新编译的情况下,加载在不同版本的内核中,增强了内核模块的适用性,节省开发成本。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构图;图2示出了根据本申请的内核模块加载方法的一个实施例的流程图;图3示出了本申请中的内核模块加载方法的一个示例性流程图;图4示出了根据本申请的内核模块加载装置的一个实施例的结构示意图;图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该发
明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的内核模块加载方法或装置的实施例的示例性系统架构100。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯应用,例如、即时通讯类应用、浏览器类应用、搜索类应用、文字处理类应用等。终端设备101、102、103可以是具有显示屏并且支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。服务器105可以存储多个版本的内核的特征信息,当接收到终端设备101、102、103发送的查询请求时,可以将终端上的操作系统的内核的特征信息反馈给终端设备,使得终端设备可以根据特征信息配置内核模块的加载信息,从而将内核模块加载在目标内核中。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。请参考图2,其示出了根据本申请的内核模块加载方法的一个实施例的流程200。需要说明的是,本申请实施例所提供的内核模块加载方法一般由图1中的终端设备101、102、103执行。该方法包括以
下步骤:步骤201,响应于将待加载内核模块加载到目标内核的加载操作,获取目标内核的特征信息。在本实施例中,目标内核为待加载内核模块在加载之后所运行的内核。在本实施例中,当需要将内核模块在内核中加载时,可以响应于对加载内核模块的加载操作,首先获取用于加载内核模块的目标内核的特征信息。下面说明内核模块和内核的关系:以Linux操作系统的linux内核为例,Linux内核程序可以通过内核模块加载加入到内核中。例如,当开发完成Linux设备驱动程序时,可以首先生成包含Linux设备驱动程序的Linux内核模块,然后,将该Linux内核模块加载到内核中。从而,可以在内核中调用该Linux设备驱动程序。在本实施例的一些可选的实现方式中,特征信息包括:内核版本参数、内核符号校验参数、内核模块加载函数指针、内核模块卸载函数指针。本实施例的一些可选的实现方式中,获取目标内核的特征信息包括:通过目标内核的proc文件系统获取目标内核的特征信息。在本实施例中,当目标内核为Linux内核时,可以通过Linux内核的proc文件系统,查找到内核版本参数即vermagic参数、内核符号校验和参数即内核符号的CRC参数、内核模块加载函数指针、内核模块卸载函数指针。步骤202,基于特征信息,配置待加载内核模块对应的加载信息。在本实例中,加载信息包括:被目标内核校验的、用于将内核模块加载到目标内核的信息。下面说明在内核模块加载过程中,内核对内核模块的校验过程:Linux的模块加载机制:当需要将内核模块加载到linux内核时,可以在linux操作系统提供的控制台上输入命令insmod。insmod命令可以通过系统调用init_module来将内核模块加载到内核。调用insmod命令之后,linux内核会首先检查内核模块是否符合ELF(Executable andLinkable Format,可执行连接格式)格式,如果不符合,则内核拒绝加
载该内核模块。内核模块在进行编译之后,可以生成内核模块对应的ELF文件,ELF文件中包含在内核模块加载过程中需要校验的参数。本文档来自技高网
...

【技术保护点】
一种内核模块加载方法,其特征在于,所述方法包括:响应于将待加载内核模块加载到目标内核的加载操作,获取目标内核的特征信息,其中,所述目标内核为待加载内核模块在加载之后所运行的内核;基于所述特征信息,配置待加载内核模块对应的加载信息,其中,所述加载信息包括:被目标内核校验的、用于将内核模块加载到目标内核的信息;基于所述加载信息,将待加载内核模块加载到目标内核中。

【技术特征摘要】
1.一种内核模块加载方法,其特征在于,所述方法包括:响应于将待加载内核模块加载到目标内核的加载操作,获取目标内核的特征信息,其中,所述目标内核为待加载内核模块在加载之后所运行的内核;基于所述特征信息,配置待加载内核模块对应的加载信息,其中,所述加载信息包括:被目标内核校验的、用于将内核模块加载到目标内核的信息;基于所述加载信息,将待加载内核模块加载到目标内核中。2.根据权利要求1所述的方法,其特征在于,所述特征信息包括:内核版本参数、内核符号校验和参数、内核模块加载函数指针、内核模块卸载函数指针。3.根据权利要求2所述的方法,其特征在于,所述获取目标内核的特征信息包括:通过目标内核的proc文件系统获取目标内核的特征信息。4.根据权利要求3所述的方法,其特征在于,所述基于所述特征信息,配置待加载内核模块对应的加载信息包括:将内核模块对应的可执行文件中的内核版本参数字段的数值配置为所述内核版本参数;将内核模块对应的可执行文件中的内核符号校验和参数字段的数值配置为所述内核符号校验和参数;将内核模块对应的可执行文件中的内核模块加载函数指针和内核模块卸载函数指针配置为所述内核模块加载函数指针和内核模块卸载函数指针。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:确定内核模块中引用的内核符号所指示的内核函数或变量在目标内核中的存储地址;将所述存储地址设置为所述内核符号的链接地址。6.一种内核模块加载装置,其特征在于,所述装置包括:获取单元,配置用于响应于将待...

【专利技术属性】
技术研发人员:郑龙日夏良钊卢永强包沉浮张煜龙韦韬
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

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

1