【技术实现步骤摘要】
一种基于eBPF的Java虚拟机内存访问方法和系统
[0001]本专利技术涉及计算机
,尤其涉及一种基于eBPF的Java虚拟机内存访问方法和系统。
技术介绍
[0002]JVM(Java Virtual Machine)是Java虚拟机的缩写,它是Java程序运行的环境。Java语言的特性之一就是可移植性,JAVA虚拟机为了实现这一特性,提供了一种中间层的抽象,将Java程序从底层的操作系统中解耦出来,使得Java程序可以在不同的操作系统上运行,而不需要修改源代码。
[0003]JVM提供了一种抽象的计算机模型,包括处理器架构、内存模型、指令集、类文件格式等,并提供了一系列的类库和运行时环境来支持Java程序的执行。当Java程序被编译后,生成的不是机器码,而是一种称为字节码的中间代码。JVM会将字节码解释为机器指令,使得Java程序可以在不同的操作系统和硬件平台上运行。
[0004]现有的JVM内存访问通常是在用户层通过应用程序调用JVM内存空间,而后根据操作系统的请求至内核下进行内存数据读取、幅值 ...
【技术保护点】
【技术特征摘要】
1.一种基于eBPF的Java虚拟机内存访问方法,其特征在于,包括:预先提供一eBPF程序,所述eBPF程序配置一包括内核下内存数据的存储区域;所述eBPF程序监控应用层下Java虚拟机的内存空间,以将所述应用层下内存数据映射到所述存储区域;应用程序发出作用于内存数据的操作指令,通过Java虚拟机调用本地方法接口至内存空间;所述eBPF程序通过所述存储区域的映射获取所述操作指令并在内核下执行,将执行结果返回至所述Java虚拟机的内存空间;所述应用程序通过访问所述Java虚拟机的内存空间获得所述操作指令的执行结果。2.根据权利要求1所述的访问方法,其特征在于:所述内存数据包括对象、线程栈和本地方法栈。3.根据权利要求1所述的访问方法,其特征在于,所述通过Java虚拟机调用本地方法接口至内存空间,包括:通过调用所述Java虚拟机中本地库中的本地访问接口,实现内存数据本地调用,所述本地访问接口将函数调用传递到所述Java虚拟机内部的所述本地方法接口中,所述本地方法接口将所述函数调用传递到所述eBPF程序。4.根据权利要求3所述的访问方法,其特征在于,所述本地方法接口将所述函数调用传递到所述eBPF程序包括:所述本地方法接口将所述内存数据传递给动态链接库,所述动态链接库将所述函数调用传递到所述eBPF程序。5.根据权利要求1所述的访问方法,其特征在于,所述提供一eBPF程序,包括:编译可监控Java虚拟机的内存空间的eBPF程序,并通过编译器将所述eBPF程序编译为eBPF字节码;通过采用加载工具将所述eBPF程序加载到内核中;通过调用工具将所...
【专利技术属性】
技术研发人员:褚纯清,艾如飞,王红志,黄忠龙,王迅,
申请(专利权)人:昭通亮风台信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。