littlebot
Published on 2025-04-11 / 4 Visits
0

【源码】基于 C 语言和 libbpf 框架的 eBPF 进程追踪系统

项目简介

本项目是一个基于 C 语言和 libbpf 框架开发的 eBPF 进程追踪系统,可用于追踪进程事件并处理相关数据。

项目的主要特性和功能

主要特性

  • 利用 Makefile 实现项目的一键构建。
  • 通过 Dockerfile 创建项目的容器化环境。
  • 借助 flake.nix 进入包含所需依赖的开发 shell。
  • 提供 C 语言使用 libbpf 开发所需的所有必要依赖。

功能模块

  • 采用 BPF 语言编写程序追踪进程事件。
  • 运用 argp 库解析命令行参数,实现灵活配置。
  • 通过 BPF 程序收集事件数据,并在用户空间处理和输出。
  • 设置信号处理函数,确保程序优雅退出。

安装使用步骤

安装步骤

若已复制仓库,使用以下命令更新 git 子模块: sh git submodule update --init --recursive 安装依赖,不同系统安装方式不同。在 Ubuntu 上,可运行 make install 或以下命令: sh sudo apt-get install -y --no-install-recommends \ libelf1 libelf-dev zlib1g-dev \ make clang llvm 确保系统支持 eBPF 技术。

使用步骤

  1. 构建项目: sh make build
  2. 运行项目: console sudo src/bootstrapconsole docker run --rm -it --privileged -v $(pwd):/examples ghcr.io/eunomia-bpf/libbpf-template:latest
  3. 项目将加载并验证 BPF 程序,附加到相应的 tracepoints 上,开始追踪进程事件,并将数据写入环形缓冲区,用户空间程序可读取和处理这些数据。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】