投稿元:
レビューを見る
日頃からカーネルモジュールなどに触れていたりクラウドネイティブな環境で作業をされている方にとっては eBPF の入門として読めるのだろうが、ユーザ空間のアプリケーションより低レイヤには触れる機会の少ない私のような読者にとっては、本書で紹介される技術の進歩のモチベーションに共感するところから敷居が高い。
とはいえ、低レイヤ寄りの技術に触れるいいきっかけになった。
以前 Ubuntu をインストールしたノートPCが手元にあったので久しぶりに引っ張り出して、ごく簡単な eBPF のプログラムなどを実行して遊びながら読み進めた。また、kprobes やカーネルモジュールなど eBPF 以前の仕組みについても軽く調べながら本書を読むことで、多少の理解の助けになった。
本書は BCC による eBPF プログラム、CO-RE アプローチ、eBPF 検証器、XDP、 Cilium のような製品の例、C 言語だけでなく Go や Rust を用いた開発環境の紹介など、eBPF に関する幾つかの話題についてコードを交えながら詳しく解説している。
全体で11章から構成されている。各章でテーマは分かれているものの、「*章に書いてあるように」といった記述がかなり多く、主張の背景て触れている内容について把握するために文章を行き来する必要がある。
今回は ePUB 形式で読んだが、読んでいる場所を覚えておくために脳のスタックを結構消費するので、紙媒体の方が読みやすいかもしれない。
本書の最後に書かれている記述が、スタンスを明らかにしている。
> eBPFプログラミングの知識は現在、持っていることは望ましいが、持っている人はまだまだ珍しいというスキルです。この状況は今後も続くでしょう。これは、ビジネスアプリケーションやゲームの開発スキルに対するカーネル開発スキルに近いものがあります。システムの下位レベルに飛び込み、重要な基盤系ツールを作りたい場合は、eBPFのスキルが役立ちます。そのときに本書が役立つことを願います。(11.4 eBPFはプラットフォームであり、機能ではない)
いつか役に立つかもしれないので、記憶に留めておきたい。