1)eBPF bytecode:将C语言写的钩子代码,通过clang编译成二进制字节码,通过程序加载到内核
中,钩子触发后在kernel "虚拟机"中运行。
2)JIT: Just-in-time compilation,将字节码编译成本地机器码来提升运行速度,和Java中的概念类
似。
3)Maps:钩子代码可以将一些统计类信息保存在键值对的map中,来与用户空间程序进行通信,传
递数据。
kernel当收到eBPF的加载请求时,会先对字节码进行验证,并通过JIT编译为机器码,当钩子事件来
临后,调用钩子函数。
评论0