System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术公开一种信创操作系统的定制调用方法及装置,涉及操作系统管理。
技术介绍
1、信创操作系统的出现旨在支持和优化特定的信创应用。信创操作系统在内核态提供了一系列调用接口,这些接口通过调用编号来区分不同的功能。glibc组件则对信创操作系统的调用接口进行了封装,提供了符合posix标准的接口,使得最终用户态程序能够方便地调用这些系统功能。
2、但信创操作系统的调用接口功能是明确且固定的,需要改变系统调用逻辑时,通常必须对信创操作系统内核和glibc组件进行大幅度修改。然而,信创操作系统内核和glibc组件的接口为公共接口,进行大幅度修改不仅难度大,还可能对信创操作系统上运行的所有应用产生广泛的影响,进而影响这些应用的业务逻辑。
技术实现思路
1、本专利技术针对现有技术的问题,提供一种信创操作系统的定制调用方法及装置,在不改变信创操作系统内核和glibc组件前提下,通过hook技术扩展,实现了用户态和内核态的操作系统调用管理,实现了信创操作系统对调用逻辑的定制,维护了信创操作系统的整体完整性,保证了信创操作系统的稳定性和兼容性,确保了应用的业务逻辑。
2、本专利技术提出的具体方案是:
3、本专利技术提供一种信创操作系统的定制调用方法,包括:
4、步骤1:利用gcc编译工具编写用户态hook函数,利用用户态hook函数定制用户态系统调用:
5、在glibc组件中通过用户态hook函数拦截系统调用接口的用户态系统调用;通过用
6、步骤2:利用信创操作系统内核的调试工具kprobe定制内核态系统调用:
7、新建系统调用:利用kprobe获取内核系统调用表指针,根据内核系统调用表指针,指定系统调用表内预留索引的函数,用于新建系统调用接口;
8、替换系统调用逻辑:通过修改指定系统调用表内预留索引的函数替换系统调用逻辑;
9、增加系统调用前置处理:指定前置处理函数,用于内核态系统调用的前置处理。
10、进一步,所述的一种信创操作系统的定制调用方法的步骤2中新建系统调用时,具体包括:利用kprobe根据kallsyms_lookup_name函数返回的函数对应地址获取内核系统调用表指针,kallsyms_lookup_name函数用于查找内核符号表中函数符号并返回函数对应地址,根据内核系统调用表指针,指定系统调用表内预留索引的函数,用于新建系统调用接口。
11、进一步,所述的一种信创操作系统的定制调用方法的步骤2中替换系统调用逻辑时,具体包括:获取系统调用表内预留索引,根据预留索引获取索引编号,每个索引编号对应一个系统调用接口,
12、通过修改指定系统调用表内预留索引的函数替换系统调用接口对应的系统调用逻辑。
13、进一步,所述的一种信创操作系统的定制调用方法的步骤2中增加系统调用前置处理时,具体包括:利用kprobe在内核符号表中找到需要增加前置处理的系统调用函数名称,将系统调用函数名称对应的系统调用函数指定为前置处理函数。
14、本专利技术提供一种信创操作系统的定制调用装置,包括用户态系统调用管理模块和内核态系统调用管理模块,
15、用户态系统调用管理模块利用gcc编译工具编写用户态hook函数,利用用户态hook函数定制用户态系统调用:
16、在glibc组件中通过用户态hook函数拦截系统调用接口的用户态系统调用;通过用户态hook函数将需要调用的用户态函数赋值为系统调用函数;使需要调用的用户态函数,在后续出现用户态系统调用时被调用;并在系统调用接口前增加前置处理逻辑,用于业务逻辑的前置处理,在系统调用接口后,增加后置处理逻辑,用于业务逻辑的后置处理;
17、内核态系统调用管理模块利用信创操作系统内核的调试工具kprobe定制内核态系统调用:
18、新建系统调用:利用kprobe获取内核系统调用表指针,根据内核系统调用表指针,指定系统调用表内预留索引的函数,用于新建系统调用接口;
19、替换系统调用逻辑:通过修改指定系统调用表内预留索引的函数替换系统调用逻辑;
20、增加系统调用前置处理:指定前置处理函数,用于内核态系统调用的前置处理。
21、进一步,所述的一种信创操作系统的定制调用装置的内核态系统调用管理模块新建系统调用时,具体包括:利用kprobe根据kallsyms_lookup_name函数返回的函数对应地址获取内核系统调用表指针,kallsyms_lookup_name函数用于查找内核符号表中函数符号并返回函数对应地址,根据内核系统调用表指针,指定系统调用表内预留索引的函数,用于新建系统调用接口。
22、进一步,所述的一种信创操作系统的定制调用装置的内核态系统调用管理模块替换系统调用逻辑时,具体包括:获取系统调用表内预留索引,根据预留索引获取索引编号,每个索引编号对应一个系统调用接口,
23、通过修改指定系统调用表内预留索引的函数替换系统调用接口对应的系统调用逻辑。
24、进一步,所述的一种信创操作系统的定制调用装置的内核态系统调用管理模块增加系统调用前置处理时,具体包括:利用kprobe在内核符号表中找到需要增加前置处理的系统调用函数名称,将系统调用函数名称对应的系统调用函数指定为前置处理函数。
25、本专利技术的有益之处是:
26、实现了用户态和内核态的系统调用管理,支持用户态系统调用前置处理,支持用户态系统调用后置处理,支持新建内核态系统调用接口,支持替换内核态系统调用逻辑,支持内核态系统调用前置处理,在不改变信创操作系统内核前提下,实现了信创操作系统对系统调用逻辑的定制,维护了信创操作系统的整体完整性,保证了信创操作系统的稳定性和兼容性,确保了应用的业务逻辑。
本文档来自技高网...【技术保护点】
1.一种信创操作系统的定制调用方法,其特征是包括:
2.根据权利要求1所述的一种信创操作系统的定制调用方法,其特征是步骤2中新建系统调用时,具体包括:利用kprobe根据kallsyms_lookup_name函数返回的函数对应地址获取内核系统调用表指针,kallsyms_lookup_name函数用于查找内核符号表中函数符号并返回函数对应地址,根据内核系统调用表指针,指定系统调用表内预留索引的函数,用于新建系统调用接口。
3.根据权利要求1所述的一种信创操作系统的定制调用方法,其特征是步骤2中替换系统调用逻辑时,具体包括:获取系统调用表内预留索引,根据预留索引获取索引编号,每个索引编号对应一个系统调用接口,
4.根据权利要求1所述的一种信创操作系统的定制调用方法,其特征是步骤2中增加系统调用前置处理时,具体包括:利用kprobe在内核符号表中找到需要增加前置处理的系统调用函数名称,将系统调用函数名称对应的系统调用函数指定为前置处理函数。
5.一种信创操作系统的定制调用装置,其特征是包括用户态系统调用管理模块和内核态系统调用管理模块
6.根据权利要求5所述的一种信创操作系统的定制调用装置,其特征是内核态系统调用管理模块新建系统调用时,具体包括:利用kprobe根据kallsyms_lookup_name函数返回的函数对应地址获取内核系统调用表指针,kallsyms_lookup_name函数用于查找内核符号表中函数符号并返回函数对应地址,根据内核系统调用表指针,指定系统调用表内预留索引的函数,用于新建系统调用接口。
7.根据权利要求5所述的一种信创操作系统的定制调用装置,其特征是内核态系统调用管理模块替换系统调用逻辑时,具体包括:获取系统调用表内预留索引,根据预留索引获取索引编号,每个索引编号对应一个系统调用接口,
8.根据权利要求5所述的一种信创操作系统的定制调用装置,其特征是内核态系统调用管理模块增加系统调用前置处理时,具体包括:利用kprobe在内核符号表中找到需要增加前置处理的系统调用函数名称,将系统调用函数名称对应的系统调用函数指定为前置处理函数。
...【技术特征摘要】
1.一种信创操作系统的定制调用方法,其特征是包括:
2.根据权利要求1所述的一种信创操作系统的定制调用方法,其特征是步骤2中新建系统调用时,具体包括:利用kprobe根据kallsyms_lookup_name函数返回的函数对应地址获取内核系统调用表指针,kallsyms_lookup_name函数用于查找内核符号表中函数符号并返回函数对应地址,根据内核系统调用表指针,指定系统调用表内预留索引的函数,用于新建系统调用接口。
3.根据权利要求1所述的一种信创操作系统的定制调用方法,其特征是步骤2中替换系统调用逻辑时,具体包括:获取系统调用表内预留索引,根据预留索引获取索引编号,每个索引编号对应一个系统调用接口,
4.根据权利要求1所述的一种信创操作系统的定制调用方法,其特征是步骤2中增加系统调用前置处理时,具体包括:利用kprobe在内核符号表中找到需要增加前置处理的系统调用函数名称,将系统调用函数名称对应的系统调用函数指定为前置处理函数。
5.一种信创操作系统的定制调用装置,其...
【专利技术属性】
技术研发人员:石光银,董玉全,蔡卫卫,高传集,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。