translation:working:翻訳4

テクノロジー概要

ファイルシステムイベントAPIはOS X v10.5以降で利用可能な新しいテクノロジーです。 これにより、ディレクトリ階層やその内容に起因する、あらゆる変化の通知登録ができます。

ファイルシステムイベント機構は3つのパートで構成されます:生のイベント通知を(Spotlightも利用する)スペシャルデバイス経由でユーザー空間に渡すカーネルコード、この流れをフィルタにかけ通知を送出するデーモン、そして期間中の全ての変更の記録を保管する永続的なデータベースです。

アプリケーションが通知登録を行うと、ファイルシステムイベントデーモンは監視しているディレクトリ階層のファイルが変更される度に通知を発行します。 ディレクトリそのものが変更された場合(例えば、パーミッションの変更や新規ファイルの追加)も、同様に通知されます。 押さえるべき重要なポイントは、通知の粒度はディレクトリレベルだということです。 ディレクトリ内の何かが変わった事は伝わりますが、何が変わったかは伝わりません。

複数ファイルへの変更の通知はディレクトリ毎の1つの通知に折り畳まれる事に加え、ファイルシステムイベントデーモンはディレクトリで短時間に発生した複数の通知もまとめます。 最後の変更が行われた後で、あなたは常に最低でも1つの通知を受け取るでしょう。 その上で、荒くも細かくも、あなたが希望する一時的な粒度にできます。通知登録の際、イベント間隔として最小を選択することで。

本テクノロジーをより理解するために、まず“何ではないか”を理解すべきです。 ファイルシステムの変化のきめ細かな通知登録のためのメカニズムではありません。 ウイルスチェッカーや、ファイルに対する変更を即座に検知し必要ならばそれらを阻止する技術への機能提供を意図したものではありません。 これらに対応する最も良い方法は、VFSレベルでの変更に興味を持ち検知するカーネル拡張を使うことです。

また、ファイルシステムイベントAPIは、特定のファイルの変更を検知するための設計にはなっていません。 このような目的には、より相応しいkqueue機構があります。

ファイルシステムイベントAPIは、巨大なファイルツリーの変更を受動的に監視するように設計されています。 本テクノロジーの最も明らかな用途はバックアップソフトウェアです。 実際に、ファイルシステムイベントAPIはAppleのバックアップテクノロジーの根幹を提供します。

ファイルシステムイベントAPIの別の適した用途は、プロジェクトとディスクの随所に散らばっている可能性のある数十ないし数百の関連ファイルを含む緩い集合体としてデータを格納するアプリケーション—例えばDVD Studio Proのために、整合性の保証を提供することです。 他のアプリケーションによって関連ファイルの1つが変更された際、あなたのアプリケーションはプロジェクトへの変更の取り込み方法選択のために、それを知らなければなりません。

もちろん、kqueueもこの用途に足る潜在能力を持っていますが、ファイルシステムイベントはアプリケーションが実行されていない間に発生した変更さえも見られる便利さを提供し、そしてそれはアプリケーションが初めにプロジェクトを開いた時の整合性チェックを容易にします。

  • translation/working/翻訳4.txt
  • 最終更新: 2016-04-22 12:43
  • by Decomo