マイクロソフト、「Windows」にeBPFを移植するオープンソースプロジェクトを立ち上げ

Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 編集部

2021-05-13 13:16

 「Windows」上でLinuxのeBPF(extended Berkeley Packet Filter)を実行することはできるだろうか。「Windows Subsystem for Linux(WSL)2.0」を使っているのであれば、答えはもちろんイエスだ。WSLを使えば、「Windows 10」上でLinuxカーネルを稼働させていることになるためだ。しかし、eBPFはWindowsネイティブな形で実行できるのだろうか。それはできない相談だ。だが、この状況は近いうちに変わるだろう。Microsoftは米国時間5月10日、Windows 10と「Windows Server 2016」、そしてそれ以降のバージョン上でeBPFを実行できるようにするためのオープンソースプロジェクトを立ち上げたと発表した。

 これはWindows用のeBPFを開発するというプロジェクトだ。このeBPFを用いることでWindows開発者は、Windowsの既存バージョン上でeBPFツールチェーンとAPIを使用できるようになる。これは簡単な話ではない。それでも、他の人々が培った成果に基づくことで実現できるはずだ。同プロジェクトは、eBPF関連の複数の既存オープンソースプロジェクトに対して「グルー」(のり)となるものを追加し、Windows上で実行できるようにすることを目指す。

 こうした必要性はあるのだろうか。Linux開発者であればその答えは分かっているだろうが、Windows開発者であればまだ分からないかもしれない。以下はその説明だ。

 まず、全ての話は30年近く前に生み出されたBPF(Berkeley Packet Filter)というファイアウォール向けのプログラムから始まる。これは、仮想的なレジスターマシン上でネットワークパケットの捕捉とフィルタリングを実行するという設計に基づいている。これは有用なプログラムだった。しかし長い時間がたつうちに、BPFをモダンなプロセッサーに対応したeBPFへとアップデートし、ユーザーが提供したプログラムをカーネル内で実行できるようにすれば、はるかにパワフルなプログラムになるということを、Linuxカーネルの開発者であり、FacebookのソフトウェアエンジニアでもあるAlexei Starovoitov氏は気付いたのだった。そして、このeBPFがLinuxカーネルのバージョン3.15に搭載されたことを受け、プログラマーらはすぐに、あらゆる種類のプログラムでeBPFを使用するようになった。

 eBPFは今日でも、ネットワークのフィルタリングや分析、管理に大きな力を発揮しているが、他の多くの作業にも用いられるようになっている。eBPFはシステムコールのフィルタリングや、プロセスのコンテキストトレーシングにも用いられている。つまり、トレーシングや、システムのプロファイリング、低水準のカスタムメトリクスの収集および集積をプログラミングするための万能ナイフのような存在となっている。このためeBPFはより高い水準において、「Cilium」や「Falco」「Tracee」といったセキュリティプログラムのほか、「Hubble」や「Pixie」のような「Kubernetes」監視プログラム、「Clang」といったツールチェーンの土台ともなっている。

 今回のプロジェクトはeBPFをフォークするという話では全くない。eBPFのためにWindows固有のホスティング環境を追加するというだけの話だ。

 最も重要なのは、Windows開発者がeBPFプログラムを使用できるようになり、WindowsとLinuxをまたがったソースコードレベルでの互換性がもたらされるという点にある。一部はLibbpf APIを利用して行われる。

 eBPFのコードの中には、Linux固有の内部データ構造などが用いられているものもあるため、Windowsからは使用できない場合ももちろんある。しかし、その他多くのAPIやフックはプラットフォーム間で共有できるだろう。Linux開発者はeBPFによって大きな力を手にした。今度は、Windows開発者もその力を手にすることになる。

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]