Leopard解体新書--第5回:ファイル監視を行うFSEvent

木下誠(HMDT)

2007-11-13 19:20

 前回はTime Machineを紹介したが、今回はTime Machineを補助するフレームワークを取り上げよう。FSEventと呼ばれるものだ。

どのフォルダでバックアップを行うべきか?

 前回の記事で、Time Machineはバックアップをフォルダごとにコピーして管理していることを解説した。このときに、変更されたファイルを含むフォルダのみバックアップの対象とすることで、効率化を図っている。では、このバックアップの対象にするフォルダというのは、どうやって決定されるのだろう?

 もちろん、現在のシステムのファイルと、バックアップされたファイルとをすべて比較すればできるのだが、一時間ごとにそんな時間のかかる処理を行うことはできないだろう。常識的に考えて、ファイルやフォルダに対する変更が発生するたびにそれを記憶しておき、その情報を使うことになる。

 では、そのような機能はどうすれば実現できるだろう?似たような機能を提供するものとしては、Kernel Queuesがある。これはBSDに由来する技術で、ファイル(正確に言えばファイルデスクリプタ)に対するイベントを監視して通知してくれるものだ。kqueue()とkevent()というシステムコールを利用する。

 これを利用すれば、確かにあるファイルの変更を記憶しておくことができる。だがKernel Queuesは、1つのキューが1つのファイルを監視する、という前提で作られている。Time Machineで必要になるのは、システムの大部分のファイルの監視だ。Kernel Queuesには、ちょっと相性が悪い。

 そこで、Leopardでは新しいフレームワークを追加して、この仕事をやらせることにした。それが、FSEventだ。次ページでその詳細をみていこう。

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

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

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

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

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