スマートファイルシステム(SFS)は、AmigaコンピュータおよびAmigaOS派生オペレーティングシステムで使用されるジャーナリングファイルシステムです( IBM PC互換機も一部サポートされています)。パフォーマンス、拡張性、および整合性を重視して設計されており、標準的なAmigaファイルシステムよりも優れた機能に加え、いくつかの特別な機能や独自の機能も備えています。
SFS は、 512 (2 9 ) から 32768 (2 15 )バイトのブロックサイズを使用し、最大パーティションサイズは 128 GB です。FFS よりも優れたパフォーマンスと、エラー発生時の長い「検証」が不要であること[ 1 ] [ 2 ]は、複数のディレクトリエントリを単一のブロックにグループ化し、メタデータブロックをまとめてクラスタにグループ化することによって実現されています。[ 3 ]空き領域の追跡には ビットマップが使用され、ファイルデータはB+ ツリー構造に配置されたエクステントを使用して追跡されます。[ 3 ]
メタデータに対して一定期間に行われたすべての変更のトランザクション ログを保持することで、整合性が維持されます。 [ 3 ] ログは最初にディスクの空き領域に書き込まれ、次にメタデータ ブロックが直接上書きされます。システムがクラッシュした場合、次にファイルシステムがマウントされると、未完了の操作が認識され、最後に確認された一貫性のある状態にロールバックされます。パフォーマンス上の理由から、メタデータの整合性のみが保証されます。書き込み操作が途中で終了した場合、ファイル内の実際のデータは破損する可能性があります。[ 4 ]オリジナルの Amiga ファイルシステムであるFFSおよびOFSとは異なり、ファイルシステムの整合性がこれによって損なわれることは非常にまれです。
SFS の Amiga ファイルシステムの中でほぼ唯一無二の特徴の 1 つは、ロックされたファイルであっても、ファイルシステムの使用中に自己デフラグを実行できることです。 [ 3 ] デフラグ処理は、作業中の場所を除いてほぼ完全にステートレスであるため、瞬時に停止および再開できます。デフラグ中は、メタデータと通常のデータの両方のデータの整合性が保証されます。そうでなければ断片化が発生する場合、ファイルシステムはファイル全体を別の場所に移動しようと試みることがあります。[ 5 ]
ファイルシステムには、削除されたファイルを復元するためのディレクトリが用意されています。[ 2 ]
SFSはC言語で書かれており、元々は1998年にジョン・ヘンドリックスによってフリーウェアとして作成・公開されました。2000年にオリジナル作者がAmigaシーンを去った後、SFSのソースコードが公開され、ラルフ・シュミットによってMorphOS上で開発が続けられました。
2005 年 5 月以降、SFSobjec と SFSconfig はGPLライセンスで提供されています。SFS の開発は現在フォークしており、オリジナルの Amiga バージョンに加えて、MorphOS、AROS、AmigaOS 3、およびAmigaOS 4用のバージョンがあり、それぞれ異なる機能セットを備えていますが、互換性は維持されています。さらに、 Linux用のAmiga SFS ボリュームの読み取り (書き込みは実験的)ドライバがあり、 [ 6 ] GRUB はネイティブでサポートしており、[ 7 ] UEFIから使用するためのフリードライバもあります。[ 8 ]
2008年現在SFSは、Amigaコンピュータでまだ使用されている独立したファイルシステムの1つでした。[ 9 ]
AROS、AmigaOS、MorphOS向けのバージョンはそれぞれ異なるブランチに基づいています。Linux版は独立したコードです。
多くの人がそうし、その結果生まれたProfessional File System (PFS)やSmart File System (SFS)などは、今日でもAmigaファンによって使用されています。