
书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:
- BPF 概述:BPF(Berkeley Packet Filter)最初用于网络包过滤,现已扩展为通用的内核观测和性能分析工具。
- eBPF 的演进:eBPF(extended BPF)增强了指令集和功能,支持更复杂的分析和内核编程。
- BPF 程序类型:包括网络过滤、跟踪、安全监控、性能分析等不同类型。
- BPF 工具链:
bpftool
、libbpf
、BCC
(BPF Compiler Collection)等工具简化开发。 - BPF 映射(Map):用于用户态和内核态数据交换,支持哈希表、数组、环形缓冲区等结构。
- BPF 挂钩点(Hook):可在内核函数、系统调用、网络事件等位置插入 BPF 程序。
- BPF 验证器:确保 BPF 程序安全执行,防止崩溃或安全漏洞。
- BCC 框架:提供 Python/Lua 接口,简化 BPF 程序的开发和调试。
- BPF 性能分析:利用
perf
和 BPF 结合,实现低开销的性能监测。 - XDP(eXpress Data Path):基于 BPF 的高性能网络数据处理框架。
- kprobes 和 uprobes:动态追踪内核和用户空间函数调用。
- tracepoints 和 USDT:静态内核跟踪点和用户级静态定义跟踪点。
- BPF 安全监控:可用于检测恶意行为、容器逃逸、异常系统调用等。
- 火焰图生成:结合 BPF 和
perf
生成 CPU、内存、I/O 火焰图。 - BPF 与容器:在 Kubernetes 和 Docker 环境中观测容器行为。
- BPF 网络观测:监控 TCP/UDP 流量、丢包、延迟等网络指标。
- BPF 文件系统观测:跟踪文件读写、VFS 调用等存储行为。
- BPF 调度器观测:分析进程调度、CPU 负载均衡等内核行为。
- BPF 与安全策略:实现 Seccomp、LSM(Linux Security Module)增强安全。
- BPF 未来趋势:持续扩展应用场景,如 AI 推理加速、实时内核调试等。