Repolode
aliyun

aliyun/coolbpf

eBPFプログラムのコンパイルとロード向けにlibbpfをラップするCライブラリ兼プラットフォーム。リモートコンパイルとカーネルバージョン別のバックポートに対応します。

スター
292
フォーク
44
未解決の Issue
5
最終コミット
8 時間前

これは何?

coolbpfはlibbpfの主要な機能をラップし、開発者がより少ない準備でカーネルトレースや操作のプログラムを作成できるようにします。BPF関数呼び出し用のラッパーを備えたローカルコンパイルサービスに加え、bpf.cソースファイルを受け取ってbpf.soオブジェクトを返すリモートコンパイルサービスも提供します。アプリケーション側でそのオブジェクトをロードできるため、コンパイル環境を用意する必要はありません。

また、カーネルモジュールを使って、新しいカーネルのBPF機能を古いカーネルにバックポートします。たとえば、3.10カーネルでのBPFサポートや、perfバッファーをリングバッファーに置き換える機能があります。BTFを自動生成し、Python、Go、C、Rust向けのバインディングも提供します。libcoolbpfのビルドにはelfutils-develとgccが必要で、eBPFツールにはさらにclangとllvmが必要です。

リポジトリには、コードを変更せずにSSL/TLSトラフィックとプロセスのアクティビティを取得する、LLMエージェント向けのeBPFベースの可観測性ツールAgentSightも含まれます。また、XDPプログラム向けに追加のkfuncを提供するeNetSTLなどのカーネルモジュールも含まれています。

主な機能

  • 01BPF関数呼び出し用のラッパーを備えたローカルコンパイルサービス。
  • 02ローカルでロードできるbpf.soを返すリモートコンパイルサービス。
  • 033.10カーネルでのBPF対応や、perfバッファーをリングバッファーに置き換える機能など、カーネルモジュールによるバックポート。
  • 04BTFの自動生成。
  • 05Python、Go、C、Rust向けの言語バインディング。
  • 06AgentSightはコードを変更せず、eBPFを使ってLLMエージェントのトラフィックとプロセスを観測します。

ユースケース

  • ローカルのコンパイルツールチェーンを管理せずにeBPFトレースツールを構築する。
  • カーネルモジュールによるバックポートを通じて、古いカーネルでBPFプログラムを実行する。
  • Linux上でAIエージェントのネットワークトラフィックや子プロセスのアクティビティを観測する。

クイックスタート

  1. 1

    ビルド依存パッケージ(elfutils-devel、gcc)をインストールする

  2. 2

    プロジェクトのルートディレクトリから libcoolbpf をインストールする

    ./install.sh
  3. 3

    プロジェクトのルートディレクトリから syscall のサンプルをビルドする

    mkdir -p build && cd build && cmake -DBUILD_EXAMPLE=on .. && make

使う前に知っておきたいこと

  • eBPF ツールのビルドには、gcc と elfutils に加えて clang と llvm が必要です。
  • カーネルバージョンのバックポートなど一部の機能では、カーネルモジュールの読み込みが必要なため、root 権限が必要です。
  • README には、記載されている依存関係以外に、ライセンスや安定性に関する明示的な注意事項はありません。

収録されている特集

トピック

よくある質問

coolbpf とは?
eBPFプログラムのコンパイルとロード向けにlibbpfをラップするCライブラリ兼プラットフォーム。リモートコンパイルとカーネルバージョン別のバックポートに対応します。 coolbpfはlibbpfの主要な機能をラップし、開発者がより少ない準備でカーネルトレースや操作のプログラムを作成できるようにします。BPF関数呼び出し用のラッパーを備えたローカルコンパイルサービスに加え、bpf.cソースファイルを受け取ってbpf.soオブジェクトを返すリモートコンパイルサービスも提供します。アプリケーション側でそのオブジェクトをロードできるため、コンパイル環境を用意する必要はありません。
coolbpf は無料で使えますか?ライセンスは?
coolbpf は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
coolbpf は今もメンテナンスされていますか?
活発にメンテナンス中。coolbpf の最終コミットは 2026年11月7日 です。
coolbpf は何に使えますか?
ローカルのコンパイルツールチェーンを管理せずにeBPFトレースツールを構築する。 カーネルモジュールによるバックポートを通じて、古いカーネルでBPFプログラムを実行する。 Linux上でAIエージェントのネットワークトラフィックや子プロセスのアクティビティを観測する。
coolbpf のインストール方法は?
ビルド依存パッケージ(elfutils-devel、gcc)をインストールする プロジェクトのルートディレクトリから libcoolbpf をインストールする: ./install.sh プロジェクトのルートディレクトリから syscall のサンプルをビルドする: mkdir -p build && cd build && cmake -DBUILD_EXAMPLE=on .. && make
coolbpf はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/aliyun/coolbpf

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト