[发明专利]用户程序运行方法、系统、装置、设备和存储介质在审
申请号: | 202111406718.7 | 申请日: | 2021-11-24 |
公开(公告)号: | CN114168362A | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 程书意;毛文安;冯富秋 | 申请(专利权)人: | 阿里巴巴(中国)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/4401 |
代理公司: | 北京太合九思知识产权代理有限公司 11610 | 代理人: | 刘戈;孙明子 |
地址: | 310052 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用户 程序 运行 方法 系统 装置 设备 存储 介质 | ||
本发明实施例提供一种用户程序运行方法、系统、装置、设备和存储介质,该方法包括:响应于用户程序的内核态运行操作,通过操作系统中的钩子函数获取用户程序对应的机器码文件和待探测函数。之后,又响应于操作系统中内核对此待探测函数的执行操作,将用户程序对应的机器码文件写入内核部署的预设探测框架中,从而得到内核模块,并利用内核模块使用户程序运行在操作系统的内核态中。在上述方法中,用于执行用户程序的内核模块可以通过文件写入的方式实时生成的,因此,对于未预先设置有内核模块的内核来说,在不对用户程序进行修改的情况下,也可以使用户程序该内核中运行,即使用户程序在操作系统内核态下的正常运行。
技术领域
本发明涉及计算机技术领域,尤其涉及一种用户程序运行方法、系统、装置、设备和存储介质。
背景技术
Linux是一种免费使用和自由传播的类UNIX操作系统。在Linux操作系统中安装的用户程序,比如eBPF程序可以在操作系统的用户态下或者内核态下运行。并且随着Linux操作系统中内核版本的升级,由于高版本内核中会预先部署有相应的内核模块,因此,可以直接利用此内核模块使eBPF程序运行在操作系统的内核态下,也即是使eBPF程序运行在高版本内核中。
但对于部署有低版本内核的操作系统,eBPF程序是无法运行在操作系统的内核态下,即eBPF程序是无法运行在低版本内核中运行。此时,如何使eBPF程序运行在低版本内核中就成为一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种用户程序运行方法、系统、装置、设备和存储介质,用以使用户程序能够在低版本内核中运行。
第一方面,本发明实施例提供一种用户程序运行方法,包括:
响应于用户程序的内核态运行操作,根据操作系统中的钩子函数,获取所述用户程序对应的机器码文件和待探测函数;
响应于所述操作系统中内核对所述待探测函数的执行,将所述机器码文件写入所述内核部署的预设探测框架,以得到与所述用户程序对应的内核模块;
根据所述内核模块,在所述操作系统的内核态下运行所述用户程序。
第二方面,本发明实施例提供一种用户程序运行系统,部署在操作系统中,所述用户程序安装于所述操作系统内;所述用户程序运行系统包括:所述操作系统中的钩子函数以及部署在所述操作系统的内核中的预设探测框架;
所述钩子函数,用于响应于所述用户程序的内核态运行操作,获取所述用户程序对应的机器码文件和待探测函数;
所述用户程序运行系统,用于响应于所述操作系统的内核对所述待探测函数的执行,将所述机器码文件写入所述预设探测框架,以得到与所述用户程序对应的内核模块;根据所述内核模块,在所述操作系统的内核态下运行所述用户程序。
第三方面,本发明实施例提供一种用户程序运行装置,包括:
获取模块,用于响应于用户程序的内核态运行操作,根据操作系统中的钩子函数,获取所述用户程序对应的机器码文件和待探测函数;
写入模块,用于响应于所述操作系统中内核对所述待探测函数的执行,将所述机器码文件写入所述内核部署的预设探测框架,以得到与所述用户程序对应的内核模块;
运行模块,用于根据所述内核模块,在所述操作系统的内核态下运行所述用户程序。
第四方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的用户程序运行方法。该电子设备还可以包括通信接口,用于与其他设备或通信网络通信。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴(中国)有限公司,未经阿里巴巴(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111406718.7/2.html,转载请声明来源钻瓜专利网。