
Microsoft、eBPFをWindows上で利用可能にする計画 29
計画 部門より
Microsoftは10日、eBPFをWindows上で実行できるようにする計画を発表した(Microsoft Open Source Blogの記事、 Phoronixの記事、 The Registerの記事、 BetaNewsの記事)。
eBPFはカーネルソースコードを変更したり、カーネルモジュールを読み込んだりすることなしにLinuxカーネル上でサンドボックス化されたプログラムを実行する仕組み。プログラム可能性や拡張性、敏捷性を提供する革新的な技術として知られており、DoS保護などのユースケースに適用されてきた。eBPFサポートは元々Linuxカーネル上に実装されたものだが、他のOSで利用可能にすることや、カーネルだけでなくユーザーモードのサービスやデーモンにも拡大することへの関心が高まっているという。
Microsoftのebpf-for-windowsプロジェクトはWindows 10/Server 2016以降でeBPFを動作させるもので、開発者が使い慣れたeBPFツールチェーンやAPIを利用可能にすることを目指す。プロジェクトはeBPFのフォークではなく、IO VisorのuBPFやvbpfのPREVAIL eBPF verifierを含む既存の複数のeBPFオープンソースプロジェクトがWindows上で実行できるよう、Windows特有のホスト環境を追加する。プロジェクトは一般に適用可能(Linux固有ではない)なフックやヘルパーをeBPFプログラムでサポートすることを意図しており、eBPFプログラムとやりとりするアプリケーションにソースコードの互換性を提供するLibbpf APIをWindows上で公開するとのことだ。
参考資料どうぞ (スコア:2, 興味深い)
Berkeley Packet Filter(BPF)入門
https://www.atmarkit.co.jp/ait/series/11804/ [atmarkit.co.jp]
いまさら人に聞けないBPF系の小連載。よくあるミニVMとどう違うかも書いてあった…と思う。
今後連載再開になるかもね。
Re: (スコア:0)
記事の題名を読んだだけだけど、いつの間にBPFこんなことになったの???
昔はただのネットワークパケットフィルタだったのに、カーネルのデバッグとかDTraceみたいなことになってるんだけど!?
Re: (スコア:0)
これは普通のユーザーはカーネルハッカーか何か特殊な用途で使う以外あまり利用機会は無いのでは?
知識として存在を知っておけばいつかは役に立つ系かな
Re: (スコア:0)
ともよLinux?
Windowsでもサンドボックス (スコア:0)
Vistaあたりから、Windowsでもサンドボックス的な機能はあるのでは?
MS製ブラウザとかそういった機能を使ってたような
Re: (スコア:0)
開発者が使い慣れたeBPFツールチェーンやAPIを利用可能にすることを目指す。
Re: (スコア:0)
全然違うよ.そんなこと言い出したら昔から公園にある砂場もサンドボックスです.
「名前を聞いたことがある」ってだけで判ってる気になるのはやめましょう.
今回の話は
1) カーネルモジュール(ドライバ)単位でカーネル内にサンドボックスを用意する点
2) Linuxで開発されてきたeBPFとソースコードレベルでの互換性を目指している点
この2点だけでも従来のWindowsのサンドボックス的なものとは全く別物です.違いは他にもたくさんあるけど詳細は割愛.
Re: (スコア:0)
Vista から、というと UAC の事かな…?
Internet Explorer でも確かに「保護モード」という名称で採用されています。が、適用先が非カーネル領域 (通常の exe プログラムが動作する Win32) での話になるので eBPF の目指す方向性とは異なると思います。
Re: (スコア:0)
いろんな種類/目的のサンドボックスがあるから、なんと言えんが、Vistaからというなら、ファイルシステムとレジストリをネットワーク跨いだトランザクション張れるようになったやつじゃないかね。
トランザクションはって、中でいろいろやってロールバックすれば、何事もなかったように復元される。Vista/7世代のインストーラとかではよく使われてた。PC間のライセンス移動がアトミックに保証できたしな。
Win10でも残ってはいるけど、Win8からは非推奨にされてる。
UACはサンドボックスとは違うし。
BPFってバークレーパケットフィルターじゃなかったのか (スコア:0)
道理で、なぜこんなところにBPFが?と思ったわい
Re:BPFってバークレーパケットフィルターじゃなかったのか (スコア:1)
// Band Pass Filterでもないようだ
Re: (スコア:0)
eBPFのBPFもバークレーパケットフィルターですよ。元の意味が失われただけで。
ハンバーグみたいなみたいなもんか。
和風ハンバーグ → 和風ハンブルグ風ステーキ。
チーズバーガー → バンズにチーズと (ハン)ブルグ風ステーキを挟んだもの。
Re: (スコア:0)
そこはDHCみたいなもんか
も追加で。
# BHCでもDDTでもなく
Re: (スコア:0)
フィルタが進化して内外のデータを横取り抱え込みファンクションだけを借りる仮想機械に進化したと
逆なんじゃないかな (スコア:0)
不安定な旧型のWindows10を動かす方がデメリットしかない。
マイクロソフトもWindowsを開発中止して
LinuxベースにWindowsアプリを動かすベースを作った方がいいんじゃないかと
こんな不安な作りでは先がないんだし。
Re: (スコア:0)
先はないかもしれないが、まだまだ儲かってるだろ。
こういうとき、あっさり「両方」に投資しちゃうのが、MSの強み。
Re: (スコア:0)
またあんたか。大人しくAppleでもLinuxでも使ってろよ。
Re: (スコア:0)
それらを「道具として使える」人間なら
>LinuxベースにWindowsアプリを動かす
こんなの出来たらいいな程度には思っても強く望むことはないよ。
Re: (スコア:0)
あっ!日本語勉強中のおじさんだ!
Re: (スコア:0)
「いいんじゃないかと」と思うのなら、なぜ自分で作らない?作ってみせてほしい。
Re: (スコア:0)
不安定な旧型のLinuxを動かす方がデメリットしかない。
だからWindowsベースでLinuxの機能を部分的に取り込む方が賢い。
Re:逆なんじゃないかな (スコア:1)
Re: (スコア:0)
その中でWINEを動かして・・・だな。
モノリシック (スコア:0)
ユーザーランドなんかいらなかったんや
全部カーネル内で実行すればよかったんや!
ってこと!?
時代はモノリシックカーネルの完全勝利なの?
Re: (スコア:0)
その昔、「カーネル内でhttpdを動かせばめっちゃ高速じゃね?」っていう発想から、 khttpd (TUX web server) [wikipedia.org] ってのが作られておってのぉ・・・・
Re: (スコア:0)
付け足し。NTにも、できるだけカーネル内で処理してみようっていって、http.sysってのがあるよ。ちょっと怖い気もするけど。
Re: (スコア:0)
ソースコードレベルで奇麗にモジュール化して分離されてれば、
実行バイナリがモジュール化されなくても保守性がいいのがLinuxや*BSDだな
まあ、CPUの性能やキャッシュサイズも上がったし、パフォーマンスを落とさないマイクロカーネル実装の研究も進んだので、
Linuxとかマイクロカーネル化してもいいかもね
L1L2L3$を持って、L3$が16MB以上のCPUに最適化したマイクロカーネルOSとかなら、
現状の技術だとパフォーマンスほとんど落ちなさそう
Re: (スコア:0)
>16MB以上のCPUに最適化
汎用性が売りのOSで特定条件のときだけ速くなってもなぁ…
AVX512特化やるのと大差ないし。
Re: (スコア:0)
16MBだと現状Zen3専用だな。
ってのは冗談だとして、8MBまでに納めれば10年前のある程度のCPUからカバーされるので
ハイパフォーマンスモードとして実装はアリだと思う。