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だ。次ページでその詳細をみていこう。

  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つプレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?