<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Head First eBPF</title>
    <link>https://www.ebpf.top/</link>
    <description>Recent content on Head First eBPF</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Thu, 06 Nov 2025 09:50:00 +0800</lastBuildDate><atom:link href="https://www.ebpf.top/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【快速入门必读贴】 百页 PPT BPF 技术全览 - 深入浅出 BPF 技术 </title>
      <link>https://www.ebpf.top/post/head_first_bpf/</link>
      <pubDate>Wed, 01 Dec 2021 19:54:59 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/head_first_bpf/</guid>
      <description>本文地址：https://www.ebpf.top/post/head_first_bpf 本文视频版本： eBPF 技术介绍（上） https://www.bilibili.com/video/BV1BT4y1q7wx/ 本视频一切权利归 bilibili 及 原作者所有 如果觉得好， 请点击跳转到 bilibili给予支持 BV1BT4y1q7wx eBPF技术介绍（下）https://www.bilibili.com/vid</description>
    </item>
    
    <item>
      <title>基于 BPF 任务迭代器实现零侵入性能分析工具 xstack</title>
      <link>https://www.ebpf.top/post/passive-linux-stack-sampler-ebpf/</link>
      <pubDate>Thu, 06 Nov 2025 09:50:00 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/passive-linux-stack-sampler-ebpf/</guid>
      <description>本文地址：https://www.ebpf.top/post/passive-linux-stack-sampler-ebpf 1. 背景 2. xstack 工具简介 2.1 构建 2.2 工具使用方式 2.3 实现命令行火焰图 3. xstack 实现原理 3.1 工具实现原理 4. 实现源码解析 4.1 内核空间源码 3.2 用户空间核心代码 5. 总结 6. 代码附录 6.1 eBPF 核心代</description>
    </item>
    
    <item>
      <title>Linux 内核中的 eBPF 之旅：可观测性、安全性与网络</title>
      <link>https://www.ebpf.top/post/ebpf_tour_basic/</link>
      <pubDate>Sun, 26 Oct 2025 10:01:36 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_tour_basic/</guid>
      <description>本文地址：https://www.ebpf.top/post/ebpf_tour_basic 1. eBPF 是什么，为何如此重要？ 2. eBPF 快速上手 3. 从源码到内核中运行 4. Map、事件流与可发现性 5. eBPF 程序类型与挂载位置 6. CO-RE、BTF 与 libbpf：可移植性的分发模式 7. 验证器 (Verifier) 简述 8. 可观测、安全</description>
    </item>
    
    <item>
      <title>使用 eBPF 监控 MCP 流量</title>
      <link>https://www.ebpf.top/post/monitoring-mcp-traffic-using-ebpf-part-1/</link>
      <pubDate>Tue, 16 Sep 2025 19:57:02 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/monitoring-mcp-traffic-using-ebpf-part-1/</guid>
      <description>本文地址：https://www.ebpf.top/post/monitoring-mcp-traffic-using-ebpf-part-1 1. 前言 2. 为什么要关注 MCP？ 2.1 安全的 MCP（Security MCP） 3. 为什么选择 eBPF 3.1 LD_PRELOAD 钩子（Hooking） 3.2 自定义内核模块 3.3 eBPF 4. 实施阶段</description>
    </item>
    
    <item>
      <title>Rust 系列 04： eBPF &#43; Uprobes 组合解析 Go 程序 gRPC 头部信息</title>
      <link>https://www.ebpf.top/post/04-ebpf-uprobes-decoding-go-function-arguments-registers-memory-layout-to-parse-grpc-headers/</link>
      <pubDate>Sat, 23 Aug 2025 21:06:23 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/04-ebpf-uprobes-decoding-go-function-arguments-registers-memory-layout-to-parse-grpc-headers/</guid>
      <description>本文地址：https://www.ebpf.top/post/04-ebpf-uprobes-decoding-go-function-arguments-registers-memory-layout-to-parse-grpc-headers 1. Uprobes 简介 2. 架构总览 3. 先决条件和设置</description>
    </item>
    
    <item>
      <title>Rust 系列 03：深入理解 Kprobes 与 Kretprobes</title>
      <link>https://www.ebpf.top/post/03-lets-understand-kprobes-kretprobes/</link>
      <pubDate>Sat, 09 Aug 2025 18:25:43 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/03-lets-understand-kprobes-kretprobes/</guid>
      <description>本文地址：https://www.ebpf.top/post/03-lets-understand-kprobes-kretprobes 1. 工作原理 2. 注意事项 3. 实战示例 3.1 跟踪目标进程 PID 4. eBPF 程序逻辑：提取 HTTP 头 4.1 跟踪连接建立：kretprobe/__sys_accept4 4.2 跟踪数据读取</description>
    </item>
    
    <item>
      <title>Rust 系列 02：理解 eBPF 核心构建单元</title>
      <link>https://www.ebpf.top/post/02-understanding-ebpf-core-building-blocks/</link>
      <pubDate>Sat, 09 Aug 2025 18:20:11 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/02-understanding-ebpf-core-building-blocks/</guid>
      <description>本文地址：https://www.ebpf.top/post/02-understanding-ebpf-core-building-blocks 1. BPF 程序类型与钩子点 2. BPF 验证器：安全守护者 3. BPF map：数据存储与通信 4. 辅助函数：内核 API 5. BTF &amp;amp; CO-RE：一次编写，到处运行 6. BPF 尾调用（</description>
    </item>
    
    <item>
      <title>Rust 系列 01： eBPF 和 Rust 简介</title>
      <link>https://www.ebpf.top/post/01-intro-into-ebpf-and-rust/</link>
      <pubDate>Sat, 09 Aug 2025 18:12:22 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/01-intro-into-ebpf-and-rust/</guid>
      <description>本文地址：https://www.ebpf.top/post/01-intro-into-ebpf-and-rust 1. 什么是 eBPF？ 2. 为什么选择 Rust？ 3. 可用的 Rust 库 3.1 libbpf-rs 3.2 Aya 4. 为什么选择 libbpf-rs 4.1 什么是 libbpf？ 4.2 CO-RE 的工作原理 4.3 为什么选择 libbpf-rs 4.5 为什么 libbpf-rs 适合我的场景 5. eBPF + Rust：架</description>
    </item>
    
    <item>
      <title>eBPF 进阶：5种循环方式你都掌握了吗？</title>
      <link>https://www.ebpf.top/post/bpf_five_loops/</link>
      <pubDate>Sun, 17 Nov 2024 09:31:13 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf_five_loops/</guid>
      <description>本文地址：https://www.ebpf.top/post/bpf_five_loops 1. 前言 本文的主题是在 eBPF 技术中代码如何编写循环。 循环几乎是我们所能接触到的所有编程语言中的通用概念，但在 eBPF 中，它们可能要复杂一些。更不用说，截止到目前 eBPF 提供了5+ 种不同的循环方式 - 那么我们应该</description>
    </item>
    
    <item>
      <title> 使用 eBPF 追踪进程 capabilities 变化 </title>
      <link>https://www.ebpf.top/post/bpf_capabilities_debug/</link>
      <pubDate>Mon, 16 Sep 2024 10:02:10 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf_capabilities_debug/</guid>
      <description>本文地址：https://www.ebpf.top/post/bpf_capabilities_debug 作者：kira skyler 前言 借助 eBPF 大展身手 追踪权能变化 屠龙 前言 在 Linux 操作系统中，&amp;quot; 权能 &amp;quot; (capabilities) 是一种权限机制，用于 linux 系统中的全部特权，细粒度地划分为多个独立的权限位。这样，用户或</description>
    </item>
    
    <item>
      <title>BPF 调度器 sched_ext 实现机制、调度流程及样例</title>
      <link>https://www.ebpf.top/post/bpf_sched_ext_dive_into/</link>
      <pubDate>Fri, 30 Aug 2024 19:56:59 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf_sched_ext_dive_into/</guid>
      <description>本文地址：https://www.ebpf.top/post/bpf_sched_ext_dive_into Linux 进程调度器 CFS 调度器 EEVDF 调度器 通用调度器的窘境 BPF 调度扩展器 sched_ext 实现机制 新增1： SCHED_EXT 调度类 新增2：eBPF 自定义调度器函数 SCHED_EXT 调度类工作流程 调度队列 DSQ（Dispatch Queue</description>
    </item>
    
    <item>
      <title>Linus 强势拍板 6.11 合入: BPF 赋能调度器终成正果</title>
      <link>https://www.ebpf.top/post/bpf_sched_ext/</link>
      <pubDate>Sun, 30 Jun 2024 19:56:59 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf_sched_ext/</guid>
      <description>本文地址：https://www.ebpf.top/post/bpf_sched_ext 1. 插拔调度器的萌芽【2004 年】 在 2004 年，Linux 社区的 Con Kolivas 提出了可插拔式调度器想法，旨在让内核中存在多个调度器，用户可在引导时选择。提交 patch 的工作原理是将大量代码拆分为 kernel/sched.c 公共部分和私有部分，同</description>
    </item>
    
    <item>
      <title>仅需一条命令本地 CPU 环境快速上手 Google Gemma 【保姆级教程】</title>
      <link>https://www.ebpf.top/post/mac_google_gemma_quick_start/</link>
      <pubDate>Sun, 10 Mar 2024 21:52:02 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/mac_google_gemma_quick_start/</guid>
      <description>本文地址：https://www.ebpf.top/post/mac_gemma_quick_start Google Gemma 是什么？ 步骤 1：安装 Docker 步骤 2：一行命令运行 Gemma 补充资料 Ollama 是什么？ Open-webui 是什么？ Google Gemma 是什么？ Gemma 相比自家的 Gemini 更加轻量级，模型权重也一并开源。不仅可以在笔记本电脑上运行，而且还免费可商</description>
    </item>
    
    <item>
      <title>BPF 跟踪机制之原始跟踪点 rawtracepoint 介绍、使用和样例</title>
      <link>https://www.ebpf.top/post/bpf_rawtracepoint/</link>
      <pubDate>Sat, 09 Mar 2024 12:34:12 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf_rawtracepoint/</guid>
      <description>本文地址：https://www.ebpf.top/post/bpf_rawtracepoint 1. eBPF Trace 跟踪常见的 Hook 类型 2. BPF 原始跟踪点 rawtracepoint 2.1 跟踪性能优化提升 20% 2.2 rawtracepoint 跟踪事件查看及数量统计 2.3 传递参数变化 3. BPF 程序中使用 rawtracepoint 样例 3.1 libbpf 库 （基于 CO-RE） 3.2 bpftrace 样例代码 参考 1. eBPF Trace 跟踪常见的 Hook 类型 通过</description>
    </item>
    
    <item>
      <title>2024 年美国最高薪 IT 职位排名 - IT 行业薪资指南|技术职业发展</title>
      <link>https://www.ebpf.top/post/2024-usa-it-jobs-salary-guide/</link>
      <pubDate>Wed, 21 Feb 2024 18:50:53 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/2024-usa-it-jobs-salary-guide/</guid>
      <description>本文地址： https://www.ebpf.top/post/2024-usa-it-jobs-salary-guide 高薪背后的原因 技术人才的稀缺性 薪资增长的策略 高需求技能 2024 年最高薪 IT 职位 未来趋势 结论 在当前的就业市场中，尽管面临着连续的裁员潮，但在美国，优质的 IT 岗位依然不缺乏，薪资范围广泛，从平均每年 95,000 美元到 201,000 美元不等，涵盖了从网络安全工程师到高级网页开发人员等多种职位。这一现象背后</description>
    </item>
    
    <item>
      <title>BPF 管理器 bpfman 简介 </title>
      <link>https://www.ebpf.top/post/bpfman_fedora_40/</link>
      <pubDate>Tue, 30 Jan 2024 13:04:00 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpfman_fedora_40/</guid>
      <description>本文地址：https://www.ebpf.top/post/bpfman_fedora_40 1. 背景 2. bpfman 介绍 3. 单机部署流程 4. Kubernetes 集群部署流程 5. 总结 附录：bpfman 单机验证 开发环境搭建 下载代码和编译 bpfman 测试程序管理功能 1. 背景 Fedora 40 提案建议将 bpfman 作为默认的程序管理器 ，开源项目 bpfman 可以实现对 eBPF</description>
    </item>
    
    <item>
      <title>2024 年 eBPF 和网络趋势预测</title>
      <link>https://www.ebpf.top/post/network_and_bpf_2024/</link>
      <pubDate>Sun, 21 Jan 2024 22:21:30 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/network_and_bpf_2024/</guid>
      <description>本文地址：https://www.ebpf.top/post/network_and_bpf_2024 1. eBPF 1.1 eBPF 将继续呈指数增长 1.2 eBPF 应用市场 1.3 eBPF 在手机中得到更广泛的应用 1.4 eBPF 滥用带来的风险 2. 可观测 2.1 最受欢迎的可观测性 2.2 降低可观测性开销 2.3 上下文感知的 Kubernetes 工作负载 2.4 AI 助力网络排查 3. 网络 3.1 与</description>
    </item>
    
    <item>
      <title>使用 libbpf 编写 BPF 应用程序进阶技巧</title>
      <link>https://www.ebpf.top/post/top_and_tricks_for_bpf_libbpf/</link>
      <pubDate>Fri, 12 Jan 2024 10:08:49 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/top_and_tricks_for_bpf_libbpf/</guid>
      <description>程序框架（skeleton） 合并 open 和 loader 阶段 选择性附着 （attach） 自定义 load 和 attach 同一事件的多 BPF 处理程序 Map 减少预分配（pre-allocation）开销 运行时确定 map 大小 Per-CPU 全局变量 注意直接通过指针访问字段 结论 本文地址：https://www.ebpf.top/post/top_and</description>
    </item>
    
    <item>
      <title>BPF 程序与信号交互大揭秘</title>
      <link>https://www.ebpf.top/post/how-ebpf-interacts-signals/</link>
      <pubDate>Tue, 09 Jan 2024 14:30:43 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/how-ebpf-interacts-signals/</guid>
      <description>本文地址 ： https://www.ebpf.top/post/how-ebpf-interacts-signals 原文：Signaling from within: how eBPF interacts with signals 1. 背景 2. 动机 3. 场景：拦截 openat(2) 4. 内核如何处理 SIGKILL 信号？ 5. 什么信号要后置处理 6. 通过 BPF程序触发 SIGKILL 7. 自愿信号检查 8. open &amp;amp; write 操作竞争（Racing） 9. 其他影响 10. 结论 本文探讨了 eBPF 程序生成的 UNIX 信号的一些语义。 1. 背景 信号自 1971 年 UNIX 第一版问世以来就一直</description>
    </item>
    
    <item>
      <title>LSM BPF 实践</title>
      <link>https://www.ebpf.top/post/lsm_bpf_intro/</link>
      <pubDate>Thu, 04 Jan 2024 15:49:27 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/lsm_bpf_intro/</guid>
      <description>本文地址：https://www.ebpf.top/post/lsm_bpf_intro 1. 安全背景知识 2. 内核安全策略模块通用框架 LSM 2.1 LSM 框架介绍 2.2 LSM 架构 2.3 LSM 中的钩子函数 3. LSM BPF 3.1 BCC 实践 3.2 libbpf-bootstrap 框架实践 4. 总结 5. 附录：LSM 热修内核漏洞查找 hook 点过程 1. 安全背景知识 国际上对计算机安全概括了三个特</description>
    </item>
    
    <item>
      <title>Cisco 将收购 Cilium 母公司 Isovalent，预计 2024 年第 3 季度完成</title>
      <link>https://www.ebpf.top/post/cisco_and_isovalent/</link>
      <pubDate>Fri, 22 Dec 2023 18:23:32 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/cisco_and_isovalent/</guid>
      <description>本文地址：https://www.ebpf.top/post/cisco_and_isovalent 2023 年 12 月 21 日，Isovalent 公司 CTO &amp;amp; 联合创始人 Thomas Graf 和 Cisco 安全业务集团高级副总裁兼总经理 Tom Gillis 分别在各自公司网站公布了思科打算收购 Isovalent 公司的计划，双方都没有公布收购的价格。收购完成后，</description>
    </item>
    
    <item>
      <title>什么等等？ I/O Wait ≠ I/O 瓶颈？</title>
      <link>https://www.ebpf.top/post/cpu_io_wait/</link>
      <pubDate>Fri, 22 Dec 2023 18:14:18 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/cpu_io_wait/</guid>
      <description>本文地址：https://www.ebpf.top/post/cpu_io_wait 1. I/O Wait 定义 2. 测试验证 3. 进一步明确磁盘吞吐和读写频繁进程 4. 内核 CPU 统计实现分析 5. 总结 参考资料 1. I/O Wait 定义 I/O Wait 是针对单个 CPU 的性能指标，表示当 CPU 分发队列（在睡眠态）里有线程被阻塞在磁盘 I/O 上时消耗的空闲时间。</description>
    </item>
    
    <item>
      <title>eBPF 进阶: 内核新特性进展一览</title>
      <link>https://www.ebpf.top/post/ebpf_and_kernel_feature/</link>
      <pubDate>Sat, 08 Jul 2023 18:28:42 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_and_kernel_feature/</guid>
      <description>本文地址：https://www.ebpf.top/post/ebpf_and_kernel_feature BPF kfuncs Bloom Filter Map：5.16 Compile Once – Run Everywhere：Linux 5.17 [内核空间] bpf_loop() 辅助函数：5.17 BPF_LINK_TYPE_KPROBE_MULTI：5.18 动态指针和类</description>
    </item>
    
    <item>
      <title>BPF 通用迭代器机制</title>
      <link>https://www.ebpf.top/post/generic_iterators_for_bpf/</link>
      <pubDate>Sat, 01 Jul 2023 18:39:41 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/generic_iterators_for_bpf/</guid>
      <description>本文地址：https://www.ebpf.top/post/generic_iterators_for_bpf 通常，要装载到内核的 BPF 程序是用 C 语言编写的，但是这些程序运行的环境与 C 环境有明显的不同。BPF 虚拟机和相关的验证器为了使 BPF 代码安全运行，进行了越来越多的检查。BPF 的迭</description>
    </item>
    
    <item>
      <title>使用 XDP 实现负载均衡器实战</title>
      <link>https://www.ebpf.top/post/xdp_lb_demo/</link>
      <pubDate>Sat, 06 May 2023 08:19:24 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/xdp_lb_demo/</guid>
      <description>本文地址：https://www.ebpf.top/post/xdp_lb_demo 本文作者：邱康 创建网络环境 SLB 集群路由 NAT模式 负载均衡算法 SLB 路由伪代码 随着 eBPF 的发展，我们已经可以将 eBPF/XDP 程序直接部署在普通服务器上来实现负载均衡，从而节省掉用于专门部署 LVS 的机器。 前文 分享了如何使用 xdp/ebpf 替</description>
    </item>
    
    <item>
      <title>BTF：实践指南</title>
      <link>https://www.ebpf.top/post/btf-bpf-type-format/</link>
      <pubDate>Sat, 25 Feb 2023 19:42:58 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/btf-bpf-type-format/</guid>
      <description>本文地址：https://www.ebpf.top/post/btf-bpf-type-format 1. BPF 的常见限制 1.1 调试限制 1.2 可移植性 2. BTF 是什么？ 3. BTF 快速入门 3.1 BPF 快速入门 3.1 BTF 和 CO-RE 4. 结论 BPF 是 Linux 内核中基于寄存器的虚拟机，可安全、高效和事件驱动的方式执行加载至内核的字节码。与内核模块不</description>
    </item>
    
    <item>
      <title>【译】2023 年 6 个值得关注的 eBPF 趋势 </title>
      <link>https://www.ebpf.top/post/six-bpf-trends-for-2023/</link>
      <pubDate>Fri, 10 Feb 2023 08:51:08 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/six-bpf-trends-for-2023/</guid>
      <description>本文地址：https://www.ebpf.top/post/six-bpf-trends-for-2023 1. 前言 2. 2023 年 6 个 eBPF 趋势展望 2.1 用 eBPF 网络跟踪进行高性能的 HTTP 监测 2.2 网络功能进阶和 sidecar 优化 2.3 安全和恶意软件检测 2.4. 云的应用，事实上是超大规模的 2.5. 更深入的电信公司应用 2.6 BumbleBee 为更多的 eBPF 程序铺</description>
    </item>
    
    <item>
      <title>国内 ChatGPT 入门指南</title>
      <link>https://www.ebpf.top/post/get_start_chatgpt/</link>
      <pubDate>Fri, 03 Feb 2023 09:09:58 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/get_start_chatgpt/</guid>
      <description>本文地址：https://www.ebpf.top/post/get_start_chatgpt 1. 前言 2. 直接体验 3. 官方注册账号 3.1 注册账号 3.2 国外短信验证 3.3 测试效果 4. 总结 参考 1. 前言 ChatGPT 相信大多数人已经不陌生了，大有席卷整个互联网之势，成为科技公司追捧的热门技术和IT界津津乐道的话题。C</description>
    </item>
    
    <item>
      <title>Rust  Aya 框架编写 eBPF 程序 </title>
      <link>https://www.ebpf.top/post/ebpf_rust_aya/</link>
      <pubDate>Sun, 06 Nov 2022 15:23:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_rust_aya/</guid>
      <description>本文地址：https://www.ebpf.top/post/ebpf_rust_aya 1. 前言 2. Rust 开发环境搭建 2.1 创建 VM 虚拟机 2.2 安装 Rust 开发环境 2.3 安装 bpf-linker 依赖 和 bpftool 工具 3. Aya 向导创建 eBPF 程序 3.1 使用向导创建项目 3.2 编译 eBPF 程序 3.3 运行用户空间程序 4. 总结 参考 1. 前言 Linux 内核 6.1 版本中有一个非常引人注意的变化</description>
    </item>
    
    <item>
      <title>eBPF: 从 BPF to BPF Calls 到 Tail Calls</title>
      <link>https://www.ebpf.top/post/bpf2pbpf_tail_call/</link>
      <pubDate>Sat, 24 Sep 2022 20:51:59 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf2pbpf_tail_call/</guid>
      <description>本站地址：https://www.ebpf.top/post/bpf2pbpf_tail_call 本文作者：李兆龙 (已经取得得原作者授权） 原文地址：https://blog.csdn.net/weixin_43705457/article/details/123474244 1. 引言</description>
    </item>
    
    <item>
      <title>告别 IPVS，拥抱 Cilium/XDP?</title>
      <link>https://www.ebpf.top/post/cilium-standalone-L4LB-XDP-zh/</link>
      <pubDate>Sat, 16 Jul 2022 21:25:55 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/cilium-standalone-L4LB-XDP-zh/</guid>
      <description>1. 架构 2. 启动独立 L4LB 3. 设置服务 4. 负载对比 4.1 结果 5. 生产环境流量验证 6. 总结 本文地址：https://www.ebpf.top/post/cilium-standalone-L4LB-XDP-zh Seznam.cz 是一家捷克技术公司，开发定制搜索引擎、广告平台、在线地图、内容管理系统，以及私有云服务、定</description>
    </item>
    
    <item>
      <title>一道思考题所引起动态跟踪 ‘学案’</title>
      <link>https://www.ebpf.top/post/ftrace_kernel_dynamic/</link>
      <pubDate>Sun, 01 May 2022 10:51:00 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ftrace_kernel_dynamic/</guid>
      <description>本文地址：https://www.ebpf.top/post/ftrace_kernel_dynamic 1. 基础知识 1.1 默认编译 1.2 使用 -pg 选项 1.3 使用 -pg 和 -mfentry 选项 1.4 对内核进行验证 2. ftrace 中 kprobe 跟踪机制验证 3. 使用内核模块进行验证 3.1 使用 kallsyms_lookup_name 方式获取 3.2 直接使用内核函数地址（踩坑笔记，可跳过） 4. 使用 gdb + qemu</description>
    </item>
    
    <item>
      <title>【译】BTFGen: 让 eBPF 程序可移植发布更近一步</title>
      <link>https://www.ebpf.top/post/btfgen-one-step-closer-to-truly-portable-ebpf-programs/</link>
      <pubDate>Sat, 02 Apr 2022 17:04:25 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/btfgen-one-step-closer-to-truly-portable-ebpf-programs/</guid>
      <description>本文地址：https://ebpf.top/post/btfgen-one-step-closer-to-truly-portable-ebpf-programs Mauricio 2022 2022/03/16 1. 问题所在 2. CO-RE (一次编译 - 到处运行) 3. BTFHub 4. BTFGen 4.1 内部实现细节 4.2 如何使用? 4.3 集成样例 4.4 限制 4.5 未来发展 5. 更多信息 6. 致谢</description>
    </item>
    
    <item>
      <title>eBPF&#43;Ftrace 合璧剑指：no space left on device？</title>
      <link>https://www.ebpf.top/post/no_space_left_on_devices/</link>
      <pubDate>Sat, 26 Mar 2022 10:20:46 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/no_space_left_on_devices/</guid>
      <description>本文地址：https://www.ebpf.top/post/no_space_left_on_devices 1. ”no space left on device“ ??? 2. 问题分析及定位 2.1 初步锁定问题函数 2.2 定位问题根源 2.3 定位问题的根因 3. 代码流程与跟踪流程差异分析 4. 总结 5. 附录部分错误 参考资料 最近在生产环境中遇到</description>
    </item>
    
    <item>
      <title>Ubuntu 21.10 安装调试符号 </title>
      <link>https://www.ebpf.top/post/ubuntu-21-10-dbgsym/</link>
      <pubDate>Thu, 17 Mar 2022 14:29:49 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ubuntu-21-10-dbgsym/</guid>
      <description>本文地址：https://www.ebpf.top/post/ubuntu-21-10-dbgsym 1. 背景 2. 手动搜索下载安装 3. 使用第三方源安装 步骤 1：GPG 秘钥导入 步骤 2：添加仓库配置 步骤 3：更新安装包 步骤 4：安装调试符号包 步骤 5： 验证符号包已经成功安装 4. 源码安装及关联 5. 最终调测</description>
    </item>
    
    <item>
      <title>问题排查利器：Linux 原生跟踪工具 Ftrace 必知必会</title>
      <link>https://www.ebpf.top/post/ftrace_tools/</link>
      <pubDate>Mon, 14 Mar 2022 21:17:05 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ftrace_tools/</guid>
      <description>本文地址：https://www.ebpf.top/post/ftrace_tools TLDR，建议收藏，需要时查阅。 1. 内核函数调用跟踪 2. 函数被调用流程（栈） 3. 函数调用子流程跟踪（栈） 4. 内核跟踪点（tracepoint）跟踪 5. kprobe 跟踪 6. uprobe 跟踪 7. 总结 参考 如果你只是需要快速使用工具来进</description>
    </item>
    
    <item>
      <title>BumbleBee: 如丝般顺滑构建、交付和运行 eBPF 程序</title>
      <link>https://www.ebpf.top/post/bumblebee/</link>
      <pubDate>Sat, 12 Feb 2022 20:55:39 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bumblebee/</guid>
      <description>本文地址：https://www.ebpf.top/post/bumblebee 1. 前言 2. 构建和分发 eBPF 工具的挑战 3. BumbleBee 简介 3.1 构建 3.2 发布 3.3 运行 4. 完整体验 4.1 bee 安装 4.2 Bee init 生成 eBPF 程序脚手架 4.3 构建 eBPF 程序 4.4 发布 eBPF 程序 4.5 运行 eBPF 程序 5. 总结 6. 参考资料 1. 前言 不久前，Solo.io 公司在官网博客宣布了开源</description>
    </item>
    
    <item>
      <title>eBPF 与 Go，超能力组合（含视频）</title>
      <link>https://www.ebpf.top/post/ebpf_and_go/</link>
      <pubDate>Sun, 23 Jan 2022 12:40:29 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_and_go/</guid>
      <description>本文地址：https://www.ebpf.top/post/ebpf_and_go 本文为 “Go 夜读” 分享的 “eBPF 与 Go 超能力组合” 的简单文字版本，完整视频可以在 Youtube 和 B 站观看，PPT 下载, 8.7M , Github 地址：DavadDi/bpf_demo B 站 #123 eBPF 与Go，超能力组合【Go 夜读】 Youtube #123 eBPF 与</description>
    </item>
    
    <item>
      <title>【译】聊聊对 BPF 程序至关重要的 vmlinux.h 文件</title>
      <link>https://www.ebpf.top/post/intro_vmlinux_h/</link>
      <pubDate>Sat, 22 Jan 2022 20:48:46 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/intro_vmlinux_h/</guid>
      <description>本文地址：https://www.ebpf.top/post/intro_vmlinux_h 1.1 前言 eBPF 是一项令人兴奋的强大技术，其允许开发者在 Linux 内核的核心处添加自定义代码功能，并且我们还可以通过编写简单的 C 或 Go 程序与加载到内核中的 eBPF 程序交互，用于加载或读取数据。运行在内核中的 BPF 程序</description>
    </item>
    
    <item>
      <title>揭秘 BPF map 前生今世</title>
      <link>https://www.ebpf.top/post/map_internal/</link>
      <pubDate>Sun, 09 Jan 2022 10:27:09 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/map_internal/</guid>
      <description>本文地址：https://www.ebpf.top/post/map_internal 1. 前言 众所周知，map 可用于内核 BPF 程序和用户应用程序之间实现双向的数据交换， 为 BPF 技术中的重要基础数据结构。 在 BPF 程序中可以通过声明 struct bpf_map_def 结构完成创建，这其实带给我们一种错觉，感觉这和普通的 C 语言变量</description>
    </item>
    
    <item>
      <title>【BPF 攻防系列-2】【译】恶意使用的 bpftrace 🤯</title>
      <link>https://www.ebpf.top/post/offensive-bpf-bpftrace/</link>
      <pubDate>Sat, 18 Dec 2021 18:49:41 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/offensive-bpf-bpftrace/</guid>
      <description>本文地址：https://www.ebpf.top/post/offensive-bpf-bpftrace 本篇文章是我正在进行的关于 BPF 攻防系列 的一部分，用于学习 BPF 以了解相关的攻击和防御，请点击 &amp;ldquo;ebpf&amp;rdquo; 标签查看所有相关帖子。 我正在学习 BPF，以了解其使用将如何影响安全攻击、恶意软件和检测</description>
    </item>
    
    <item>
      <title>【BPF 攻防系列-1】【译】开战！！！</title>
      <link>https://www.ebpf.top/post/offensive-bpf-getting-started/</link>
      <pubDate>Fri, 17 Dec 2021 18:49:41 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/offensive-bpf-getting-started/</guid>
      <description>本文地址：https://www.ebpf.top/post/offensive-bpf-getting-started 在近几年来，eBPF 在 Linux 社区和之外得到了越来越多的关注。 eBPF 在攻击场景中的使用也逐渐引起大家的关注。因此，我决定从红队的角度进入深入探讨，以让大家对此有个整体的认</description>
    </item>
    
    <item>
      <title>Cilium 1.11 发布，带来内核级服务网格、拓扑感知路由....</title>
      <link>https://www.ebpf.top/post/cilium_1_11_new/</link>
      <pubDate>Fri, 17 Dec 2021 10:06:09 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/cilium_1_11_new/</guid>
      <description>本文地址：https://www.ebpf.top/post/cilium_1_11_new Cilium 1.11 发布，带来内核级服务网格、拓扑感知路由&amp;hellip;. 原文链接：https://isovalent.com/blog/post/2021-12-release-111 作者：Ciliu</description>
    </item>
    
    <item>
      <title>基于 eBPF 的网络监测实践</title>
      <link>https://www.ebpf.top/post/ebpf_network_exporter/</link>
      <pubDate>Tue, 07 Dec 2021 10:27:39 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_network_exporter/</guid>
      <description>作者：孙文杰 本文地址：https://www.ebpf.top/post/ebpf_network_exporter 公有云网络问题，是一个老生常谈的事情了。今天主要简单说明下，在内网环境下去分析 &amp;amp; 定位这个问题。也并不是一开始就需要 eBPF 加持的，可以从简单的基础工具到监控配合去相关比较</description>
    </item>
    
    <item>
      <title> 当 BPF 邂逅 CPU 调度器 </title>
      <link>https://www.ebpf.top/post/cfs_scheduler_bpf/</link>
      <pubDate>Sat, 06 Nov 2021 19:59:44 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/cfs_scheduler_bpf/</guid>
      <description>本文地址：https://www.ebpf.top/post/cfs_scheduler_bpf 1. 前言 BPF 从最早局限于过滤网络数据包开始，现在已经在系统观测、网络优化和安全等诸多领域得到了广泛的应用；在内核 5.6 和 5.13 版本中针对 TCP 拥塞算法的场景，分别引入了 STRUCT_OPS 和调用内核函数的能力，（详情可</description>
    </item>
    
    <item>
      <title>【译】神奇的 eBPF</title>
      <link>https://www.ebpf.top/post/awesome-ebpf/</link>
      <pubDate>Sat, 23 Oct 2021 15:23:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/awesome-ebpf/</guid>
      <description>本文地址：https://www.ebpf.top/post/awesome-ebpf 原文地址：https://filipnikolovski.com/posts/ebpf/ 作者：Filip Nikolovski 发布时间： 2020.11.20 19:05 1. 前言 当在工作中对微服务的跟踪和可观察性进行研究时，我发现了 Pixielabs 工具。该工具</description>
    </item>
    
    <item>
      <title>【译】eBPF 概述：第 5 部分：跟踪用户进程</title>
      <link>https://www.ebpf.top/post/ebpf-overview-part-5/</link>
      <pubDate>Wed, 29 Sep 2021 15:27:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf-overview-part-5/</guid>
      <description>本系列导航： eBPF 概述：第 1 部分：介绍 eBPF 概述：第 2 部分：机器和字节码 eBPF 概述：第 3 部分：软件开发生态 eBPF 概述：第 4 部分：在嵌入式系统运行 eBPF 概述：第 5 部分：跟踪用户进程 原文地址：https://www.collabora.com/news-and-blog/blog/2019/05/14/</description>
    </item>
    
    <item>
      <title>【译】eBPF 概述：第 4 部分：在嵌入式系统运行</title>
      <link>https://www.ebpf.top/post/ebpf-overview-part-4/</link>
      <pubDate>Wed, 29 Sep 2021 15:26:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf-overview-part-4/</guid>
      <description>本系列导航： eBPF 概述：第 1 部分：介绍 eBPF 概述：第 2 部分：机器和字节码 eBPF 概述：第 3 部分：软件开发生态 eBPF 概述：第 4 部分：在嵌入式系统运行 eBPF 概述：第 5 部分：跟踪用户进程 原文地址：https://www.collabora.com/news-and-blog/blog/2019/05/06/</description>
    </item>
    
    <item>
      <title>【译】eBPF 概述：第 3 部分：软件开发生态</title>
      <link>https://www.ebpf.top/post/ebpf-overview-part-3/</link>
      <pubDate>Wed, 29 Sep 2021 15:25:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf-overview-part-3/</guid>
      <description>本系列导航： eBPF 概述：第 1 部分：介绍 eBPF 概述：第 2 部分：机器和字节码 eBPF 概述：第 3 部分：软件开发生态 eBPF 概述：第 4 部分：在嵌入式系统运行 eBPF 概述：第 5 部分：追踪用户进程 原文地址：https://www.collabora.com/news-and-blog/blog/2019/04/26/</description>
    </item>
    
    <item>
      <title>【译】eBPF 概述：第 2 部分：机器和字节码</title>
      <link>https://www.ebpf.top/post/ebpf-overview-part-2/</link>
      <pubDate>Wed, 29 Sep 2021 15:24:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf-overview-part-2/</guid>
      <description>本系列导航： eBPF 概述：第 1 部分：介绍 eBPF 概述：第 2 部分：机器和字节码 eBPF 概述：第 3 部分：软件开发生态 eBPF概述：第 4 部分：在嵌入式系统运行 eBPF概述：第 5 部分：追踪用户进程 原文地址：https://www.collabora.com/news-and-blog/blog/2019/</description>
    </item>
    
    <item>
      <title>【译】eBPF 概述：第 1 部分：介绍</title>
      <link>https://www.ebpf.top/post/ebpf-overview-part-1/</link>
      <pubDate>Wed, 29 Sep 2021 15:23:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf-overview-part-1/</guid>
      <description>本系列导航： eBPF 概述：第 1 部分：介绍 eBPF 概述：第 2 部分：机器和字节码 eBPF 概述：第 3 部分：软件开发生态 eBPF概述：第 4 部分：在嵌入式系统运行 eBPF概述：第 5 部分：追踪用户进程 原文地址：https://www.collabora.com/news-and-blog/blog/2019/</description>
    </item>
    
    <item>
      <title>基于 Ubuntu 21.04 BPF 开发环境全攻略 </title>
      <link>https://www.ebpf.top/post/ubuntu_2104_bpf_env/</link>
      <pubDate>Wed, 29 Sep 2021 15:17:36 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ubuntu_2104_bpf_env/</guid>
      <description>本文地址：https://www.ebpf.top/post/ubuntu_2104_bpf_env 1. 系统安装 1.1 Vagrant Vagrant 是一款用于构建及配置虚拟开发环境的软件，基于 Ruby，主要以命令行的方式运行。Vagrant 由 HashiCorp 官方出品，相信提到大名鼎鼎的 HashiCorp 公司，大家还能够联想到著名的安全密码存</description>
    </item>
    
    <item>
      <title>VirtualBox VM 空间瘦身记（vmdk）</title>
      <link>https://www.ebpf.top/post/shrink_vbox_vmdk_size/</link>
      <pubDate>Tue, 28 Sep 2021 16:28:39 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/shrink_vbox_vmdk_size/</guid>
      <description>本文地址：https://www.ebpf.top/post/shrink_vbox_vmdk_size 在使用 VirtualBox（ VMDK 模式）管理虚拟机的时候，我们经常会遇到一些编译安装场景（比如编译 Linux 内核），会导致磁盘空间急剧膨胀，但是在编译完成后即使我们删除了相关的文件，在 VM 虚</description>
    </item>
    
    <item>
      <title> BPF BTF 详解</title>
      <link>https://www.ebpf.top/post/kernel_btf/</link>
      <pubDate>Fri, 24 Sep 2021 10:35:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/kernel_btf/</guid>
      <description>本文地址：https://www.ebpf.top/post/kernel_btf/ 英文文档：https://www.kernel.org/doc/html/latest/bpf/btf.html 1. 介绍 BTF（BPF 类型格式）是一种元数据格式，对与 BPF 程序 /map 有关的调试信息进行编码。</description>
    </item>
    
    <item>
      <title> 深入浅出 BPF TCP 拥塞算法实现原理 </title>
      <link>https://www.ebpf.top/post/ebpf_struct_ops/</link>
      <pubDate>Wed, 15 Sep 2021 19:02:03 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_struct_ops/</guid>
      <description>本文地址：https://www.ebpf.top/post/ebpf_struct_ops 1. 前言 eBPF 的飞轮仍然在快速转动，自从 Linux 内核 5.6 版本支持 eBPF 程序修改 TCP 拥塞算法能力，可通过在用户态修改内核中拥塞函数结构指针实现；在 5.13 版本中该功能又被进一步优化，增加了该类程序类型直接调用部分内核</description>
    </item>
    
    <item>
      <title>深入浅出 eBPF 安全项目 Tracee</title>
      <link>https://www.ebpf.top/post/tracee_intro/</link>
      <pubDate>Tue, 07 Sep 2021 10:19:13 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/tracee_intro/</guid>
      <description>1. Tracee 介绍 1.1 Tracee 介绍 Tracee 是一个用 于 Linux 的运行时安全和取证工具。它使用 Linux eBPF 技术在运行时跟踪系统和应用程序，并分析收集的事件以检测可疑的行为模式。Tracee 以 Docker 镜像的形式交付，监控操作系统并根据预定义的行为模式集检测可疑行为。官网文档参见这里。 Tracee 由以下子项目组成： Trace-eBPF - 使用 eBPF 进行 Linux 追踪和取证</description>
    </item>
    
    <item>
      <title>【BPF入门系列-12】【译】eBPF 和 Go 经验初探</title>
      <link>https://www.ebpf.top/post/ebpf_go_translation/</link>
      <pubDate>Tue, 31 Aug 2021 15:26:40 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_go_translation/</guid>
      <description>原文地址：https://networkop.co.uk/post/2021-03-ebpf-intro/ 本站相关文档：使用 Go 语言管理和分发 ebpf 程序 1. 前言 eBPF 的生态欣欣向荣，无论是 eBPF 本身及其各种应用（包括 XDP） 方面都有大量的学习资源。但当涉及到选择库和工具来与 eBPF 进行交互时，会让人有</description>
    </item>
    
    <item>
      <title>【BPF入门系列-11】使用 eBPF 技术跟踪 Netfilter 数据流过滤结果</title>
      <link>https://www.ebpf.top/post/iptalbes_ebpf/</link>
      <pubDate>Tue, 24 Aug 2021 15:26:40 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/iptalbes_ebpf/</guid>
      <description>1. 网络层数据流向与 Netfilter 体系 图 1-1 为网络层内核收发核心流程图，在函数流程图中我们可以看到 Netfliter 在其中的位置（图中深色底纹圆角矩形）。图中对应的 hook 点有 5 个，每个hook 点中保存一组按照优先级排序的函数列表： NF_IP_PREROUTING：接收到的包进入协议栈后立即触发此 hook 中注册的对应函数列</description>
    </item>
    
    <item>
      <title>使用 Go 语言管理和分发 ebpf 程序</title>
      <link>https://www.ebpf.top/post/ebpf_go/</link>
      <pubDate>Tue, 10 Aug 2021 13:50:38 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_go/</guid>
      <description>1. Go 语言管理 eBPF 程序库 1.1 cilium/ebpf cilium/ebpf 库是 Cilium 项目的一个子项目。仅使用 Go 语言编写的库，提供了加载、编译和调试 eBPF 程序的功能。它具有最小的外部依赖性，适合在长期运行的进程中使用。库主要有由 Cloudflare 和 Cilium 两家公司维护，由于 Cilium 产品的火爆程度，该库的活跃度在社区层面还是会持续演进和发展。 cilium/ebpf 已经满足生产可用，但 API</description>
    </item>
    
    <item>
      <title>Ubuntu 20.04 Kdump &#43; Crash 初体验</title>
      <link>https://www.ebpf.top/post/ubuntu_kdump_crash/</link>
      <pubDate>Sun, 01 Aug 2021 16:36:19 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ubuntu_kdump_crash/</guid>
      <description>1. Kdump 工作原理介绍 内核崩溃转储指的是在内核异常情况时，将 RAM 中部分内容进行转储到磁盘或者其他存储中。当内核发生 panic 时，内核依靠 kexec 机制在预先保留的内存区域快速重启一个新的内核实例，预留内存区域大小可通过内核启动参数 crashkernel 指定。 为了实现 “双内核” 布局，Kdump 在内核崩溃后立即使用 kexec 引导到转储</description>
    </item>
    
    <item>
      <title>来来，让我看看你究竟在干什么？</title>
      <link>https://www.ebpf.top/post/system_debug_stack/</link>
      <pubDate>Tue, 20 Jul 2021 10:33:48 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/system_debug_stack/</guid>
      <description>1. 系统的线程栈跟踪（内核） 在某些特殊场景中，我们可能会遇到偶发系统内核 CPU 抖动，这时候我们可能需要知晓动时刻内核中的所有运行任务的一个快照，这种场景下 sysrq 可以完全满足我们的需求。 如果只是需要分析系统的热点路径，perf 会是一个比较好的选择。 1.1 sysrq 是什么？ sysrq 代表的是 Magic System Request Key。开启了该</description>
    </item>
    
    <item>
      <title>Linux 进程管理</title>
      <link>https://www.ebpf.top/post/linux_process_mgr/</link>
      <pubDate>Mon, 05 Jul 2021 11:25:03 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/linux_process_mgr/</guid>
      <description>本文是技术团队内部分享的版本，目的是通过进程管理及调度器历史对于 Linux 进程管理的演进过程起到一个总览的作用，完整的 PDF 可以在这里 下载。水平有限，本文内容仅供参考，有错误欢迎指正。 1. 基础知识 进程类型 实时进程 非实时进程 CPU 资源占用类型 CPU 消耗性 （CPU-Bound） I/O 消耗性 （IO-Bound)</description>
    </item>
    
    <item>
      <title>BCC 到 libbpf 的转换指南【译】</title>
      <link>https://www.ebpf.top/post/bcc-to-libbpf-guid/</link>
      <pubDate>Tue, 15 Jun 2021 10:32:04 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bcc-to-libbpf-guid/</guid>
      <description>[TOC] 译者注： BPF CO-RE 项目在未来将会是非常流行的技术，其让 BPF 编写的工具能够像用户编写的其他程序一样进行二进制分发，不再需要目标机器在 BCC 框架下的 llvm/clang/linux-dev 等包的安装，并且可以跨越不同版本的内核。唯一的要求是需要运行的程序的内核采用了支持 CONFIG_DEBUG_INFO_BTF 内核编译选项，可喜的是当前不少 Linux 发行版已经内置该参数编译，比</description>
    </item>
    
    <item>
      <title>【BPF入门系列-10】使用 tracepoint 跟踪文件 open 系统调用</title>
      <link>https://www.ebpf.top/post/open_tracepoint_trace/</link>
      <pubDate>Sat, 05 Jun 2021 21:30:05 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/open_tracepoint_trace/</guid>
      <description>1. 什么是 tracepoint tracepoint 的介绍可以参见 Kernel 文档这里。从 Linux 内核 4.7 开始，eBPF 程序可以挂载到内核跟踪点 tracepoint。在此之前，要完成内核中函数跟踪的工作，只能用 kprobes/kretprobe 等方式挂载到导出的内核函数（参见 /proc/kallsyms），正如我们前几篇文章跟踪 open 系统调用方式那样。尽管 kprobes 可以达到跟踪的</description>
    </item>
    
    <item>
      <title>【BPF入门系列-9】文件打开记录结果跟踪篇</title>
      <link>https://www.ebpf.top/post/ebpf_trace_file_return/</link>
      <pubDate>Fri, 04 Jun 2021 15:49:09 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_trace_file_return/</guid>
      <description>1. 前言 在上篇文章中我们为文件 open系统调用采用了 perf_event 的方式将数据从内核上报至用户程序。但是到目前为止，我们只是实现了文件打开记录的跟踪，并没有对文件访问的结果是成功还是失败进行展示。 与 kprobe 相对应的 kretprobe 实现可以帮助我们获取到 sys_open 函数的返回值。为了拿到 sys_open 系统调用的详细信息和返回结果，我们需</description>
    </item>
    
    <item>
      <title>【BPF入门系列-8】文件打开记录跟踪之 perf_event 篇</title>
      <link>https://www.ebpf.top/post/ebpf_trace_file_open_perf_output/</link>
      <pubDate>Wed, 02 Jun 2021 15:49:09 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_trace_file_open_perf_output/</guid>
      <description>1. ebpf_perf_output 介绍 在上一篇 ”使用 ebpf 实时持续跟踪进程文件记录“ 中，我们简单介绍了使用 eBPF 跟踪文件打开记录的跟踪。为了简单演示功能，我们直接使用了 bpf_trace_printk 进行演示，正如上文所述，bpf_trace_printk 存在一些限制： 最大只支持 3 个参数，而且只运行一个 %s 的参数； 程序共享输出共享 /sys/kernel/debug/tracing/trace_pipe 文件，可能导致文</description>
    </item>
    
    <item>
      <title>【BPF入门系列-7】使用 ebpf 实时持续跟踪进程文件记录</title>
      <link>https://www.ebpf.top/post/ebpf_trace_file_open/</link>
      <pubDate>Sun, 30 May 2021 12:06:42 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_trace_file_open/</guid>
      <description>本文主要用于演示基于 ebpf 技术来实现对于系统调用跟踪和特定条件过滤，实现基于 BCC 的 Python 前端绑定，过程中对于代码的实现进行了详细的解释，可以作为学习 ebpf 技术解决实际问题的参考样例。 1. 样例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; int main() { FILE *fp; char buff[255]; printf(&amp;#34;Pid %d\n&amp;#34;, getpid()); fp = fopen(&amp;#34;./hello.c&amp;#34;, &amp;#34;r&amp;#34;); fscanf(fp, &amp;#34;%s&amp;#34;, buff); printf(&amp;#34;Read: [%s]\n&amp;#34;, buff ); getchar(); fclose(fp); return 0; } fopen 函数</description>
    </item>
    
    <item>
      <title>在 Windows 平台上启用 eBPF【译】</title>
      <link>https://www.ebpf.top/post/ebpf_on_windows/</link>
      <pubDate>Tue, 11 May 2021 15:04:10 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_on_windows/</guid>
      <description>前言 eBPF 是一项众所周知的革命性技术&amp;ndash;提供了可编程性、可扩展性和敏捷性。eBPF 已被应用于拒绝服务保护和可观察性等场景。随着时间的推移，围绕eBPF建立了重要的工具，产品和经验生态系统。尽管最初在 Linux 内核中实现了对 eBPF 的支持，但是人们越来越关注允许 eBPF在其他操作系统上使用</description>
    </item>
    
    <item>
      <title>BPF 二进制文件：BTF，CO-RE 和 BPF 性能工具的未来【译】</title>
      <link>https://www.ebpf.top/post/bpf-co-re-btf-libbpf/</link>
      <pubDate>Thu, 25 Mar 2021 10:32:04 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf-co-re-btf-libbpf/</guid>
      <description>作者： Brendan Gregg 1. 简述 BTF 和 CO-RE 这两项新技术为 BPF 成为价值十亿美元的产业铺平了道路。目前，有许多 BPF（eBPF）初创公司正在构建网络，安全性和性能产品（并且更多未浮出水面的），但是要求客户安装 LLVM，Clang 和内核头文件依赖（可能消耗超过100 MB的存储空间）是一个额外的负担。 BTF 和 CO-RE 在</description>
    </item>
    
    <item>
      <title>【BPF入门系列-6】BPF 环形缓冲区</title>
      <link>https://www.ebpf.top/post/bpf_ring_buffer/</link>
      <pubDate>Tue, 23 Mar 2021 19:36:00 +0000</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf_ring_buffer/</guid>
      <description>译者：范彬 原文地址：BPF ring buffer 当前 perf 缓冲区已成为从内核向用户空间发送数据的标准。BPF 环形缓冲区是一个新的BPF数据结构，解决了 BPF perf 缓冲区内存效率和事件重新排序的问题，同时性能达到或超过了 perf 缓冲区。 它既提供了与 perfbuf 兼容的功能，可轻松进行移植，又提供了具有更好可用性的新的 reserve / commit API</description>
    </item>
    
    <item>
      <title>[译] BPF 可移植性和 CO-RE（一次编译，到处运行）【转载】</title>
      <link>https://www.ebpf.top/post/bpf_core/</link>
      <pubDate>Tue, 16 Mar 2021 17:08:46 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/bpf_core/</guid>
      <description>译者序 译者： 赵亚楠 原文地址： http://arthurchiao.art/blog/bpf-portability-and-co-re-zh/ 本文翻译自 2020 年 Facebook 的一篇博客： BPF Portability and CO-RE， 作者 Andrii Nakryiko。 关于 BPF CO-RE 的目标，引用文中的一段总结就是： 作为一种简单的方式，帮助 BPF 开发者解决简单的移植性问题（例如读取结构体的字段），并且 作为一种不是最优，但可用的方式，帮助 BPF 开发者 解决复杂的移植</description>
    </item>
    
    <item>
      <title>初识容器安全项目 Falco</title>
      <link>https://www.ebpf.top/post/hello_falco/</link>
      <pubDate>Fri, 26 Feb 2021 10:27:09 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/hello_falco/</guid>
      <description>1. 为什么需要 Falco？ 容器化普及进行的如火如荼，但是无论是公有云环境还是企业内部的容器化环境，都有可能会面对部分异常的用户行为，有些是有意为之，有些可能是无意之失，但是都可能给容器底层的主机造成安全的隐患。 容器的工作模式是共享宿主机内核，从出道以来就面临着各种安全的问题，比如 Fork</description>
    </item>
    
    <item>
      <title>使用 GDB &#43; Qemu 调试 Linux 内核</title>
      <link>https://www.ebpf.top/post/qemu_gdb_busybox_debug_kernel/</link>
      <pubDate>Thu, 04 Feb 2021 11:03:54 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/qemu_gdb_busybox_debug_kernel/</guid>
      <description>1. 概述 在某些情况下，我们需要对于内核中的流程进行分析，虽然通过 BPF 的技术可以对于函数传入的参数和返回结果进行展示，但是在流程的调试上还是不如直接 GDB 单步调试来的直接。本文采用的编译方式如下，在一台 16 核 CentOS 7.7 的机器上进行内核源码相关的编译（主要是考虑编译效率），调试则是基于 VirtualBox 的 Ubuntu 20.04 系统中</description>
    </item>
    
    <item>
      <title>【BPF入门系列-5】基于 eBPF 实现容器运行时安全</title>
      <link>https://www.ebpf.top/post/ebpf_container_security/</link>
      <pubDate>Fri, 01 Jan 2021 07:36:00 +0000</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_container_security/</guid>
      <description>本文作者： 范彬 1 前言 随着容器技术的发展，越来越多业务甚至核心业务开始采用这一轻量级虚拟化方案。作为一项依然处于发展阶段的新技术，容器的安全性在不断提高，也在不断地受到挑战。天翼云云容器引擎于去年11月底上线，目前已经在22个自研资源池部署上线。天翼云云容器引擎使用 ebpf 技术实现了细粒</description>
    </item>
    
    <item>
      <title>【BPF网络篇系列-2】容器网络延时之 ipvs 定时器篇</title>
      <link>https://www.ebpf.top/post/ebpf_network_kpatch_ipvs/</link>
      <pubDate>Wed, 30 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_network_kpatch_ipvs/</guid>
      <description>1. 前言 趣头条的容器化已经开展了一年有余，累计完成了近 1000 个服务的容器化工作，微服务集群的规模也达到了千台以上的规模。随着容器化服务数量和集群规模的不断增大，除了常规的 API Server 参数优化、Scheduler 优化等常规优化外，近期我们还碰到了 kubernetes 底层负载均衡 ipvs 模块导致的网络抖动问题，在此把整个</description>
    </item>
    
    <item>
      <title>kpatch 热修 ipvs estimation_timer 内核延时问题</title>
      <link>https://www.ebpf.top/post/kpatch_ipvs_timer/</link>
      <pubDate>Thu, 03 Dec 2020 20:28:19 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/kpatch_ipvs_timer/</guid>
      <description>1. kpatch 是什么？ livepatch 实时或动态内核修补允许为正在运行的内核提供功能增强，无需重新启动系统，这对于某些在线系统修复安全漏洞非常有帮助。 Kpatch 是给 Linux 内核 livepatch 的工具，由 Redhat 公司出品。最早出现的打热补丁工具是 Ksplice。但是 Ksplice 被 Oracle 收购后，一些发行版生产商就不得不开发自己的热补丁工具，分别是 Redhat 的 Kpatch 和</description>
    </item>
    
    <item>
      <title>【BPF网络篇系列-1】k8s api-server slb 异常流量定位分析</title>
      <link>https://www.ebpf.top/post/ebpf_network_traffic_monitor/</link>
      <pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_network_traffic_monitor/</guid>
      <description>1. k8s master 的流量整体架构 最近 k8s 集群新增不少服务，使得集群的 Pod 数量激增，某天接受到线上 3 台 Master 前置 SLB 流量丢失的告警（SLB 为阿里 ACK Master 默认的 SLB，默认 4 层 SLB，监听端口 6443），通过 SLB 控制台查看，在 8:00 - 9:00 的时刻，整个集群的出口流量带宽已经超过 5G，而阿里的 SLB 流量带宽最大为 5Gbps，</description>
    </item>
    
    <item>
      <title>【Linux负载系列-2】Linux CPU 使用率低 Load 负载高场景测试</title>
      <link>https://www.ebpf.top/post/sys_linux_load_avg2/</link>
      <pubDate>Mon, 16 Nov 2020 20:28:19 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/sys_linux_load_avg2/</guid>
      <description>1. Linux Load 负载高 在 Linux 系统上平均负载包括了运行的进程和正在等待运行的进程，也包括了不可中断状态执行磁盘 I/O 的进程（ Uninterruptible Sleep））。这意味着在 Linux 上不能单用 CPU 余量或者饱和度，因为不能单从这个值来推断 CPU 或者磁盘负载。 Linux 系统中如果等待 IO 的进程多了，那么也会导致系统的平均负载升高，则是因为平均负</description>
    </item>
    
    <item>
      <title>【Linux负载系列-1】Linux 系统的平均负载（Load Avarage）</title>
      <link>https://www.ebpf.top/post/sys_linux_load_avg1/</link>
      <pubDate>Sat, 14 Nov 2020 18:52:52 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/sys_linux_load_avg1/</guid>
      <description>1. 平均负载（Load Average)概念 1.1 单核 CPU 系统 单个 CPU 的处理能力和负载情况可以用下图表达，如果为1.0 表明负载已经饱和，CPU 没有更多的处理能力： 图中的卡车等同于 CPU 的时间片概念（一般情况下对应于需要处理的进程），Linux 称之为运行队列长度。 运行队列长度 = 正在运行的 + 等待运行</description>
    </item>
    
    <item>
      <title>【BPF入门系列-4】如何在 BPF 程序中正确地按照 PID 过滤？</title>
      <link>https://www.ebpf.top/post/ebpf_prog_pid_filter/</link>
      <pubDate>Thu, 12 Nov 2020 21:20:06 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_prog_pid_filter/</guid>
      <description>1. 前言 在 bpf 的实现中我们经常在内核 helper 函数 bpf_get_current_pid_tgid() 来进行用户空间进程 pid 进行过滤，那么到底如何写呢？ 在 BCC 项目中有不少程序直接使用 bpf_get_current_pid_tgid() 直接与用户空间传入的 pid 对比，也有使用 bpf_get_current_pid_tgid() &amp;gt;&amp;gt; 32 进行过滤的，那么使用者或者开发者到底应该使用哪种方式，这篇文章可以帮你彻底解决这类的疑惑。 2. Linux 进程与线程 在 Linux 系统中进程在</description>
    </item>
    
    <item>
      <title>【BPF入门系列-3】BPF 环境搭建</title>
      <link>https://www.ebpf.top/post/ebpf_c_env/</link>
      <pubDate>Wed, 11 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_c_env/</guid>
      <description>1. 内核版本选择 补丁 Prepatch： Prepatch 或 &amp;ldquo;RC&amp;rdquo; 内核是主线内核的预发布版本，主要针对其他内核开发者和 Linux 爱好者。它们必须从源码中编译，并且通常包含新的功能，这些功能必须在稳定发布之前进行测试。Prepatch 内核由 Linus Torvalds 维护和发布。 主线版 Mainline： 主线版本由 Linus Torvalds 维护。它是介绍所有新</description>
    </item>
    
    <item>
      <title>【BPF入门系列-2】BPF 学习路径总结</title>
      <link>https://www.ebpf.top/post/ebpf_learn_path/</link>
      <pubDate>Tue, 10 Nov 2020 16:56:41 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_learn_path/</guid>
      <description>1. 为什么要学习 BPF 可以先从 ebpf.io 网站获取一个简单的了解，首页内容翻译如下。 Linux 内核一直是实现监控/可观察性、网络和安全性的理想场所。不幸的是，这往往是不切实际的，因为它需要改变内核源代码或加载内核模块，并导致层层抽象叠加。eBPF 是一项革命性的技术，它可以在 Linux 内核中运行沙盒程序，而无需改</description>
    </item>
    
    <item>
      <title>About</title>
      <link>https://www.ebpf.top/about/</link>
      <pubDate>Mon, 09 Nov 2020 18:04:26 +0800</pubDate>
      
      <guid>https://www.ebpf.top/about/</guid>
      <description>“eBPF 是我见过的 Linux 中最神奇的技术，没有之一，已成为 Linux 内核中顶级子模块，从 tcpdump 中用作网络包过滤的经典 cbpf，到成为通用 Linux 内核技术的 eBPF，已经完成华丽蜕变，为应用与神奇的内核打造了一座桥梁，在系统跟踪、观测、性能调优、安全和网络等领域发挥重要的角色。为 Service Mesh 打造了具备 API 感知和安</description>
    </item>
    
    <item>
      <title>【BPF入门系列-1】eBPF 技术简介</title>
      <link>https://www.ebpf.top/post/ebpf_intro/</link>
      <pubDate>Sun, 08 Nov 2020 22:21:00 +0000</pubDate>
      
      <guid>https://www.ebpf.top/post/ebpf_intro/</guid>
      <description>eBPF 技术简介 由范老师和我一起翻译的图书 《Linux内核观测技术BPF》 已经在 JD 上有现货，欢迎感兴趣 BPF 技术的同学选购。链接地址 https://item.jd.com/72110825905.html “eBPF 是我见过的 Linux 中最神奇的技术，没有之一，已成为 Linux 内核中顶级子模块，从 tcpdump 中用作网络包过滤的经典 cbpf，到成为通用 Linux 内核技术的 eBPF，已经完成华丽蜕</description>
    </item>
    
    <item>
      <title> Markdown 高效建站指南 Hugo/Typora/Chevereto/Docker/Nginx</title>
      <link>https://www.ebpf.top/post/markdown_blog/</link>
      <pubDate>Sat, 07 Nov 2020 11:34:42 +0800</pubDate>
      
      <guid>https://www.ebpf.top/post/markdown_blog/</guid>
      <description>1. 概览 本系列博客使用 Markdown 编写，建站工具为 Hugo，Markdown 编辑器采用 Typora，图床使用自建的 Chevereto，生产环境部署采用 Nginx + Docker 。 最终形成的效果是可以对于本地的截图在 Typora 粘贴过程中自动上传到 Chevereto 搭建的图床，极大地方便了图文排列的 Markdown 问题，由于采用自建图床也避免了外部商用</description>
    </item>
    
  </channel>
</rss>
