Linux Kernel Watch

5月版 BitKeeperからgitへ、ソースコード管理ツール大変更

上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2005/5/31

FUSEをユーザー権限でどう扱う?

 先月でも紹介した、ユーザー空間のアプリケーションでファイルシステムを提供するFUSE(Filesystem in Userspace)を利用すると、ファイルシステムを一般ユーザー権限でマウントできるようになります。

 便利そうな機能ですが、問題がないわけではありません。例えば「/tmpに何か別なものをマウントできるようになるのはまずいのではないか」という意見がありました。FUSEの用途としてsshfsなどが考えられているため、一般ユーザーがマウントしたとしても、ほかのユーザーは見ることができない機構が必要だ、という意見も出ています。また、ユーザーがファイルを作成でき、適当な権限でファイルを見せることができるため、setuidなどを実装して利用するのは難しいだろう、という議論もあります。ほかにも、FUSEのインターフェイス自体がユーザー権限やアクセス権をオーバライドするべきか否かなど、難しい問題がいろいろと出てきています。

 Miklos Szerediは前提条件として、次の5点を実現したいと主張しました。

  • FUSEの使用によって、本来の権限では不可能な操作をファイルやディレクトリに対して行えるようになってはならない(/binにファイルシステムをマウントするなど)

  • マウントポイント以下については、suidとデバイスファイルの機能を提供しない

  • マウントポイント以下については、rootであってもアクセスできないようにする

  • uid/gidや権限が矛盾する場合(別サーバのファイルシステムをマウントした場合など)でも、マウントしたオーナーについてはアクセスが制限されないようにする

  • 可能な限りの情報は、ファイルシステム経由で提供できるようにしたい

 しかし、この前提条件についても意見は一致せず、UNIXの既存の概念との整合性やセキュリティの問題などについて議論が続きました。

 Miklos Szerediは、FUSEが必要とする一部の機能を実現するために、Private Mountの機能を提案しました。これは、あるユーザーからのみマウントポイントが見えるようにする機能です。このパッチがLKMLに流れるやいなや、Al Viroは「アプリケーションがsuidだからといって、パス名の解決方法が変わってしまうような機構は、既存の多くのアプリケーションで問題となるだろう。そんなものは導入できない」と反論しました。

 FUSEを実現するには、UNIXの従来の概念とは違う視点で物事を実装していく必要があります。それをLinuxの既存のシステムにスムーズに入れるためには、まだいろいろと解決すべき問題があるようです。

参考リンク:
  FUSE http://fuse.sourceforge.net/
  FUSEベースの
ファイルシステム
http://fuse.sourceforge.net/filesystems.html

2.6.11.yツリーに適用すべきパッチとは?

 Greg K-Hがメンテナンスしているカーネル2.6.11.yツリーのリリースを見てみましょう。2.6.11.yツリーについては、先月お伝えしたとおりです。

  • 2.6.11.7
    4月5日にGreg K-Hがレビューのアナウンスを出し、4月7日にリリース

  • 2.6.11.8
    4月27日にGreg K-Hがレビューのアナウンスを出し、4月29日にリリース

 レビュー期間には、「-stable review」というタイトルでパッチのメールを出し、10個程度のパッチレビューが行われました。Alan Coxはいくつかのパッチについて「Don't see why this one is a critical bug.(このバグが致命的だとは思えないんだが)」というようなコメントを出していました。

 どのようなパッチが適切なのかについては、まだ議論が尽きないようです。

参考リンク:
  2.6.11.7のChangeLog http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.11.7
  2.6.11.8のChangeLog http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.11.8

カーネルの割り込み頻度を動的に

 Linuxカーネルは、1秒間に100〜1000回程度タイマ割り込み処理をしています。その頻度は「HZ」というマクロの値で定義されており、カーネルのコンパイル時に固定されてしまいます。HZの値が大きい方が、ユーザーの操作に対する反応が鋭敏に返ってくるようになります。逆にHZの値を小さくすると、CPUの負荷やオーバーヘッドが少なくなります。

 DynTickは、これまで静的に定義していたタイマ割り込み処理の頻度を動的に変更できるようにするパッチです。動的に変更することにより、アイドル時の電力消費節約といった効果があるそうです。すでにOMAPツリーには適用されており、実績があるそうです。

参考リンク:
  DynTick http://www.muru.com/linux/dyntick/

モジュールじゃなくても機能のオン/オフ

 カーネルモジュールとして提供されている機能は、モジュールをロードするか否かによって、その機能のオン/オフを選択できます。カーネルモジュールとして提供されておらず、カーネルに直接組み込まれている機能の場合は、その機能をオン/オフするためにカーネルを再構築する必要があります。

 非カーネルモジュールな機能も、カーネルの再構築を行わずにオン/オフを選択可能にしましょうと、Magnus Dummが提案しました。あるドライバの初期化ルーチンが起動時に動くと必ずクラッシュする、という状況に陥った場合などに便利そうです。

 Magnus Dummの提案に対して、Herbert Xuは「そもそもオン/オフを切り替えたいような機能については、モジュールにしようよ」と反論しました。

 この機能がすぐに取り込まれることはなさそうですが、あれば便利かも?

(以上、敬称略)

2/2

Index
Linux Kernel Watch 5月版
 BitKeeperからgitへ、ソースコード管理ツール大変更
  Page 1
 ソースコード管理ツールgitの登場
 gitベースによる初のカーネルリリース、今後は?
  Page 2
 FUSEをユーザー権限でどう扱う?
 2.6.11.yツリーに適用すべきパッチとは?
 カーネルの割り込み頻度を動的に
 モジュールじゃなくても機能のオン/オフ

連載 Linux Kernel Watch


 Linux Squareフォーラム Linuxカーネル関連記事
連載:Linux Kernel Watch(連載中)
Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします
連載:Linuxファイルシステム技術解説
ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する
特集:全貌を現したLinuxカーネル2.6[第1章]
エンタープライズ向けに刷新されたカーネル・コア
ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する
特集:/procによるLinuxチューニング[前編]
/procで理解するOSの状態

Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する
特集:仮想OS「User Mode Linux」活用法
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
Linuxのカーネルメンテナは柔軟なシステム
カーネルメンテナが語るコミュニティとIA-64 Linux
IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間