CN114691391A - 增强型包过滤器的内核态程序的超级调用方法及装置 - Google Patents
增强型包过滤器的内核态程序的超级调用方法及装置 Download PDFInfo
- Publication number
- CN114691391A CN114691391A CN202210249016.0A CN202210249016A CN114691391A CN 114691391 A CN114691391 A CN 114691391A CN 202210249016 A CN202210249016 A CN 202210249016A CN 114691391 A CN114691391 A CN 114691391A
- Authority
- CN
- China
- Prior art keywords
- key
- page
- missing
- value
- mapping table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013507 mapping Methods 0.000 claims abstract description 153
- 230000006870 function Effects 0.000 claims abstract description 107
- 230000001960 triggered effect Effects 0.000 claims abstract description 22
- 230000004044 response Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 102100040796 Glycoprotein hormones alpha chain Human genes 0.000 description 3
- 101001038874 Homo sapiens Glycoprotein hormones alpha chain Proteins 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 102100033808 Glycoprotein hormone alpha-2 Human genes 0.000 description 2
- 101001069261 Homo sapiens Glycoprotein hormone alpha-2 Proteins 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006854 communication Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书实施例提供一种增强型包过滤器的内核态程序的超级调用方法及装置。应用于虚拟机监控器,包括:响应于内核态程序触发的虚拟化缺页,获取触发虚拟化缺页的内存地址;判断虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,映射表记录了键值对之间的映射关系,缺页键为内核态程序和虚拟机监控器共同在映射表中确定的键,映射表中的每个键唯一对应一个内存地址;如果虚拟化缺页的内存地址和缺页键对应的内存地址一致,从映射表中读取缺页键映射的缺页值;其中,缺页值包括内核态程序在触发虚拟化缺页之前写入的超级调用的功能类型;基于缺页值指示的功能类型执行该功能类型的超级调用。
Description
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种增强型包过滤器的内核态程序的超级调用方法及装置。
背景技术
增强型包过滤器(extended Berkeley Packet Filter,eBPF)是一种通用执行引擎。由于增强型包过滤器可以在操作系统内核(如Linux内核)中运行特殊程序(如沙盒程序)而无需更改内核源代码或加载内核模块,因而受到开发人员的普遍使用。
增强型包过滤器的架构至少可以包括用户态程序(或称用户空间程序)和内核态程序(或称内核程序)两部分。其中,用户态程序用于加载指令码(如BPF字节码)至内核,也可以读取内核回传的信息或事件;而内核态程序用于将指令码转化为内核可执行指令,进而由内核中的指令程序执行。
在虚拟化的环境中(如虚拟机)提供有超级调用(Hypercall)机制,通过调用Hypercall可以实现从用户态到内核态的状态切换,从而获取内核态下更高的操作权限。
但是在虚拟化的环境中运行的增强型包过滤器,如果向要获取更高的操作权限,则需要从内核态程序切换到虚拟机中底层的虚拟机监控器(Hypervisor,或virtualmachine monitor,VMM);而现有增强型包过滤器的内核态程序无法调用Hypercall,也就无法切换到Hypervisor以获取更高的操作权限。
发明内容
本说明书实施例提供的一种增强型包过滤器的内核态程序的超级调用方法及装置:
根据本说明书实施例的第一方面,提供一种增强型包过滤器的内核态程序的超级调用方法,应用于虚拟机监控器,所述方法包括:
响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
基于所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述响应于内核态程序的触发的虚拟化缺页,包括:
响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。
可选的,不同缺页键用于表示不同的参数个数;所述方法还包括:
基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;
所述基于所述缺页键指示的功能类型执行该功能类型的超级调用,包括:
基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;
将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
根据本说明书实施例的第二方面,提供一种增强型包过滤器的内核态程序的超级调用方法,应用于内核态程序,所述方法包括:
响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;
基于所述协商值查询所述映射表中映射的缺页键;
将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页;以使所述虚拟机监控器响应于所述虚拟化缺页,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述方法还包括:
在所述超级调用指令中还指定有超级调用的至少1个参数时,从所述映射表中的第一个参数键开始、将所述至少1个参数依次写入到至少1个参数键映射的参数值,以使1个参数值对应1个参数。
根据本说明书实施例的第三方面,提供一种增强型包过滤器的内核态程序的超级调用装置,应用于虚拟机监控器,所述装置包括:
响应单元,响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
判断单元,判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
读取单元,如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
调用单元,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述响应单元,进一步用于响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。
可选的,不同缺页键用于表示不同的参数个数;
所述读取单元,还用于基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;
所述调用单元,进一步用于基于所述参数值指示的参数和所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述装置还包括:
写入单元,基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
根据本说明书实施例的第四方面,提供一种增强型包过滤器的内核态程序的超级调用装置,应用于内核态程序,所述装置包括:
响应单元,响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;
查询单元,基于所述协商值查询所述映射表中映射的缺页键;
调用单元,将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页;以使所述虚拟机监控器响应于所述虚拟化缺页,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述调用单元,还用于在所述超级调用指令中还指定有超级调用的至少1个参数时,从所述映射表中的第一个参数键开始、将所述至少1个参数依次写入到至少1个参数键映射的参数值,以使1个参数值对应1个参数。
根据本说明书实施例的第五方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一项增强型包过滤器的内核态程序的超级调用方法。
根据本说明书实施例的第六方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述任一项增强型包过滤器的内核态程序的超级调用方法。
本说明书实施例,提供了一种增强型包过滤器的内核态程序的超级调用方案,基于虚拟化缺页技术为增强型包过滤器的内核态程序提供超级调用功能;在不修改内核源代码的前提下,通过调用该提供的超级调用功能以实现间接的超级调用。
附图说明
图1是本说明书一实施例提供的增强型包过滤器的内核态程序的超级调用方法的流程图;
图2是本说明书一实施例提供的Map的示意图;
图3是本说明书一实施例提供的以虚拟机监控器为执行主体的方法实施例的示意图;
图4是本说明书一实施例提供的以内核态程序为执行主体的方法实施例的示意图;
图5是本说明书一实施例提供的增强型包过滤器的内核态程序的超级调用装置的硬件结构图;
图6是本说明书一实施例提供的增强型包过滤器的内核态程序的超级调用装置的模块;
图7是本说明书一实施例提供的增强型包过滤器的内核态程序的超级调用装置的模块。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如前所述,增强型包过滤器(以下简称为eBPF)的内核态程序无法直接调用超级调用(以下简称为Hypercall),也就无法从内核态程序切换到虚拟机监控器(以下简称为Hypervisor)以获取更高的操作权限。
在相关技术中,通过修改内核源代码,可以实现eBPF的内核态程序的Hypercall。具体地,现有内核定义有一系列的Helper辅助函数,但其中并没有提供实现Hypercall功能的Helper辅助函数;为此通过修改内核源代码以添加通过Helper辅助函数调用Hypercall的实现。然而,这种方式需要修改内核源代码,其适用性较差无法实现大量普及。
本说明书提供了一种增强型包过滤器的内核态程序的超级调用方案,在无需修改内核源代码的情况下,也可以实现eBPF内核态程序的Hypercall功能。
以下结合图1介绍本说明书提供的增强型包过滤器的内核态程序的超级调用方法实施例的流程图,所述方法包括:
步骤1.2:内核态程序响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
步骤1.4:所述内核态程序基于所述协商值查询所述映射表中映射的缺页键。
步骤1.6:所述内核态程序将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页。
步骤2.2:所述虚拟机监控器响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址。
步骤2.4:所述虚拟机监控器判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表中的每个键唯一对应一个内存地址。
步骤2.6:如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,所述虚拟机监控器从所述映射表中读取所述缺页键映射的缺页值。
步骤2.8:所述虚拟机监控器基于所述缺页值指示的功能类型执行该功能类型的超级调用。
在本说明书中,通过虚拟化技术可以在内核中生成至少1个虚拟机,并可以在每个虚拟机可以运行eBPF(增强型包过滤器),所述eBPF中会维护一个或多个映射表。这样对于虚拟机来说就可以包括eBPF的内核态程序、映射表以及虚拟机本身具有的Hypervisor(虚拟机监控器)。
上述映射表可以理解为一种记录键值对(即key-value)之间的映射关系的数据结构,如Map。Map是一种通用的key-value存储结构,可以用于存储任意类型的数据。映射表中每个key均对应有一个内存地址。
在eBPF中,映射表一般用于为用户态程序和内核态程序提供双向通信,以实现用户态程序和内核态程序之间的数据交互。
在本说明书中,通过对上述映射表进行配置或改进还可以用于为eBPF和Hypervisor提供双向通信,以实现eBPF的内核态程序与Hypervisor之间的数据交互。具体地对上述映射表进行配置或改进将在后续实施例中进行说明。
在以Map这类映射表为例,对于不同场景的需求Map还衍生了不同类型的Map类型,例如Array Map(数组表),Hash Map(哈希表)等等;不同的Map类型具有不同的特点和功能。
以Array Map为例,由于Array Map具有查询效率高以及占用内存少的特点;因此当采用Array Map作为eBPF Map时,可以提高Map的读写效率。对于本说明书中的实施例来说,提高Map的读写效率则意味着提高内核态程序的超级调用时的响应效率。
以下进一步介绍对映射表进行配置或改进,以实现eBPF的内核态程序与Hypervisor之间的数据交互。
在本说明书中,需要在映射表中注册一个或多个的协商键(以下称为协商key)。每个协商key对应的协商值(以下称为协商value)可以由Hypervisor预先写入的缺页键(以下称为缺页key),即协商value可以用于指示缺页key。协商key和缺页key可以是内核态程序和Hypervisor预先共同在映射表中确定的key。
需要说明的是,在同一时刻下一个缺页key只能存在于一个协商value,从而避免不同协商value同时指向一个缺页key,导致异常冲突的发生。
在一示例性的实施例中,所述Hypervisor写入协商value之前需要先获取到映射表,该获取方式可以包括:
Hypervisor可以基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;进一步,将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键。
在实现时,Hypervisor可以使用内核分析工具(例如Crash Utility)获取来获取上述映射表。一般的,内核分析工具可以是基于虚拟机的身份信息作为唯一标识进行定位,并从定位到的虚拟机中获取映射表。其中,所述身份信息可以包括但不限定于:虚拟机的内核版本(如Linux Kernel版本)、符号表、关键数据结构等信息。
需要说明的是,在有的实施例中Hypervisor也可以不借助内核分析工具而直接基于虚拟机的身份信息获取映射表。
在Hypervisor将缺页key写入协商value后,该协商value就可以指向映射表中的缺页key。需要说明的是,所述缺页key的缺页value最初可以为空,后续该缺页value的value值需要由内核态程序写入(这一过程将在后面实施例中进行说明)。
以下结合图2所示的Map的示意图,假设第一个key为协商key,对应的协商value为X,那么在Map中该协商value对应的缺页key即为GPA0处的key=X。
当Hypervisor写入了协商value后,Hypervisor还需要针对缺页key构建虚拟化缺页,这样当eBPF内核态程序后续在缺页key对应的缺页value写入任何数据时均可以触发虚拟化缺页。
上述针对缺页key构建虚拟化缺页的方式可以是,将缺页key的虚拟地址从页表中去除。所述页表是管理虚拟地址与物理地址的映射关系的表。此外,Hypervisor在将缺页key的虚拟地址从页表中去除后,为了保持虚拟化缺页,需要拦截添加针对缺页key的虚拟地址的映射。
当Hypervisor写入了协商value后,对于eBPF的内核态程序来说就可以使用Hypercall功能,以间接实现Hypercall的调用。
在实现时,eBPF的内核态程序可以接收例如来自用户态程序发起的指令,如果该指令需要由Hypervisor执行,则内核态程序需要使用Hypercall。以下将需要使用Hypercall的指令称为Hypercall指令。
内核态程序响应于Hypercall指令,首先需要读取映射表中的协商key对应的协商value。
然后,以所述协商value为索引,查询所述映射表中的所述协商value指向的缺页key。
最后,将所述Hypercall指令中指定的Hypercall的功能类型作为value值写入所述缺页key对应的缺页value中,从而触发虚拟化缺页。
相应地,Hypervisor可以响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址,并判断所述虚拟化缺页的内存地址是否和缺页key对应的内存地址一致;
如果所述虚拟化缺页的内存地址和缺页key对应的内存地址一致,则Hypervisor可以确定eBPF内核态程序的确发起了Hypercall调用,进而可以以所述协商value为索引,查询所述映射表中的所述协商value指向的缺页key。
由于,此时缺页key对应的缺页value中已经被内核态程序写入了表示Hypercall的功能类型的value值;因此,通过读取缺页key对应的缺页value,就可以确定当前需要执行哪种Hypercall功能类型的Hypercall,进而完成Hypercall的执行。
应用上述实施例,eBPF的内核态程序并非直接调用Hypercall,而是通过设置映射表中的协商key和缺页key,建立协商key对应的协商value与缺页key的对应关系;进而利用虚拟化缺页技术将缺页key映射的缺页value作为Hypercall功能类型的数据传递载体,以实现内核态程序和Hypervisor之间的信息交互;最终使得Hypervisor执行传递的Hypercall功能类型的Hypercall;这其实是一种间接实现Hypercall的方式。
一方面,缺页value可以写入任意的Hypercall功能类型,从而可以为eBPF的内核态程序提供全功能类型的Hypercall。
另一方面,由于上述间接实现Hypercall的方式无需修改虚拟机的内核源代码,因此可以作为通用的eBPF的内核态程序的超级调用方案进行普及使用。
在实际应用中,一些业务需要传输特定参数才能正确执行,同样的在调用Hypercall时也存在传输参数的需求。而由于映射表中缺页value已经用于写入Hypercall的功能类型,无法再用于传递Hypercall的参数,因而上述实施例只能提供无参数的Hypercall;而无法提供带参数的Hypercall。
为了解决这一问题,本说明书还提供了下面的实施例以实现增强型包过滤器中内核态程序的带参数的Hypercall,并且这种Hypercall可以支持传递任意个数的参数。
具体地,映射表中可以设置多个缺页key,不同缺页key可以用于表示不同的个数参数;相应地,不同的缺页key也需要写入到不同的协商key对应的协商value中;以及设置用于写入不同参数的参数key。与协商key和缺页key类似的,参数key也可以由内核态程序和Hypervisor协商后确定。
在上述步骤1.6中,还可以包括:
在所述超级调用指令中还指定有超级调用的至少1个参数时,所述内核态程序从所述映射表中的第一个参数键开始、将所述至少1个参数依次写入到至少1个参数键映射的参数值,以使1个参数值对应1个参数。
该示例中,对于内核态程序来说,需要根据Hypercall指令中参数的参数个数,读取对应的协商value。此外,内核态程序除了需要将所述Hypercall指令中指定的待执行Hypercall的功能类型作为value值写入协商value指向的缺页key映射的缺页value,还需要从第一个参数key开始、将所述至少1个参数作为value值依次写入到至少1个参数key映射的参数value中,以使1个参数value对应1个参数。
相应地,在上述步骤2.6中,还可以包括:
所述虚拟机监控器基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值。
该示例中,对于Hypervisor来说,根据虚拟化缺页的内存地址就可以判断是带几个参数的Hypercall;然后可以从映射表中第一个参数key开始依次读取所述参数个数的参数key,以获取每个参数key映射的参数value;最后基于所述参数value指示的参数和所述缺页value指示的功能类型执行该功能类型的Hypercall。
依然结合图2所示的Map的示意图加以说明。假设缺页key=X对应的内存地址GPA0表示无参数,缺页key=X+1对应内存地址GPA1表示有1个参数,缺页key=X+2对应内存地址GPA2表示有2个参数;
那么,如果Hypercall指令为没有参数的Hypercall_type1功能类型;那么,eBPF内核态程序可以读取无参数的协商key=0对应的value=X,从而向缺页key=X对应的缺页value中写入Hypercal_typel,以触发虚拟化缺页。Hypervisor获取到虚拟化缺页的内存地址GPA0,表明是无参数的Hypercall,因此无需读取参数,只需要基于该协商value指示的Hypercall_type1功能类型执行无参数的Hypercall。
再例如,如果Hypercall指令为带一个参数的Hypercall_type2功能类型;那么,eBPF内核态程序可以读取一个参数对应的协商key=1的value=X+1,从而向缺页key=X+1对应的的缺页value中写入Hypercal_type2,以及向第一个参数key=Y对应的参数value中写入参数1,以触发虚拟化缺页。Hypervisor获取到虚拟化缺页的内存地址GPA1,表明是一个参数的Hypercall,因此需要从参数key=Y对应的参数value中读取参数1,从缺页key=X+1对应的缺页value中读取Hypercall_type2功能类型;最后基于参数1和Hypercall_type3功能类型执行Hypercall。
再例如,如果Hypercall指令为带二个参数的Hypercall_type3功能类型;那么,eBPF内核态程序可以读取二个参数对应的协商key=2的value=X+2,从而向缺页key=X+2对应的缺页value中写入Hypercal_type3,以及向第一个参数key=Y对应的参数value中写入参数1,向第二个参数key=Y+1对应的参数value中写入参数2,以触发虚拟化缺页。Hypervisor获取到虚拟化缺页的内存地址GPA2,表明是二个参数的Hypercall,因此需要分别从参数key=Y和参数key=Y+1对应的参数value中读取参数1和参数2,从缺页key=X+2对应的缺页value中读取Hypercall_type3功能类型;最后基于参数1、参数2和Hypercall_type3功能类型执行Hypercall。
同理,对于Hypercall指令中有三个参数、四个参数、……都做相似处理,这里不再进行赘述。
应该上述示例,通过在映射表中设置参数key,将参考key映射的参考value作为Hypercall参数的数据传递载体,配合缺页value,不仅可以实现全功能的Hypercall,而且可以支持不同参数个数的Hypercall。
以下参考图3所示的以Hypervisor为执行主体的方法实施例的示意图,所述方法包括:
步骤310,响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
步骤320,判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
步骤330,如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
步骤340,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
上述图3所示实施例以及后续可选的实施例都可以对应前述图1所示实施例,具体步骤细节可以参考图1相关的实施例,这里不再进行赘述。
应用上述实施例,通过设置映射表中的协商key和缺页key,并建立协商key对应的协商value与缺页key的对应关系;进而利用虚拟化缺页技术将缺页key映射的缺页value作为Hypercall功能类型的数据传递载体,以实现内核态程序和Hypervisor之间的信息交互。
具体地,在内核态程序将Hypercall功能类型写入缺页key映射的缺页value后,触发虚拟化缺页;而Hypervisor响应于虚拟化缺页,读取内核态程序写入缺页key映射的缺页value中的Hypercall功能类型,从而执行该Hypercall功能类型的Hypercall。如此实现eBPF的内核态程序间接的调用Hypercall。
一方面,缺页value可以写入任意的Hypercall功能类型,从而可以为eBPF的内核态程序提供全功能类型的Hypercall。
另一方面,由于上述间接实现Hypercall的方式无需修改虚拟机的内核源代码,因此可以作为通用的增强型包过滤器的内核态程序的超级调用方案使用。
在一示例性可选的实施例中,所述步骤310中,响应于内核态程序的触发的虚拟化缺页,可以包括:
响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。
应该上述示例,通过设置缺页key,当eBPF的内核态程序在缺页key映射的缺页value写入任何数据时均可以触发虚拟化缺页,从而利用缺页value作为Hypercall功能类型的数据传递载体,以实现eBPF的内核态程序和虚拟机的Hypervisor之间的信息交互。
在一示例性可选的实施例中,不同缺页键用于表示不同的参数个数;在图3所示实施例的基础上,还可以包括:
基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;
所述步骤340,基于所述缺页键指示的功能类型执行该功能类型的超级调用,可以包括:
基于所述参数值指示的参数和所述缺页值指示的功能类型执行该功能类型的超级调用。
应该上述示例,通过在映射表中设置参数key,将参考key映射的参考value作为Hypercall参数的数据传递载体,配合缺页value,可以实现带参数的Hypercall,并且支持传递任意个数的参数。
在一示例性可选的实施例中,在上述步骤310之前,还可以包括:
基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;
将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
应该上述示例,Hypervisor通过虚拟机的身份信息来获取eBPF的映射表,进而写入用于指向缺页key的协商value;而在协商value写入后,内核态程序就可以具备Hypercall功能,进而可以实现内核态程序的Hypercall。
以下参考图4所示的以内核态程序为执行主体的方法实施例的示意图,所述方法包括:
步骤410,响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;
步骤420,基于所述协商值查询所述映射表中映射的缺页键;
步骤430,将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页;以使所述虚拟机监控器响应于所述虚拟化缺页,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
上述图4所示实施例以及后续可选的实施例都可以对应前述图1所示实施例,具体步骤细节可以参考图1相关的实施例,这里不再进行赘述。
应用上述实施例,通过设置映射表中的协商key和缺页key,并建立协商key对应的协商value与缺页key的对应关系;进而利用虚拟化缺页技术将缺页key映射的缺页value作为Hypercall功能类型的数据传递载体,以实现内核态程序和Hypervisor之间的信息交互。
具体地,在内核态程序将Hypercall功能类型写入缺页key映射的缺页value后,触发虚拟化缺页;而Hypervisor响应于虚拟化缺页,读取内核态程序写入缺页key映射的缺页value中的Hypercall功能类型,从而执行该Hypercall功能类型的Hypercall。如此实现eBPF的内核态程序间接的调用Hypercall。
一方面,缺页value可以写入任意的Hypercall功能类型,从而可以为eBPF的内核态程序提供全功能类型的Hypercall。
另一方面,由于上述间接实现Hypercall的方式无需修改虚拟机的内核源代码,因此可以作为通用的增强型包过滤器的内核态程序的超级调用方案使用。
在一示例性可选的实施例中,所述方法还包括:
在所述超级调用指令中还指定有超级调用的至少1个参数时,从所述Map中的第一个参数key开始、将所述至少1个参数作为value值依次写入到至少1个参数key对应的参数value中,以使1个参数value对应1个参数;
所述以使所述虚拟机监控器基于所述缺页value指示的功能类型执行该功能类型的超级调用,包括:
以使所述虚拟机监控器基于所述参数value指示的参数和所述缺页value指示的功能类型执行该功能类型的超级调用。
应该上述示例,通过在Map中设置参数key,将参考key对应的参考value作为Hypercall参数的数据传递载体,配合缺页value,可以实现带参数的Hypercall,并且支持传递任意个数的参数。
该实施例对应了前述图1所述实施例,具体步骤细节可以参考图1实施例,在本实施例中不再进行赘述。
与前述增强型包过滤器的内核态程序的超级调用方法实施例相对应,本说明书还提供了增强型包过滤器的内核态程序的超级调用装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书增强型包过滤器的内核态程序的超级调用装置所在设备的一种硬件结构图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据增强型包过滤器的内核态程序的超级调用实际功能,还可以包括其他硬件,对此不再赘述。
请参见图6,为本说明书一实施例提供的增强型包过滤器的内核态程序的超级调用装置的模块图。所述装置对应了图3所示实施例,应用于虚拟机监控器,所述装置包括:
响应单元610,响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
判断单元620,判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
读取单元630,如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
调用单元640,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述响应单元610,进一步用于响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。
可选的,不同缺页键用于表示不同的参数个数;
所述读取单元630,还用于基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;
所述调用单元640,进一步用于基于所述参数值指示的参数和所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述装置还包括:
写入单元,基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
请参见图7,为本说明书一实施例提供的增强型包过滤器的内核态程序的超级调用装置的模块图。所述装置对应了图4所示实施例,应用于内核态程序,所述装置包括:
响应单元710,响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;
查询单元720,基于所述协商值查询所述映射表中映射的缺页键;
调用单元730,将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页;以使所述虚拟机监控器响应于所述虚拟化缺页,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
可选的,所述调用单元730,还用于在所述超级调用指令中还指定有超级调用的至少1个参数时,从所述映射表中的第一个参数键开始、将所述至少1个参数依次写入到至少1个参数键映射的参数值,以使1个参数值对应1个参数。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图6和图7描述的区块链中智能合约的执行装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一增强型包过滤器的内核态程序的超级调用的实施例。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Applicat ion SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
Claims (10)
1.一种增强型包过滤器的内核态程序的超级调用方法,应用于虚拟机监控器,所述方法包括:
响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
基于所述缺页值指示的功能类型执行该功能类型的超级调用。
2.根据权利要求1所述的方法,所述响应于内核态程序的触发的虚拟化缺页,包括:
响应于内核态程序将超级调用的功能类型写入映射表中的缺页键映射的缺页值后触发的虚拟化缺页。
3.根据权利要求1所述的方法,不同缺页键用于表示不同的参数个数;所述方法还包括:
基于所述缺页键表示的参数个数,从所述映射表中的第一个参数键开始依次读取所述参数个数的参数键,以获取每个参数键映射的参数值;其中,所述参数值为所述内核态程序写入的超级调用的参数,1个参数值对应1个参数;
所述基于所述缺页键指示的功能类型执行该功能类型的超级调用,包括:
基于所述参数值指示的参数和所述缺页值指示的功能类型执行该功能类型的超级调用。
4.根据权利要求1所述的方法,所述方法还包括:
基于所述虚拟机监控器所在的虚拟机的身份信息,获取所述虚拟机中的增强型包过滤器维护的映射表;
将所述映射表中的协商键映射的协商值修改为缺页键;以使所述映射表维护的所述协商键映射的协商值指示所述缺页键;其中,所述协商键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键。
5.一种增强型包过滤器的内核态程序的超级调用方法,应用于内核态程序,所述方法包括:
响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;
基于所述协商值查询所述映射表中映射的缺页键;
将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页;以使所述虚拟机监控器响应于所述虚拟化缺页,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
6.根据权利要求5所述的方法,所述方法还包括:
在所述超级调用指令中还指定有超级调用的至少1个参数时,从所述映射表中的第一个参数键开始、将所述至少1个参数依次写入到至少1个参数键映射的参数值,以使1个参数值对应1个参数。
7.一种增强型包过滤器的内核态程序的超级调用装置,应用于虚拟机监控器,所述装置包括:
响应单元,响应于内核态程序触发的虚拟化缺页,获取触发所述虚拟化缺页的内存地址;
判断单元,判断所述虚拟化缺页的内存地址是否和映射表中的缺页键对应的内存地址一致;其中,所述映射表记录了键值对之间的映射关系,所述缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键,所述映射表中的每个键唯一对应一个内存地址;
读取单元,如果所述虚拟化缺页的内存地址和缺页键对应的内存地址一致,从所述映射表中读取所述缺页键映射的缺页值;其中,所述缺页值包括所述内核态程序在触发所述虚拟化缺页之前写入的超级调用的功能类型;
调用单元,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
8.一种增强型包过滤器的内核态程序的超级调用装置,应用于内核态程序,所述装置包括:
响应单元,响应于超级调用指令,读取增强型包过滤器维护的映射表中的协商键映射的协商值;其中,所述映射表记录了键值对之间的映射关系,所述协商值包括虚拟机监控器预先写入的用于指示缺页键的值;所述协商键和缺页键为所述内核态程序和所述虚拟机监控器共同在所述映射表中确定的键;
查询单元,基于所述协商值查询所述映射表中映射的缺页键;
调用单元,将所述超级调用指令中指定的超级调用的功能类型写入所述缺页键映射的缺页值,从而触发虚拟化缺页;以使所述虚拟机监控器响应于所述虚拟化缺页,基于所述缺页值指示的功能类型执行该功能类型的超级调用。
9.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-6中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249016.0A CN114691391A (zh) | 2022-03-14 | 2022-03-14 | 增强型包过滤器的内核态程序的超级调用方法及装置 |
PCT/CN2023/080339 WO2023174128A1 (zh) | 2022-03-14 | 2023-03-08 | 增强型包过滤器的内核态程序的超级调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249016.0A CN114691391A (zh) | 2022-03-14 | 2022-03-14 | 增强型包过滤器的内核态程序的超级调用方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691391A true CN114691391A (zh) | 2022-07-01 |
Family
ID=82139566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210249016.0A Pending CN114691391A (zh) | 2022-03-14 | 2022-03-14 | 增强型包过滤器的内核态程序的超级调用方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114691391A (zh) |
WO (1) | WO2023174128A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023174128A1 (zh) * | 2022-03-14 | 2023-09-21 | 阿里巴巴(中国)有限公司 | 增强型包过滤器的内核态程序的超级调用方法及装置 |
WO2024021995A1 (zh) * | 2022-07-25 | 2024-02-01 | 华为技术有限公司 | 内存访问方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853597A (zh) * | 2014-02-21 | 2014-06-11 | 北京神舟航天软件技术有限公司 | 实现嵌入式虚拟机平台高频率数据采集方法 |
CN103885838A (zh) * | 2014-03-27 | 2014-06-25 | 北京大学 | 一种获取虚拟机内存工作集的方法及内存优化分配方法 |
US20150199283A1 (en) * | 2011-10-03 | 2015-07-16 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301082B (zh) * | 2016-04-15 | 2020-10-09 | 南京中兴软件有限责任公司 | 一种实现操作系统完整性保护的方法和装置 |
US11336756B2 (en) * | 2017-11-06 | 2022-05-17 | Intel Corporation | Technologies for programming flexible accelerated network pipeline using eBPF |
CN114691391A (zh) * | 2022-03-14 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 增强型包过滤器的内核态程序的超级调用方法及装置 |
-
2022
- 2022-03-14 CN CN202210249016.0A patent/CN114691391A/zh active Pending
-
2023
- 2023-03-08 WO PCT/CN2023/080339 patent/WO2023174128A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150199283A1 (en) * | 2011-10-03 | 2015-07-16 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
CN103853597A (zh) * | 2014-02-21 | 2014-06-11 | 北京神舟航天软件技术有限公司 | 实现嵌入式虚拟机平台高频率数据采集方法 |
CN103885838A (zh) * | 2014-03-27 | 2014-06-25 | 北京大学 | 一种获取虚拟机内存工作集的方法及内存优化分配方法 |
Non-Patent Citations (2)
Title |
---|
周丹红: "云计算虚拟化平台的内存资源全局优化研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 March 2017 (2017-03-15), pages 139 - 307 * |
曹欣: "半虚拟化技术分析与研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 July 2008 (2008-07-15), pages 138 - 725 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023174128A1 (zh) * | 2022-03-14 | 2023-09-21 | 阿里巴巴(中国)有限公司 | 增强型包过滤器的内核态程序的超级调用方法及装置 |
WO2024021995A1 (zh) * | 2022-07-25 | 2024-02-01 | 华为技术有限公司 | 内存访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023174128A1 (zh) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360696B2 (en) | System startup method and apparatus, electronic device, and storage medium | |
CN1258702C (zh) | 为不同的指令集结构所编写的固件之间进行通信的方法 | |
US9558016B2 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
CN114691391A (zh) | 增强型包过滤器的内核态程序的超级调用方法及装置 | |
US20080229046A1 (en) | Unified support for solid state storage | |
RU2580016C1 (ru) | Способ передачи управления между областями памяти | |
CN114327777B (zh) | 确定全局页目录的方法、装置、电子设备及存储介质 | |
CN110286856B (zh) | 卷克隆方法、装置、电子设备及机器可读存储介质 | |
US7200705B2 (en) | Method of checkpointing state of virtual memory for process | |
CN110716845A (zh) | 一种Android系统的日志信息读取的方法 | |
US20240053998A1 (en) | Method and apparatus for processing inter-core communication, and computer system | |
CN116126581B (zh) | 内存故障处理方法、装置、系统、设备及存储介质 | |
US20240126567A1 (en) | Data processing system, method, and apparatus | |
RU2510073C2 (ru) | Управление дескриптором типа для замороженных объектов | |
CN104685443A (zh) | 锁定引导数据用以更快引导 | |
CN110597597B (zh) | 硬件的虚拟化方法、系统、装置及存储介质 | |
CN111666036B (zh) | 一种迁移数据的方法、装置及系统 | |
CN112015352B (zh) | 存储块设备识别装置、系统和存储块设备读写方法 | |
US11593113B2 (en) | Widening memory access to an aligned address for unaligned memory operations | |
US7934073B2 (en) | Method for performing jump and translation state change at the same time | |
CN115774701A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
CN103246611A (zh) | 一种文件处理方法及系统 | |
US20230161650A1 (en) | Method and apparatus for inter-process communication, and computer storage medium | |
US6298437B1 (en) | Method for vectoring pread/pwrite system calls | |
CN116610459A (zh) | 进程间数据通信方法、装置、存储介质及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |