本发明涉及计算机,尤其涉及一种内核访问方法、装置、设备、存储介质及计算机程序产品。
背景技术:
1、内核作为操作系统的核心组件,不仅管理着各种影响整个系统运行的资源,同时以系统调用的形式向应用程序提供标准的访问内核管理资源的方法。这些系统调用接口往往通过库函数的形式暴露给所有的应用程序,应用程序通过调用这些库函数可以直接访问内核资源。但是,如果应用程序通过库函数恶意访问内核资源,最终会导致内核无法提供正常的服务,影响整个操作系统的正常运行。
技术实现思路
1、本发明所要解决的技术问题在于,提供一种内核访问方法、装置、设备、存储介质及计算机程序产品,引入服务管理程序对应用程序通过系统调用接口访问内核资源加以控制,从而保证内核资源的合理使用,有效提高整个系统的可靠性和可用性。
2、为了实现上述目的,本发明实施例提供了一种内核访问方法,应用于服务管理程序,所述方法包括:
3、接收应用程序发送的内核访问请求,并获取所述应用程序的资源配置信息;
4、根据所述资源配置信息对所述内核访问请求进行合法性校验;
5、若所述内核访问请求合法,则向内核发送系统调用请求,当所述内核通过上下文校验后,接收所述内核发送的访问结果,并将所述访问结果发送至所述应用程序;
6、若所述内核访问请求不合法,则拒绝所述应用程序的所述内核访问请求。
7、作为上述方案的改进,所述服务管理程序运行在用户态;当操作系统的内核启动完成后,所述服务管理程序作为第一个应用程序被所述内核自动加载运行,且所述内核为所述服务管理程序分配固定的标识符为预设值。
8、作为上述方案的改进,所述应用程序携带有资源描述语言rdl数据区,所述rdl数据区包括请求的内核资源类型以及数量,则所述获取所述应用程序的资源配置信息,具体为:
9、解析所述应用程序的所述rdl数据区,得到所述应用程序的资源配置信息。
10、作为上述方案的改进,所述应用程序由所述服务管理程序启动,若所述服务管理程序启动所述应用程序时,所述应用程序未携带所述rdl数据区,则所述服务管理程序拒绝启动所述应用程序。
11、作为上述方案的改进,所述内核接收到所述服务管理程序发送的所述系统调用请求后,校验当前运行的标识符是否为所述预设值;
12、对所述应用程序的调用栈进行分析,判断所述内核访问请求是否已通过所述合法性校验;
13、若二者均满足,则处理所述系统调用请求,并向所述服务管理程序发送访问结果。
14、作为上述方案的改进,所述应用程序与所述服务管理程序之间通过进程间通信方式进行通信。
15、本发明实施例还提供了一种内核访问装置,包括:
16、接收模块,用于接收应用程序发送的内核访问请求,并获取所述应用程序的资源配置信息;
17、校验模块,用于根据所述资源配置信息对所述内核访问请求进行合法性校验;
18、访问模块,用于若所述内核访问请求合法,则向内核发送系统调用请求,当所述内核通过上下文校验后,接收所述内核发送的访问结果,并将所述访问结果发送至所述应用程序;
19、拒绝模块,用于若所述内核访问请求不合法,则拒绝所述应用程序的所述内核访问请求。
20、本发明实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的内核访问方法。
21、本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任一项所述的内核访问方法。
22、本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令被处理器执行时实现上述任一项所述的内核访问方法。
23、相对于现有技术,本发明实施例提供的一种内核访问方法、装置、设备、存储介质及计算机程序产品的有益效果在于:通过引入服务管理程序,接收应用程序发送的内核访问请求,并获取所述应用程序的资源配置信息;根据所述资源配置信息对所述内核访问请求进行合法性校验;若所述内核访问请求合法,则向内核发送系统调用请求,当所述内核通过上下文校验后,接收所述内核发送的访问结果,并将所述访问结果发送至所述应用程序;若所述内核访问请求不合法,则拒绝所述应用程序的所述内核访问请求。本发明实施例引入服务管理程序,不增加微内核实现复杂度,不降低应用程序可用系统调用数量,通过服务管理程序对应用程序通过系统调用接口访问内核资源加以控制,保证所有的应用的程序都无法绕过服务管理程序通过系统调用访问内核资源,保证了系统内核资源不会被应用程序恶意申请而导致内核资源耗尽,极大的提高了内核的可靠性与可用性。
1.一种内核访问方法,其特征在于,应用于服务管理程序,所述方法包括:
2.如权利要求1所述的内核访问方法,其特征在于,所述服务管理程序运行在用户态;当操作系统的内核启动完成后,所述服务管理程序作为第一个应用程序被所述内核自动加载运行,且所述内核为所述服务管理程序分配固定的标识符为预设值。
3.如权利要求1所述的内核访问方法,其特征在于,所述应用程序携带有资源描述语言rdl数据区,所述rdl数据区包括请求的内核资源类型以及数量,则所述获取所述应用程序的资源配置信息,具体为:
4.如权利要求3所述的内核访问方法,其特征在于,所述应用程序由所述服务管理程序启动,若所述服务管理程序启动所述应用程序时,所述应用程序未携带所述rdl数据区,则所述服务管理程序拒绝启动所述应用程序。
5.如权利要求2所述的内核访问方法,其特征在于,所述内核接收到所述服务管理程序发送的所述系统调用请求后,校验当前运行的标识符是否为所述预设值;
6.如权利要求1所述的内核访问方法,其特征在于,所述应用程序与所述服务管理程序之间通过进程间通信方式进行通信。
7.一种内核访问装置,其特征在于,应用于服务管理程序,包括:
8.一种终端设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,且所述计算机程序被配置为由所述处理器执行,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的内核访问方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其中,所述计算机可读存储介质所在设备执行所述计算机程序时,实现如权利要求1至6中任意一项所述的内核访问方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令被处理器执行时实现如权利要求1至6中任意一项所述的内核访问方法。