1.一种基于mpk技术的微内核模块间通讯方法,其特征在于,包括:
基于mpk技术的执行域步骤:通过mpk技术控制内存域的读写权限,执行域之间资源与状态互相隔离;
内核模块间通讯的关卡函数步骤:关卡函数通过wrpkru指令修改当前时刻对内存域的读写权限,进行执行域的切换;在被请求服务的内核模块所属的执行域中,在关卡函数中以函数调用的形式请求该内核模块的服务。
2.根据权利要求1所述的基于mpk技术的微内核模块间通讯方法,其特征在于,所述基于mpk技术的执行域步骤:
每个执行域对应一个内核模块,内核模块有独立的寄存器状态以及独立的堆栈,以及可供执行的代码;
内核模块中存在一组入口函数,供进程间通讯使用。
3.根据权利要求2所述的基于mpk技术的微内核模块间通讯方法,其特征在于,所述基于mpk技术的执行域步骤:
每个内核模块对应着一组对所有内存域的读写权限,内核模块至少可以读写自身代码及堆栈所处的内存域,内核拥有所有内存域的读写权限;
内核以外的内核模块不能读写其他执行域代码及堆栈所在的内存域。
4.根据权利要求3所述的基于mpk技术的微内核模块间通讯方法,其特征在于,所述基于mpk技术的执行域步骤:
多个执行域可对一个内存域同时拥有读写权限,用于在通讯时传递数据。
5.根据权利要求1所述的基于mpk技术的微内核模块间通讯方法,其特征在于,所述内核模块间通讯的关卡函数步骤:
所述关卡函数,在请求目标内核模块服务前进行寄存器状态的保存和清空,并将栈切换为请求处理者栈;
在请求处理结束后,恢复请求发起者的寄存器状态,并将栈切换为请求发起者栈。
6.根据权利要求5所述的基于mpk技术的微内核模块间通讯方法,其特征在于,所述内核模块间通讯的关卡函数步骤:
执行域切换过程中的身份验证方法,包括:寄存器状态验证和内存访问权限验证;
寄存器状态验证:在执行域切换前,使用内核随机生成的标记值对寄存器进行标记,并在执行域切换后检查标记过的寄存器,如果值与标记值一致,则寄存器状态验证通过;如果值与标记值不一致,则认为身份验证失败,抛出错误进行相应错误处理。
内存访问权限验证:在执行域切换前,访问请求发起者拥有读写权限的内存域。如果能够成功进行读操作,则内存访问权限验证通过;如果不能成功进行读操作,则认为内存访问权限验证失败,抛出错误进行相应错误处理。
7.一种基于mpk技术的微内核模块间通讯系统,其特征在于,包括:
基于mpk技术的执行域模块:通过mpk技术控制内存域的读写权限,执行域之间资源与状态互相隔离;
内核模块间通讯的关卡函数模块:关卡函数通过wrpkru指令修改当前时刻对内存域的读写权限,进行执行域的切换;在被请求服务的内核模块所属的执行域中,在关卡函数中以函数调用的形式请求该内核模块的服务。
8.根据权利要求7所述的基于mpk技术的微内核模块间通讯系统,其特征在于,所述基于mpk技术的执行域模块:
每个执行域对应一个内核模块,内核模块有独立的寄存器状态以及独立的堆栈,以及可供执行的代码;
内核模块中存在一组入口函数,供进程间通讯使用;
所述基于mpk技术的执行域模块:
每个内核模块对应着一组对所有内存域的读写权限,内核模块至少可以读写自身代码及堆栈所处的内存域,内核拥有所有内存域的读写权限;
内核以外的内核模块不能读写其他执行域代码及堆栈所在的内存域;
所述基于mpk技术的执行域模块:
多个执行域可对一个内存域同时拥有读写权限,用于在通讯时传递数据。
9.根据权利要求7所述的基于mpk技术的微内核模块间通讯系统,其特征在于,所述内核模块间通讯的关卡函数模块:
所述关卡函数,在请求目标内核模块服务前进行寄存器状态的保存和清空,并将栈切换为请求处理者栈;
在请求处理结束后,恢复请求发起者的寄存器状态,并将栈切换为请求发起者栈;
所述内核模块间通讯的关卡函数模块:
执行域切换过程中的身份验证方法,包括:寄存器状态验证和内存访问权限验证;
寄存器状态验证:在执行域切换前,使用内核随机生成的标记值对寄存器进行标记,并在执行域切换后检查标记过的寄存器,如果值与标记值一致,则寄存器状态验证通过;如果值与标记值不一致,则认为身份验证失败,抛出错误进行相应错误处理。
内存访问权限验证:在执行域切换前,访问请求发起者拥有读写权限的内存域。如果能够成功进行读操作,则内存访问权限验证通过;如果不能成功进行读操作,则认为内存访问权限验证失败,抛出错误进行相应错误处理。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的基于mpk技术的微内核模块间通讯方法的步骤。