内核函数调用方法、装置及操作系统的制作方法_2

文档序号:9452940阅读:来源:国知局
递的数组参数中,以包含类型和地址的二元组的形式解析出类型及对应函数或参数地址;以及
[0031]步骤S104b,根据所述类型依次获取函数地址和参数数值。
[0032]步骤S105,根据所述函数地址和参数值调用所述函数。
[0033]步骤S106,当内核函数调用结束时,在用户空间删除所述内核模块。
[0034]采用本发明内核函数调用方法,能够当调试信息没有导出到用户空间时,只要内核提供了调试接口函数,即可以从用户空间调用该函数,然后在内核空间执行该函数导出调试信息,方便快捷,且通用性强。
[0035]请参阅图4,本发明还提供一种内核函数调用装置100,其至少包括名称获取模块
10、第一解析模块20、载入模块30、第二解析模块40以及调用模块50。
[0036]具体的,所述名称获取模块10用于获取用户输入的内核函数名称和参数。所述第一解析模块20设置在用户空间,用于解析所述内核函数名称和参数,获取函数和参数的地址和类型,并建立参数列表。所述载入模块30用于以所述参数列表为内核模块参数,在系统中添加内核模块。所述第二解析模块40设置在内核空间,用于解析所述参数列表,获取相应函数地址和参数值。所述调用模块50用于根据所述函数地址和参数值调用所述函数。
[0037]采用本发明内核函数调用装置100,能够当调试信息没有导出到用户空间时,只要内核提供了调试接口函数,即可以从用户空间调用该函数,然后在内核空间执行该函数导出调试信息,方便快捷,且通用性强。
[0038]请进一步参阅图4,本发明还提供一种操作系统,其包括所述用户空间和内核空间,所述用户空间至少包括上述的名称获取模块10、第一解析模块20以及载入模块30。所述内核空间至少包括上述的第二解析模块40和调用模块50。此外,所述用户空间还可包括一个删除模块60,用于当内核函数调用结束时,在用户空间删除所述内核模块。
[0039]需要说明的是,通过以上的实施例的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,所述计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0040]以上所揭露的仅为本发明实施例中的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1.一种内核函数调用方法,其特征在于,包括步骤: 获取用户输入的内核函数名称和参数; 在用户空间解析所述内核函数名称和参数,获取函数和参数的地址和类型,并建立参数列表; 以所述参数列表为内核模块参数,使用载入模块指令在系统中添加内核模块; 在内核空间解析所述参数列表,以获取相应函数地址和参数值;以及 根据所述函数地址和参数值调用所述函数。2.如权利要求1所述的内核函数调用方法,进一步包括步骤: 当内核函数调用结束时,在用户空间删除所述内核模块。3.如权利要求1所述的内核函数调用方法,其特征在于,所述内核函数调用方法应用于Linux操作系统,所述用户输入的函数名称或参数至少遵循如下语法格式其中之一:函数名称或参数名称[:][@内核模块名称]、以Ox开头的32位十六进制数[:]、十进制整数[:],其中,字符“[]”部分表示可选部分,字符“:”表示取变量地址作为参数,字符“O”之后的部分为符号出处对应的内核模块名称。4.如权利要求1所述的内核函数调用方法,其特征在于,所述参数列表包括多个二元组,每个二元组包括每个函数或参数的类型和地址,其中所述类型和地址都用32位无符号整数表示。5.如权利要求4所述的内核函数调用方法,其特征在于,所述获取函数和参数的地址和类型的步骤包括: 获取函数符号或参数符号对应的地址;以及 获取二元组中的地址值以及获取二元组中地址指向内存位置的32位无符号整数数值,以确定类型。6.如权利要求1所述的内核函数调用方法,其特征在于,所生成的参数列表作为数组参数传递给所述内核模块,所述数组参数的元素是32位无符号整数。7.如权利要求6所述的内核函数调用方法,其特征在于,所述解析所述参数列表以获取相应函数地址和参数值的步骤包括: 从所传递的数组参数中,以包含类型和地址的二元组的形式解析出类型及对应函数或参数地址; 根据所述类型依次获取函数地址和参数数值。8.一种内核函数调用装置,其特征在于,至少包括: 名称获取模块,用于获取用户输入的内核函数名称和参数; 第一解析模块,设置在用户空间,用于解析所述内核函数名称和参数,获取函数和参数的地址和类型,并建立参数列表; 载入模块,用于以所述参数列表为内核模块参数,在系统中添加内核模块; 第二解析模块,设置在内核空间,用于解析所述参数列表,获取相应函数地址和参数值;以及 调用模块,用于根据所述函数地址和参数值调用所述函数。9.一种操作系统,包括用户空间和内核空间,其特征在于,所述用户空间至少包括: 名称获取模块,用于获取用户输入的内核函数名称和参数; 第一解析模块,用于解析所述内核函数名称和参数,获取函数和参数的地址和类型,并建立参数列表;以及 载入模块,用于以所述参数列表为内核模块参数,在系统中添加内核模块;以及 所述内核空间至少包括: 第二解析模块,用于解析所述参数列表,获取相应函数地址和参数值;以及 调用模块,用于根据所述函数地址和参数值调用所述函数。10.如权利要求9所述的操作系统,其特征在于,所述用户空间进一步包括删除模块,用于当内核函数调用结束时,在用户空间删除所述内核模块。
【专利摘要】本发明公开一种内核函数调用方法,包括步骤:获取用户输入的内核函数名称和参数;在用户空间解析所述内核函数名称和参数,获取函数和参数的地址和类型,并建立参数列表;以所述参数列表为内核模块参数,使用载入模块指令在系统中添加内核模块;在内核空间解析所述参数列表,以获取相应函数地址和参数值;以及根据所述函数地址和参数值调用所述函数。本发明还公开一种内核函数调用装置及其操作系统。
【IPC分类】G06F9/48
【公开号】CN105204937
【申请号】CN201510714259
【发明人】钟捷群
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年12月30日
【申请日】2015年10月28日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1