【技术实现步骤摘要】
一种进程间的函数调用方法及相关设备
[0001]本申请实施例涉及计算机安全隔离
,尤其涉及一种进程间的函数调用方法及相关设备。
技术介绍
[0002]基于微内核的操作系统架构(简称微内核架构)被广泛使用在云平台、嵌入式设备、移动设备、无人驾驶等场景中。微内核架构将自己真正的核心功能减少到非常少,将传统的操作系统内核(例如宏内核架构Linux)中的众多的组件,比如系统程序等都放在用户态的进程中运行。
[0003]目前,业界操作系统架构主要分微内核架构和宏内核架构,微内核架构(QNX,seL4,fuchsia等)的特点是内核本身很小,很多系统服务功能(比如文件系统、内存管理、网络、驱动等)作为单独的服务进程(下称系统服务)放在用户态运行,内核态只保留关键的功能{比如中断处理、定时器功能、进程间通信(inter
‑
process communication,IPC)、内存映射等}。在微内核架构中,用户进程与系统服务进程之间主要通过IPC的方式进行通信,进而实现进程之间的安全隔离。对于用户进程需要调用系统服务进程中函数的场景中,用户进程会通过IPC的方式将函数的入参数据发送给系统服务进程。该过程中会进行入参数据拷贝,通常是两次入参数据拷贝,第一次将入参数据从用户进程拷贝至内核数据段,第二次将入参数据从内核数据段拷贝至系统服务进程数据段,进而系统服务进程根据该入参数据运行函数。
[0004]然而,上述基于IPC调用函数的方式会随着传入数据量的增加使得开销增加,从而影响设备性能。
...
【技术保护点】
【技术特征摘要】
1.一种进程间的函数调用方法,其特征在于,所述方法应用于计算机设备,所述方法包括:第一进程基于第一函数触发第一系统调用,所述第一函数为用户态中所有进程可读可执行的函数,所述第一函数用于触发所述第一系统调用与调用第一系统服务进程中的第二函数,所述第一系统调用用于指示所述内核配置所述第一进程对所述第一系统服务进程的物理内存地址空间的第一访问权限,所述物理内存地址空间存储有所述第二函数,所述第二函数为实现所述第一系统服务进程功能的函数;所述第一进程接收所述内核发送的用于响应所述第一系统调用的指示信息,所述指示信息用于指示是否已开启所述第一访问权限;当确定所述指示信息用于指示已开启所述第一访问权限,则所述第一进程基于所述第一函数执行所述第二函数。2.根据权利要求1所述的方法,其特征在于,所述第一函数还用于触发第二系统调用,所述第二系统调用用于所述内核取消所述第一访问权限;所述第一进程执行所述第二函数之后,所述方法还包括:所述第一进程基于所述第一函数触发第二系统调用,所述第二系统调用用于指示所述内核取消所述第一访问权限。3.根据权利要求1或2所述的方法,其特征在于,所述第一访问权限包括:所述第一系统服务进程中代码段的读与执行权限与所述第一系统服务进程中数据段的读写权限;所述第一系统调用还用于触发所述内核配置所述第一进程中代码段的读与执行权限与所述第一进程中数据段的读写权限。4.根据权利要求1至3中任一所述的方法,其特征在于,所述第一进程基于第一函数触发第一系统调用之前,所述方法还包括:所述第一进程获取第一任务,所述第一任务包括所述第一进程执行所述第二函数。5.根据权利要求1至4中任一所述的方法,其特征在于,所述第一进程为用户进程或第二系统服务进程。6.根据权利要求1至5中任一所述的方法,其特征在于,所述第一系统服务进程集成有所述用户态中的至少两个子系统服务进程,所述子系统服务进程为驱动进程、网络管理进程或文件系统管理进程;所述第二函数为所述至少两个子系统服务进程中一个子系统服务进程中的函数,所述第三函数为所述用户态中所有进程可读可执行的函数,所述第三函数用于调用为所述至少两个子系统服务进程中另一个子系统服务进程中的函数;所述第一进程基于所述第一函数执行所述物理内存地址空间中的所述第二函数,包括:所述第一进程通过所述第二函数调用并执行所述第三函数,在所述第一进程未返回所述第一函数之前,所述第一访问权限不变。7.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法应用于微内核架构,所述第一系统服务进程为驱动进程、网络管理进程或文件系统管理进程。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述物理内存地址空间为内存管理单元MMU、内存保护单元MPU或物理地址保护PMP硬件管理的地址空间。9.根据权利要求1至8中任一项所述的方法,其特征在于,所述计算机设备为物联网IOT
设备。10.一种进程间的函数调用方法,其特征在于,所述方法应用于计算机设备,所述方法包括:内核响应第一进程触发的第一系统调用,配置所述第一进程对第一系统服务进程的物理内存地址空间的第一访问权限,所述物理内存地址空间存储有第二函数,所述第二函数为实现所述第一系统服务进程功能的函数,所述第一系统调用用于指示所述内核配置所述第一访问权限;所述内核向所述第一进程发送指示信息,所述指示信息用于指示是否已开启第一所述访问权限,所述第一访问权限用于所述第一进程执行所述第二函数。11.根据权利要求10所述的方法,其特征在于,所述配置所述第一进程对第一系统服务进程的物理内存地址空间的第一访问权限,包括:当确定所述第一进程具有第二访问权限,且所述第一访问权限未开启,则所述内核配置所述第一访问权限,所述指示信息具体用于指示已开启所述第一访问权限,所述第二访问权限为调用所述第二函数的权限。12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:所述内核响应所述第一进程触发的第二系统调用,取消所述第一访问权限,所述第二系统调用用于指示所述内核取消所述第一访问权限。13.根据权利要求10至12中任一所述的方法,其特征在于,所述第一访问权限包括:所述第一系统服务进程中代码段的读与执行权限与所述第一系统服务进程中数据段的读写权限;所述第一系统调用还用于触发所述内核配置所述第一进程中代码段的读与执行权限与所述第一进程中数据段的读写权限。14.根据权利要求10至13中任一所述的方法,其特征在于,所述第一进程为用户进程或第二系统服务进程。15.根据权利要求10至14中任一项所述的方法,其特征在于,所述第一系统服务进程集成有所述用户态中的至少两个子系统服务进程,所述子系统服务进程为驱动进程、网络管理进程或文件系统管理进程;当确定所述第一进程具有所述第二访问权限,且所述第一访问权限已开启,则所述指示信息用于指示已开启所述第一访问权限,且指示第一函数不启用第二系统调用,所述第一函数为用户态中所有进程可读可执行的函数,所述第一函数用于触发所述第一系统调用、调用所述第二函数以及触发所述第二系统调用,所述第二系统调用用于指示所述内核取消所述第一访问权限。16.根据权利要求10至14中任一项所述的方法,其特征在于,所述方法应用于微内核架构,所述第一系统服务进程为驱动进程、网络管理进程或文件系统管理进程。17.根据权利要求10至16中任一项所述的方法,其特征在于,所述物理内存地址空间为内存管理单元MMU、内存保护单元MPU或物理地址保护PMP硬件管理的地址空间。18.根据权利要求10至17中任一项所述的方法,其特征在于,所述计算机设备为物联网IOT设备。19.一种计算机设备,其特征在于,所述计算机设备包括:触发单元,用于基于第一函数触发第一系统调用,所述第一函数为用户态中所有进程
可读可执行的函数,所述第一函数用于触发所述第一系统调用与调用第一系统服务进程中的第二函数,所述第一系统调用用于指示所述内核配置所述第一进程对所述第一系统服务...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。