eBPFを基盤とする、Linuxのネットワークトラフィックを監視・解析するためのTUI。
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
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 の数値は毎日更新されます。
関連プロジェクト
eBPFプログラムのコンパイルとロード向けにlibbpfをラップするCライブラリ兼プラットフォーム。リモートコンパイルとカーネルバージョン別のバックポートに対応します。
Kubernetesクラスター向けのeBPFベースCNI。IDベースのL3〜L7ポリシーやkube-proxyの置き換えに対応し、ネットワーク、セキュリティ、可観測性を提供します。
libbpfとCO-REを中心に、C、Go、Rustの短く実行可能な例で学ぶ、ステップ形式のeBPFチュートリアル。
daeのeBPF設計と設定構文に準拠し、sing-box風のアウトバウンドグループを備えた、Rust製の実験的なLinux透過プロキシエンジン。
分散型・クラウドネイティブなマイクロサービスアーキテクチャの監視、トレース、診断を行うAPMシステム。