7章eBPFのプログラムとアタッチメントタイプ
ここまでの章で確認したたくさんのeBPFプログラムのサンプルコードは、さまざまなタイプのイベントにアタッチしていました。kprobeにアタッチしたものがありましたし、XDPプログラムが新しく到着したネットワークパケットを扱っている場合もありました。他にもアタッチできるイベントはいろいろあります。本章ではその他のプログラムタイプと、それらがどのようにさまざまなイベントにアタッチできるのかについて詳しく見ていきましょう。
GitHubリポジトリ(https://github.com/lizrice/learning-ebpf)にあるコードや手順を用いて、本章の例をビルドして実行することができます。本章のコードは 本書執筆時点で、サンプルコードの中にはARMのプロセッサでは動作しないものもあります。 |
現在、uapi/linux/bpf.h
(https://oreil.ly/6dNIW)ヘッダにはおおよそ30のプログラムタイプと、40を超える数のアタッチメントタイプが列挙されています。アタッチメントタイプは、プログラムをどこにアタッチするかの詳細を定義しています。多くのプログラムタイプにおいて、アタッチメントタイプはプログラムタイプから推測可能です。その一方で、カーネル内のさまざまな場所にアタッチが可能なプログラムタイプもあります。この場合はアタッチメントタイプも同時に指定されなければなりません。 ...
Get 入門 eBPF ―Linuxカーネルの可視化と機能拡張 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.