标签: java linux jvm system-calls jit
我想知道Java代码是如何进行syscall的,JIT编译器是直接生成syscall指令的,还是只是对libc函数(或其他基本库函数)的调用?
答案 0 :(得分:0)
Hotspot JVM为Java代码生成机器代码(不支持进行系统调用)。
所有进行系统调用的代码都在本机方法中。
因此,当Java要进行系统调用时,您必须调用一些本机代码来为您执行此操作。
有些库可用于包装本地调用。例如。 JNA和JNR-FFI。这样一来,您就可以调用c库,而不会破坏本机代码。