疯狂的小企鹅
2024-03-21
来自浙江
> 也可以通过 BTF 来解决不同内核版本中数据结构不同的问题,从而实现一次编译到处执行。 请教一下哦,要想通过BTF来解决不同内核版本数据结构不同的问题,应该还需要用户态程序能够通过类似libbpf的方式来完成eBPF程序的重定位工作吧?请问cilium/ebpf库是怎么解决这个问题的?我看官方文档写着也比较浅https://ebpf-go.dev/guides/portable-ebpf/#compile-once-run-everywhere 。目前我们采用的办法是根据不同kernel版本生成多份.o文件,然后用户态程序再判断下kernel版本来决定加载哪一份.o。但我感觉这不是最佳实践,求老师赐教。