Inotifyとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Inotifyの意味・解説 

inotify

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/01 13:40 UTC 版)

inotify (inode notify) とは、ファイルシステムへの変更を通知するようファイルシステムを拡張して、その変更をアプリケーションに報告するLinuxカーネルサブシステムである。inotifyに先行して存在し、類似の目標を持つdnotify英語版は、inotifyに取って代わられている。

inotifyはJohn McCutchanが作成し[1]、2005年8月29日にリリースされたLinuxカーネルのバージョン2.6.13で、inotifyはLinuxカーネルメインラインにマージされた[2]。以降のバージョンのLinuxカーネルでは、inotifyはさらに改良されている。GNU Cライブラリ (glibc) では、inotifyに必要なライブラリインタフェースは2006年3月にリリースされたバージョン2.4で追加され、2006年9月にリリースされたバージョン2.5でinotifyを完全にサポートした[3]

inotifyの主な用途の1つとしては、Beagleなどのデスクトップ検索ユーティリティが挙げられる。inotifyの機能により、数分おきにファイルシステム変更をスキャンするといった非常に効率が悪い作業をせずに、変更されたファイルの再インデックス化が可能となる。

inotifyは、ディレクトリビューの自動更新、設定ファイルの再読み込み、ログの変更、バックアップ同期アップロードなどにも使える。

制限

inotifyにより課される制限は以下の通りである:

  • inotifyは再帰的なディレクトリ監視をサポートしていない。このため、inotifyによる監視はサブディレクトリ毎に個別に行う必要がある[4]
  • inotifyは、sysfsprocfsによるイベントは一部しか報告しない。
  • inotify経由の通知は、直近に発生したファイルシステムのイベントをカーネルが全て認識していることが前提となっているが、NFSなどのネットワーク接続されたファイルシステムに対してそれが常にできているとは限らない。NFSなどはあるクライアントによる変更をすぐには他のクライアントへブロードキャストしないからである。
  • inotifyは改名されたイベントを直接処理しない。つまりinotifyは改名前と改名後のそれぞれにおける2つのイベントを発行する。どの順序でイベントが通知されても良いように、イベントの内容を吟味・照合する必要がある。

歴史

  • 2004年7月 : 最初のリリースがアナウンス[1]
  • 2005年8月29日 : inotifyのコードがマージされた、Linuxカーネルのバージョン2.6.13がリリース[2]
  • 2006年3月 : 最初にinotifyのサポートをしたGNU Cライブラリ (glibc) バージョン2.4がリリース[3]
  • 2006年9月 : inotifyを完全にサポートした、glibcバージョン2.5がリリース[3]

dnotifyに対する利点

inotifyには先行して存在するdnotify英語版 APIと比べて利点が多いため、dnotifyはinotifyに置き換えられている[5][6][7]。dnotifyを使う場合、プログラムは監視用としてディレクトリ毎に1つのファイル記述子を使う必要があるため、プロセス毎のファイル記述子制限に到達した場合にボトルネックとなってしまう。後にこの問題を克服したfanotifyが作られた。さらにリムーバブルメディア使用時にdnotifyがファイル記述子を使うと問題があることも判明した。ファイル記述子はリソースをビジー状態に維持するため、デバイスをアンマウントできないからである。

その他のdnotifyの欠点としては、dnotifyの粒状性レベルが挙げられる。プログラマはディレクトリレベルでしか変更を監視できない。通知メッセージが送られた場合に発生する環境の変更に対する詳細な情報にアクセスするためにはstat構造体を使う必要があるが、stat構造体の使用は必要悪とされる。新規に生成されたstat構造体とそれに対応するキャッシュされたstat構造体との比較が、stat構造体が新規生成される度に行われるからである。

inotify APIはプログラマに対し、dnotifyが使うシグナル通知システムではなく、定着したselectとpollインターフェイスを使えるようにしているため、inotify APIが使うファイル記述子はdnotifyが使うそれよりもはるかに少ない。これにより、inotify APIを(GLibなどの)既存のselectやpollベースのライブラリと統合しやすい。

関連項目

脚注

  1. ^ a b fa.linux.kernal post [RFC[PATCH] inotify 0.8]” (2004年7月29日). 2013年8月19日閲覧。
  2. ^ a b Linux 2.6.13, kernelnewbies.org
  3. ^ a b c inotify man page
  4. ^ Robert Love, Linux system programming. オライリー、p. 236
  5. ^ Michael Kerrisk英語版 (2014年7月14日). “Filesystem notification, part 2: A deeper investigation of inotify”. LWN.net. 2017年3月26日閲覧。
  6. ^ Why inotify?
  7. ^ inotify README file

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Inotify」の関連用語

Inotifyのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Inotifyのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのinotify (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS