《分会场1_王聪_eBPF发展趋势分析_报告PPT.pdf》由会员分享,可在线阅读,更多相关《分会场1_王聪_eBPF发展趋势分析_报告PPT.pdf(21页珍藏版)》请在三个皮匠报告上搜索。
1、eBPF 发展趋势分析第三届 eBPF开发者大会中国 西安王聪2025年4月19日年份内核版本主要新功能20143.18引入 eBPF 虚拟机、bpf()系统调用、程序验证器、首批辅助函数(如map_lookup、trace_printk 等)20154.1支持内核跟踪:添加 kprobe、tracepoint、perf_event 等程序类型20164.4/4.8引入 XDP(eXpress Data Path),实现高性能包处理20174.10/4.13/4.14增加对 cgroup 的支持(如 ingress/egress)、sockops(4.13)、sockmap(4.14)2018
2、4.14/4.18支持 sk_msg 用于七层协议解析;引入 BTF(BPF 类型格式)用于类型描述与验证20195.0/5.2支持 LSM(安全模块)钩子;增强 bpf_trace 与原始 tracepoint 支持;扩展辅助函数20205.7/5.8正式引入 LSM 程序类型(BPF_PROG_TYPE_LSM);支持可睡眠程序(BPF_F_SLEEPABLE)20215.10支持 CO-RE(编译一次,多处运行);支持.rodata、.bss 和全局变量20225.16/5.17支持调用内核函数(kfunc),引入动态对象引用与 bpf_obj_new()分配器20236.06.3引入
3、kptr 类型,支持在 map 中存储带引用计数的内核指针20246.6/6.7扩展 BPF 运行时类型系统,增强与 Rust 的集成,改进 XDP 多缓冲区支持eBPF 发展历程回顾第 三 届 e B P F 开 发 者 大 会eBPF 程序类型增长第 三 届 e B P F 开 发 者 大 会内核版本加载类型新引入的类型3.181BPF_PROG_TYPE_SOCKET_FILTER4.96BPF_PROG_TYPE_KPROBE,BPF_PROG_TYPE_TRACEPOINT,BPF_PROG_TYPE_PERF_EVENT,BPF_PROG_TYPE_SCHED_CLS,BPF_PR
4、OG_TYPE_SCHED_ACT4.1913BPF_PROG_TYPE_XDP,BPF_PROG_TYPE_CGROUP_SKB,BPF_PROG_TYPE_CGROUP_SOCK,BPF_PROG_TYPE_CGROUP_DEVICE,BPF_PROG_TYPE_CGROUP_SOCK_ADDR,BPF_PROG_TYPE_CGROUP_SOCKOPT,BPF_PROG_TYPE_CGROUP_SYSCTL5.1020BPF_PROG_TYPE_LSM,BPF_PROG_TYPE_SK_LOOKUP,BPF_PROG_TYPE_SK_REUSEPORT,BPF_PROG_TYPE_FLOW
5、_DISSECTOR,BPF_PROG_TYPE_NETFILTER,BPF_PROG_TYPE_RAW_TRACEPOINT,BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE6.125BPF_PROG_TYPE_TRACING,BPF_PROG_TYPE_EXT,BPF_PROG_TYPE_STRUCT_OPS,BPF_PROG_TYPE_LIRC_MODE2,BPF_PROG_TYPE_SYSCALL6.1226BPF_PROG_TYPE_STRUCT_OPS(enhanced with sched_ext_ops)辅助函数增长第 三 届 e B P F 开 发
6、者 大 会内核版本helper 数量kfunc 数量备注3.1860初始引入 eBPF,仅支持基础功能(map 操作、时间函数等)4.930+0增加调度器、网络分类、跟踪相关的辅助函数4.1960+0引入 BTF,辅助函数类型扩展到 tracing、cgroup 等5.10100+0LSM 支持上线,新增多个类型和 tracing 相关 helper6.1150+70初次引入 kfunc,主要支持struct_ops、RCU 相关函数6.12150+270kfunc 使用范围扩大,支持bpf_obj_new 等动态对象操作Linux 内核社区开发第 三 届 e B P F 开 发 者 大 会内