eBPFはコードを変更したりカーネルモジュールをリロードしたりせずにLinuxカーネル機能を拡張するために使われるテクノロジーだ。eBPFは、Linux Foundation内でホストされる独自の財団を持つこととなり、Facebook、Google、Isovalentなどの創設メンバを発表している。
eBPFでは、カーネルスペースとユーザスペースの間にブリッジレイヤを設けており、プログラマが利用できるいくつかの事前定義されたフックを介して、実行時にカーネルの動作を再プログラミングできるようになっている。安全な操作を保証するために、eBPFプログラムは、実行時に検証でき、サンドボックス内で実行されるカスタムバイトコードを使用して定義される。これにより、eBPFプログラムはLinuxカーネルモジュール自体よりも安全となる。Linuxカーネルモジュール自体は実行時にメモリにロードされ得るため、カーネルがクラッシュする可能性がある。さらに、カーネルモジュールは特定のカーネルバージョンに厳密に関連付けられているため、より高いメンテナンスコストが必要となる。
eBPFの共同開発者でありメンテナンスを担当するAlexei Starovoitov氏によると、eBPFによって、ネットワーキング、セキュリティ、仮想化など、リスクが高くコストがかかるカーネル機能をすばやく反復する新しい方法が提供される。
KubernetesとDockerのデプロイのセキュリティを向上させるeBPFの使用例は、GoogleのCiliumだ。これは「iptables on steroids」と呼ばれ、サービスメッシュに特有の機能を提供する。eBPFは、Facebook、Google、その他の企業でのゼロデイエクスプロイトにパッチを適用するためにも使われている。これに関連して、MicrosoftがeBPFをWindowsに導入するために積極的に取り組んでいることは注目すべき点であろう。
eBPF Foundationの創設は、eBPFの採用が拡大していることの表れである。これは特にクラウドネイティブの世界に関連してのものだ。このように、eBPFの共同作成者でメンテナンス担当でもあるDaniel Borkmann氏は述べている。
eBPF Foundationの目標は、eBPFへの貢献を広げ、Linuxを超えて成長させることだ。さらに、この財団はeBPFのさらなる採用を促進するために、イベントやコラボレーションを開催する。実際、財団はeBPF 2021サミットの直前に発表された。そこでは、eBPFのいくつかの主要なユースケースとして、可観測性、負荷分散、一時的実行攻撃の軽減などが示された。