フォーク (ファイルシステム)

フォークとは



フォーク(英: fork)とは、コンピュータのファイルシステム内で特定のオブジェクトに関連付けられるメタデータの一種です。このフォークは、ファイルがどのようにデータを構造化し、情報を保持するのかを示します。多くのファイルシステムでは、ファイルが1つ以上のフォークを持つことが可能です。この機能は、拡張ファイル属性と似た働きをしますが、フォークの場合はデータサイズに制限がなく、必要に応じて様々な大きさを取ることができるのが特徴です。さらに、フォークのサイズがデータ本体を超える場合もありません。

主要なファイルシステムにおけるフォークの活用



アップルのHFSファイルシステム



最初に挙げなければならないのが、Appleが提供するHFSファイルシステムです。このHFSや古いMFSは、各オブジェクトに対してデータフォークやリソースフォーク、さらには複数の名前付きフォークを持たせることができます。リソースフォークは特にメタデータを保存するために設計されており、ファイルのアイコンやアプリケーションのメニューに使用されます。

また、データの内容と体裁を分けて管理できる柔軟性もあります。たとえば、ワードプロセッサの文書では、本質的な内容をデータフォークに、形式設定情報をリソースフォークに保存することが可能です。

HFS+では、元のデータフォークやリソースフォークに加え、ユーザーが定義した「名前付きフォーク」を複数持つことができるように設計されていますが、最初はあまり利用されていませんでした。Mac OS 10.4以降は、拡張インライン属性のサポートに伴い、部分的な実装が行われました。

ノベルのNEFSとNSS



1985年に登場したNovell NetWare File System(NEFS)やその後継のNovell Storage Services(NSS)も、ファイルのメタデータを保存する点で独自のアプローチを取りました。これらは、Novell Directory Services(NDS)に関連するメタデータやディレクトリ構造内に保存される情報を持ち、さらに「multiple data streams」という概念を利用して、ファイル内部でのデータストリームの管理を行っていました。

マイクロソフトのNTFS



マイクロソフトのNTFS(New Technology File System)では、フォークは代替データストリーム(Alternate Data Streams, ADS)として知られています。1993年に初めてWindows NTがリリースされた際、このファイルシステムはすでに複数の名前付きフォークをサポートし、OSとの互換性を保持していました。Windows 2000では、このフォークを通じてファイル属性やサムネイル画像を保存し、Windows XPのサービスパック2ではユーザーを保護するためにAttachment Execution Service(AES)が導入されました。

セキュリティとデータ損失のリスク



フォークが異なるファイルシステムでサポートされている場合、特にアプリケーションはそれを十分に意識する必要があります。古いソフトウェアは、フォークにアクセスできない体制でメタデータを利用しようとするため、結果としてセキュリティリスクが発生することがあります。

異なるシステムユーティリティがフォークを認識しない場合、さまざまな問題が起こります。ユーザーはファイルのサイズの全貌を知らず、コンピュータウイルスが代替フォークに隠れることがあり、これは適切な対策を施されていないアンチウイルスソフトでは検出できません。また、フォークを認識しない手段でファイルが転送されると、データが失われる可能性もあります。たとえば、電子メールや圧縮ソフトを利用するとき、このリスクが高まります。

このように、フォークはシステム間でのデータ管理において非常に重要ですが、それに伴うリスクにも注意が必要です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。