Repolode
microsoft

microsoft/ebpf-for-windows

既存のLinux eBPFツールチェーン、API、プログラムをWindowsカーネル上で実行できる、Windows向けeBPFランタイム。

スター
3,588
フォーク
310
未解決の Issue
322
最終コミット
8 時間前

これは何?

eBPF for Windowsは、eBPFのプログラミングモデルをWindowsに導入します。uBPF JITコンパイラやPREVAIL verifierなどの既存のeBPFプロジェクトを再利用し、clangのような標準的なeBPFツールチェーンでビルドしたプログラムをカーネルにロードできるよう、Windows向けのホスティングレイヤーを追加しています。プログラムのロードや管理には、Libbpf互換APIとコマンドラインツールのbpftoolを利用できます。

プログラムのデプロイ方法は3種類あります。ネイティブモードでは、バイトコードをCに変換してWindowsドライバーに組み込みます(推奨モードであり、HVCI有効時にも動作します)。ユーザーモードサービスを介したJITコンパイルにも対応し、デバッグビルドにのみ含まれるインタープリターも利用できます。プログラムはカーネルフックにアタッチし、Windowsカーネルの公開APIをラップするヘルパー関数を呼び出します。Windows 11およびWindows Server 2022以降に対応しています。

主な機能

  • 01clangなどの標準的なツールチェーンでビルドしたeBPFプログラムをWindows上で実行できます。
  • 02プログラムのロードに使えるLibbpf互換APIとbpftoolを提供します。
  • 03eBPFバイトコードをWindowsドライバーにコンパイルするネイティブモードを備え、HVCIにも対応します。
  • 04uBPFコンパイラを使ったJITコンパイル方式を利用できます。
  • 05Windowsカーネルの公開APIをラップするフックとヘルパー関数を提供します。

ユースケース

  • eBPFツールを使って、Windowsカーネル内で可観測性やDoS対策のロジックを実行する。
  • ソースコードを最小限変更して、eBPFベースのネットワーク処理やトレース用プログラムをWindowsに移植する。
  • HVCIが有効なシステムに、カーネルレベルのeBPFプログラムをデプロイする。

クイックスタート

  1. 1

    docs/GettingStarted.md の Getting Started Guide を読んで、プロジェクトをインストールして試してください

使う前に知っておきたいこと

  • Windows 11 以降、または Windows Server 2022 以降が必要です。
  • このプロジェクトは開発中と説明されています。
  • HVCI が有効な場合、動作するのはネイティブモードの eBPF プログラムのみです。JIT コンパイルされたプログラムは実行できず、リリースビルドにはインタープリターが含まれていないためです。

収録されている特集

トピック

よくある質問

ebpf-for-windows とは?
既存のLinux eBPFツールチェーン、API、プログラムをWindowsカーネル上で実行できる、Windows向けeBPFランタイム。 eBPF for Windowsは、eBPFのプログラミングモデルをWindowsに導入します。uBPF JITコンパイラやPREVAIL verifierなどの既存のeBPFプロジェクトを再利用し、clangのような標準的なeBPFツールチェーンでビルドしたプログラムをカーネルにロードできるよう、Windows向けのホスティングレイヤーを追加しています。プログラムのロードや管理には、Libbpf互換APIとコマンドラインツールのbpftoolを利用できます。
ebpf-for-windows は無料で使えますか?ライセンスは?
ebpf-for-windows は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ebpf-for-windows は今もメンテナンスされていますか?
活発にメンテナンス中。ebpf-for-windows の最終コミットは 2026年11月6日 です。
ebpf-for-windows は何に使えますか?
eBPFツールを使って、Windowsカーネル内で可観測性やDoS対策のロジックを実行する。 ソースコードを最小限変更して、eBPFベースのネットワーク処理やトレース用プログラムをWindowsに移植する。 HVCIが有効なシステムに、カーネルレベルのeBPFプログラムをデプロイする。
ebpf-for-windows のインストール方法は?
docs/GettingStarted.md の Getting Started Guide を読んで、プロジェクトをインストールして試してください
ebpf-for-windows はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/microsoft/ebpf-for-windows

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト