注目★★★★★Lobsters
Linux カーネル、$ORIGIN に対応へ eBPF で動的インタプリタ選択を実装
30秒で把握
- 1Farid Zakaria が Linux カーネルに $ORIGIN サポート提案、Christian Brauner が eBPF + binfmt_misc による動的インタプリタ選択実装を提案
- 2L フラグディスパッチで argv[0] や /proc/self/exe の透過性問題を解決、従来 dynamic loader が変更不要に
- 3Nix 関連のパッチは -next にマージ予定、NixOS モジュル化を検討中・PT_INTERP_NIX セグメントで後方互換性確保
要約
Farid Zakaria は Nix における再配置可能バイナリの実現に向け、Linux カーネルの $ORIGIN サポートを提案した。Christian Brauner (VFS メンテナ) は当初の直接サポート案を受けて、代わりに eBPF と binfmt_misc を組み合わせた動的インタプリタ選択の実装を提案し、パッチシリーズを作成した。この手法により、$ORIGIN の解釈に加えてシェバングやバイナリファイルの内容に基づいた柔軟なインタプリタ選択が可能になる。Christian の後続パッチは argv[0] や /proc/self/exe の透過性問題も解決し、新たな L フラグ型ディスパッチモードにより従来の dynamic loader が変更なしに動作する。パッチはカーネル -next ブランチにマージ予定。
あなたへの影響
Nix でビルドしたバイナリの互換性と可搬性が向上するため、NixOS ユーザーと Nix を本番運用するチームは今後のカーネルアップデートで binfmt_misc ベースの $ORIGIN サポート組み込みを検証する価値がある。
推奨:eBPF による動的ローダー選択は汎用的な拡張ポイントになり得るため、カスタムインタプリタが必要な環境は今後の実装詳細に注視すべき。