[BPF Internals | USENIX](https://www.usenix.org/conference/lisa21/presentation/gregg-bpf) ## Abstract > Extended BPF(別名eBPF)は、安全でパフォーマンスの高いイベントドリブン型プログラムのための新しいタイプのソフトウェアで、広く採用されています。Netflixのクラウドインスタンスではデフォルトで15個、Facebookでは40個以上のBPFが実行されています。これらのプログラムは、ネットワーク、パフォーマンスツール、セキュリティポリシー、デバイスドライバ、アプリケーションプロキシなど、様々な用途に使われています。多くの人が、BPFはLinuxを支配しつつあると言っています。 > この講演では、BPFが内部的にどのように動作しているかを説明し、いくつかの最新のパフォーマンス観測ツールを分解して深堀りします。具体的には、カーネルのBPF実装、ベリファイア、JITコンパイル、BPF実行環境、BPF命令セット、各種イベントソース、ユーザスペースでのBPFの使われ方について、bpftraceプログラムを例にとって説明します。また、bpftraceがどのようにLLVM IRとBPFバイトコードにコンパイルされ、イベントごとのデータと集約されたマップデータがどのようにカーネルからフェッチされるかを示しています。