关于Linux内核调试中几个工具kprobe、ftrace、ebpf关系的简单记录(本质是预留的nop)

本文探讨了Linux内核中的kprobe如何通过nop实现函数调用监控,以及ftrace如何利用kprobe挂接hooks。进一步介绍了ebpf技术,它使用kprobe替换hooks,执行由ebpf字节码编写的程序,支持jit和aot两种代码执行策略。
摘要由CSDN通过智能技术生成

最近和行业大佬探讨关于Linux内核中kprobe、ftrace、ebpf关系的一些,特此记录:

  • ftrace提供了每个函数调用前添加nop的空指令
  • kprobe利用这nop替换,挂hooks进行调用
  • ebpf基于kprobe把hooks换成ebpf的入口函数,然后ebpf入口函数经过处理调用ebpf的程序(ebpf字节码)
  • ebpf字节码在运行时有ebpf引擎校验解析,然后编译成二进制进行运行
  • 2种代码执行策略:jit和aot:Just-In-Time运行时将字节码转换机器码,然后运行编译后的机器码,Ahead-Of-Time程序运行之前就编译丞机器码了。(比如gcc的程序)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值