聊聊很重要的内核技术eBPF
查是BPF程序的空运行。这意味着验证者将尝试分析程序将要执行的每条指令,以确保它不会执行任何无效的指令。此执行还将检查所有内存指针是否均已正确访问和取消引用。最后,空运行向验证程序通知程序中的控制流,以确保无论程序采用哪个控制路径,它都会到达BPF_EXIT指令。为此,验证程序会跟踪堆栈中所有访问过的分支路径,并在采用新路径之前对其进行评估,以确保它不会多次访问特定路径。经过这两项检查后,验证者认为程序可以安全执行。 3) hook : 由于eBPF是事件驱动的,所以ebpf是作用于具体的hook的。根据不同的作用,常用的有XDP,trace,套接字等。 4)帮助函数:eBPF程序无法调用任意内核功能。允许这样做会将eBPF程序绑定到特定的内核版本,并使程序的兼容性复杂化。取而代之的是...阅读全文