GCC コンパイラ スイートに含まれています
GCC には、バイトコード生成用のバックエンドに加えて、eBPF 用の libgcc ポートと、カーネル提供のローダーを使用して eBPF 仮想マシンでコードを実行できるようにする ELF ファイルを生成するツールが含まれています。 GCC で eBPF をサポートするパッチは、Oracle のエンジニアによって準備されました。
eBPF のプログラムは C 言語のサブセットで定義し、コンパイルしてカーネルにロードできます。実行前に、eBPF インタープリタは、許可された命令の使用についてバイトコードをチェックし、コードに特定のルール (ループ禁止など) を課します。
当初、Linux 上で eBPF をコンパイルするには、LLVM ベースのツールが使用されました。 GCC の eBPF サポートは、追加の依存関係をインストールすることなく、1 つのツールキットを使用して Linux カーネルと eBPF プログラムを構築できるため、興味深いものです。
eBPF プログラムの形式では、ネットワーク操作ハンドラーの作成、トラフィックのフィルター処理、帯域幅の管理、システムの監視、システム コールの傍受、アクセスの制御、操作の頻度と時間のカウント、kprobes/uprobes/tracepoint を使用したトレースの実行を行うことができます。
出所: オープンネット.ru