增强型包过滤器的内核态程序的超级调用方法及装置制造方法及图纸

技术编号:34009215 阅读:30 留言:0更新日期:2022-07-02 14:10
本说明书实施例提供一种增强型包过滤器的内核态程序的超级调用方法及装置。应用于虚拟机监控器,包括:响应于内核态程序触发的虚拟化缺页,获取触发虚拟化缺页的内存地址;判断虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,映射表记录了键值对之间的映射关系,缺页键为内核态程序和虚拟机监控器共同在映射表中确定的键,映射表中的每个键唯一对应一个内存地址;如果虚拟化缺页的内存地址和缺页键对应的内存地址一致,从映射表中读取缺页键映射的缺页值;其中,缺页值包括内核态程序在触发虚拟化缺页之前写入的超级调用的功能类型;基于缺页值指示的功能类型执行该功能类型的超级调用。能类型执行该功能类型的超级调用。能类型执行该功能类型的超级调用。

【技术实现步骤摘要】
增强型包过滤器的内核态程序的超级调用方法及装置


[0001]本说明书实施例涉及计算机
,尤其涉及一种增强型包过滤器的内核态程序的超级调用方法及装置。

技术介绍

[0002]增强型包过滤器(extended Berkeley Packet Filter,eBPF)是一种通用执行引擎。由于增强型包过滤器可以在操作系统内核(如Linux内核)中运行特殊程序(如沙盒程序)而无需更改内核源代码或加载内核模块,因而受到开发人员的普遍使用。
[0003]增强型包过滤器的架构至少可以包括用户态程序(或称用户空间程序)和内核态程序(或称内核程序)两部分。其中,用户态程序用于加载指令码(如BPF字节码)至内核,也可以读取内核回传的信息或事件;而内核态程序用于将指令码转化为内核可执行指令,进而由内核中的指令程序执行。
[0004]在虚拟化的环境中(如虚拟机)提供有超级调用(Hypercall)机制,通过调用Hypercall可以实现从用户态到内核态的状态切换,从而获取内核态下更高的操作权限。
[0005]但是在虚拟化的环境中运行的增强型包过滤器,如果向要获取更高的操作权限,则需要从内核态程序切换到虚拟机中底层的虚拟机监控器(Hypervisor,或virtual machine monitor,VMM);而现有增强型包过滤器的内核态程序无法调用Hypercall,也就无法切换到Hypervisor以获取更高的操作权限。

技术实现思路

[0006]本说明书实施例提供的一种增强型包过滤器的内核态程序的超级调用方法及装置:
[0007]根据本说明书实施例的第一方面,提供一种增强型包过滤器的内核态程序的超级调用方法,应用于虚拟机监控器,所述方法包括:
[0008]响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
[0009]判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
[0010]如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
[0011]基于所述缺页值指示的功能类型执行该功能类型的超级调用。
[0012]可选的,所述响应于内核态程序的触发的虚拟化缺页,包括:
[0013]响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。
[0014]可选的,不同缺页键用于表示不同的参数个数;所述方法还包括:
[0015]基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;
[0016]所述基于所述缺页键指示的功能类型执行该功能类型的超级调用,包括:
[0017]基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;
[0018]将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
[0019]根据本说明书实施例的第二方面,提供一种增强型包过滤器的内核态程序的超级调用方法,应用于内核态程序,所述方法包括:
[0020]响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;
[0021]基于所述协商值查询所述映射表中映射的缺页键;
[0022]将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页;以使所述虚拟机监控器响应于所述虚拟化缺页,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
[0023]可选的,所述方法还包括:
[0024]在所述超级调用指令中还指定有超级调用的至少1个参数时,从所述映射表中的第一个参数键开始、将所述至少1个参数依次写入到至少1个参数键映射的参数值,以使1个参数值对应1个参数。
[0025]根据本说明书实施例的第三方面,提供一种增强型包过滤器的内核态程序的超级调用装置,应用于虚拟机监控器,所述装置包括:
[0026]响应单元,响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
[0027]判断单元,判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
[0028]读取单元,如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
[0029]调用单元,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
[0030]可选的,所述响应单元,进一步用于响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。
[0031]可选的,不同缺页键用于表示不同的参数个数;
[0032]所述读取单元,还用于基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;
[0033]所述调用单元,进一步用于基于所述参数值指示的参数和所述缺页值指示的功能类型执行该功能类型的超级调用。
[0034]可选的,所述装置还包括:
[0035]写入单元,基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
[0036]根据本说明书实施例的第四方面,提供一种增强型包过滤器的内核态程序的超级调用装置,应用于内核态程序,所述装置包括:
[0037]响应单元,响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种增强型包过滤器的内核态程序的超级调用方法,应用于虚拟机监控器,所述方法包括:响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;基于所述缺页值指示的功能类型执行该功能类型的超级调用。2.根据权利要求1所述的方法,所述响应于内核态程序的触发的虚拟化缺页,包括:响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。3.根据权利要求1所述的方法,不同缺页键用于表示不同的参数个数;所述方法还包括:基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;所述基于所述缺页键指示的功能类型执行该功能类型的超级调用,包括:基于所述参数值指示的参数和所述缺页值指示的功能类型执行该功能类型的超级调用。4.根据权利要求1所述的方法,所述方法还包括:基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。5.一种增强型包过滤器的内核态程序的超级调用方法,应用于内核态程序,所述方法包括:响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;基于所述协商值查询所述映射表中映射的缺页键;将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射...

【专利技术属性】
技术研发人员:胡小康
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1