| 特徴 | |
|---|---|
| 属性 | ファイルノート |
| 透過的な 圧縮 | いいえ |
| 透過的な 暗号化 | いいえ |
| 他の | |
| サポートされている オペレーティングシステム | アミーガOS |
Amiga Fast File System (略称AFFS、歴史的にはFFS ) は、Amigaパーソナル コンピュータで使用されるファイル システムです。以前の Amiga ファイル システムには特定の名前が付けられておらず、当初は単に「DOS」または AmigaDOS と呼ばれていました。FFS のリリースにより、元のファイル システムはAmiga Old File System (OFS) と呼ばれるようになりました。OFS は主にフロッピー ディスク用に設計されていましたが、当時のハード ドライブに追いつくには速度が遅いことが判明していました。FFS は、元の Amiga ファイル システムの完全な代替として設計されました。FFS は、主に冗長な情報を削除している点で前身と異なります。データ ブロックにはデータのみが含まれるため、ファイル システムはホスト アダプタから最終宛先への 大量のデータ チャンクを直接転送できます。
特徴
OFS は FFS の前身です。FFS がリリースされる前、AmigaOS には AmigaDOS という単一のファイルシステムがありました。これは冗長データにセクターあたり 24 バイトを使用し、フロッピー ディスクなどの信頼性の低いメディア上の構造データを再構築します。より高速なメディア (つまり、ハード ディスク) が Amiga でより利用できるようになると、この冗長データがボトルネックとなり、すべてのデータをアプリケーションに渡すために再調整する必要がありました。FFS では冗長性が削除され、メディアから読み込まれたデータはアプリケーションに直接渡されます。以前のファイルシステムである AmigaDOS は、FFS と区別するために OFS (Old File System) に名前が変更されました。FFS は下位互換性があり、OFS でフォーマットされたデバイスにアクセスできました。
これらの利点により、FFS はほぼすべての Amiga ユーザーが使用する最も一般的なファイルシステムとして急速に採用されましたが、OFS はサードパーティ ソフトウェア ベンダーのフロッピー ディスクでは引き続き広く使用されていました。(これは、AmigaOS 2+ を実際に必要としないゲームやアプリケーションにおける、AmigaOS 2 以前のシステムとの互換性のためだけのものでした。ROM に FFS がない以前のバージョンの OS を実行しているマシンは、これらのフロッピーから起動できませんでしたが、FFS がインストールされていればフロッピーを読み取ることはできました。)
Amiga FFS はシンプルで効率的であり、導入された当時は十分すぎるほどで、他のプラットフォームのファイルシステムに比べて多くの利点がありました。しかし、OFS がそうであったように、FFS も古くなってしまいました。ドライブが大きくなり、そこに含まれるファイルの数が増えるにつれて、日常的なファイルシステムとして使用するには、メンテナンスの難しさや全体的なパフォーマンスの競争力の点で問題が多くなりました。それにもかかわらず、FFS は今でも AmigaOS システムで使用されており、MorphOSとAmigaOS 4 の両方に同梱されています。
AmigaOS の最後のCommodoreリリースである 3.1 では、FFS は依然として Amiga に標準で同梱されている唯一のファイルシステムでしたが、テクノロジの進歩とともにすでに時代遅れになっていました。FFS (および OFS) は、ファイルシステムの「ビットマップ」を単一のセクターに格納します。書き込み時に、これは最初に無効としてマークされ、次に書き込みが完了し、ビットマップが更新されて有効としてマークされます。書き込み操作がクラッシュまたはディスクの取り外しによって中断された場合、これにより「ディスク検証」プログラムが損傷を元に戻すことができます。これは、非常に単純な形式のファイルシステム ジャーナリングに似ています。無効になった OFS または FFS ファイルシステムでディスクを再度使用できるようにするには、ディスク全体を完全にスキャンしてビットマップを再構築する必要がありますが、失われるのは書き込み中に変更されたデータだけです。このスキャン中は、ディスクに書き込むことはできません (ディスク検証が機能を実行する場合を除く)。また、読み取りアクセスは非常に低速です。
AmigaOS は元々、すべての起動ディスクにディスク バリデーターを搭載していましたが、これはウイルスに置き換えられて拡散する傾向がありました (たとえば、「サダム フセイン」ウイルス)。後にKickstart 2.x 以降では ROM の一部となり、悪意のある置き換えから保護されました。ディスク バリデータは、ドライブを書き込み禁止にしてスキャンすることで、無効化されたドライブのビットマップを修復しようとします。これには長い時間がかかり、特に低速メディアでは、完了するまでディスクへのアクセスが非常に遅くなります。ハード ドライブが大きくなり、含まれるファイルが増えると、検証プロセスに何時間もかかることがあります。さらに、データ ハッシュが破損すると、プロセス中にファイルやディレクトリが失われる可能性が高くなります (多くの場合、ユーザーに通知されず、気付かれないまま)。場合によっては、検証が失敗してディスクが検証されていない状態になる可能性があり、ユーザーは DiskSalv などのサードパーティのディスク ツールを使用してボリュームを再び書き込み可能にするか、ファイルを新しいパーティションにコピーして保存する必要がありますが、これは非常に時間のかかるプロセスです。
FFS は元々 32 ビットのアドレス指定に制限されていたため、約 4 GB のドライブ、または少なくとも大容量ドライブの最初の 4 GB に制限されていました。この制限を超えて FFS パーティションを使用しようとすると、ドライブ全体で深刻なデータ破損が発生しました。FFS は遅ればせながら、サードパーティの 64 ビットパッチと、その後の公式 (ただし Commodore 以外) アップデートによって、これらの制限を回避できるようになりました。後者は、Haage & Partner の AmigaOS 3.5 および 3.9 で提供されました。前者は、大容量ディスクを使用できることが売りであるPhase5などのサードパーティのディスク コントローラで提供されることが多かったです。2 つのシステムには相互互換性がありませんでした。
サポート ツールに関して言えば、コモドール自体は DiskDoctor というアプリケーションのみを同梱していましたが (後に AmigaOS ディスクから削除されました)、FFS には、ファイル システムの保守、修復と検証、ファイルの復元、または「クイック フォーマット」(ファイル システムの初期化) を元に戻すためのサードパーティ ツール (最も有名なのは DiskSalv) がいくつかありました。OFS または FFS ボリュームは、破損を防ぐためにデフラグまたは別の FFS モードへの変換を行うためにロックする必要があり、これによりデフラグを行うツール以外からはアクセスできなくなりました。これらのツールのほとんどは、FFS が 64 ビット アドレス指定に対応しても更新されず、4 GB 未満のパーティションでしか動作しませんでした。4 GB を超えるパーティションは読み取れず、通常 4 GB 境界を超えるパーティションは破損します。Amiga ユーザーが使用するハード ドライブのサイズが 4 GB に達すると、これが問題になりました。
これらすべての理由から、1990 年代半ばには、FFS は、これらの制限がなく、より安全で高速かつ効率的であると考えられていたSmart File System (SFS) やProfessional File System (PFS) などの最新の代替手段にユーザーによって置き換えられることが多かった。特に SFS は開発が続けられ、現在では[いつ? ] FFS と同様に汎用の AmigaOS ファイルシステムに近くなり、 AROSのデフォルトのファイルシステムとなっている。
歴史
FFSは1988年にAmigaOSバージョン1.3 [1]で導入され、[2] Kickstart ROM (またはA1000用のKickstartフロッピー) とWorkbenchフロッピーの両方をアップデートされたソフトウェアに置き換えました。AmigaOS 1.3の他のコンポーネントと同様に、バージョン番号はv34でした。
Kickstart 1.3 では自動ブートのサポートが提供され、マシンをハード ディスクまたはリセット防止 RAM ディスク ("RAD:") からブートできるようになりました。これに対し、以前の Kickstart リリースではフロッピー ディスクからしかブートできませんでした。Workbench 1.3 では、ディスク上の FFS ファイルシステム デバイスドライバーが提供され、これをハード ディスク上のRigid Disk Block (RDB)にコピーできました。準拠したブロック デバイスは、ファイルシステムがマウントされる前にファイルシステム ドライバーをロードしてインストールするため、ハード ディスク上のロード可能なファイルシステムを使用できるようになります。Kickstart 1.2 では、フロッピーから Workbench 1.3 をブートできました (その逆も可能) が、FFS フォーマットのハード ディスクを自動ブートするには、Kickstart と Workbench 1.3 の両方が必要でした。
Kickstart 2.0 以降、FFS サポートは ROM ベースのファイルシステムに統合されたため、RDB に FFS をインストールする必要はなくなりました。ROM のバグを修正したり、新しい FFS 機能を取得したり、サードパーティのファイルシステムを使用したりしたい場合に備えて、RDB からファイルシステムをロードする機能は引き続き利用できます。
フロッピーは、RDB のないパーティション化されていないデバイスであり、自動ブート メカニズムも使用しないため、ディスクの dostype が ROM ベースのファイル システムが理解できるものである場合にのみブート可能でした。その結果、FFS 形式のフロッピーは、Kickstart 2.0 がリリースされるまでブートできず、Workbench 1.3 でマウントするには、サポートされていない醜いハックが必要でした。同様に、「ディレクトリ キャッシュ」バリアントは、Kickstart 3.0 まではブートできず、サポートもされていませんでした。
さまざまな FFS フレーバーは、たとえ「システムに不向き」とみなされたものであっても、Amiga ソフトウェアとの互換性の問題はありませんでした。ソフトウェアは、システム コールを使用して任意のファイル システムで動作するか、「トラックローダー」になってファイル システムをまったく使用しないかのいずれかになります。
FFS は、「dostypes」によって定義されるいくつかのモードで動作します。AmigaOS ファイルシステムは、RDB またはマウントリストまたは dosdriver で指定される 4 文字の記述子によって識別されます。あるいは (フロッピー ディスクのようなトラックディスクのようなデバイスの場合と同様に)、ディスク自体を指定された任意の dostype でフォーマットすることもできます。
FFSの用量タイプは以下のとおりです。[3]
DOS\ 0 : オリジナルの Amiga ファイルシステム (OFS)。これは互換性のために残されており、ソフトウェア会社から出荷されたフロッピー ディスクや雑誌のカバー ディスクの大半は、Amiga 500 などの 2.x 以前のマシンで起動できるようにこの dostype を使用しています。また、既存の OFS 形式のドライブを持つユーザーは、RDB に FFS をインストールすれば、それらのドライブを読み取ることができることも意味しています。
DOS\ 1 : 新しいファイルシステム、FFS。FFS の最初のディスクベースのリリースには、追加のモードはありませんでした。
AmigaOS 2.04 では、FFS (現在の v37) が Kickstart ROM の一部となり、ファイル名の国際文字を処理するための新しいモードが導入されました。 [4]ディスク上のディレクトリキャッシュ。新しいモードはそれぞれ、OFS と FFS の両方の dostype で使用できました。この奇妙なシステムはパリティ用でした。DOS\0 以外の OFS モードはほとんど使用されませんでしたが、それでも使用できました。(OFS ではありましたが、FFS のない Amiga システムとは互換性がありませんでした)。
FFS の v37 で導入された 4 つの新しい dostype:
DOS\ 2 : 「国際」(OFS-INTL) モードでは、OFS は「国際文字」、つまり英語 (ラテン文字セット) にない ä や ê などの文字を含むファイル名を処理できます。
DOS\ 3 : FFS 用の国際モード (FFS-INTL)。これは最も一般的に使用される FFS モードです。(上位のすべての dostype では国際モードが常に有効になっています。)
DOS\ 4 : 「ディレクトリ キャッシュ」(OFS-DC) モードでは、ディスク上に散在するリンクされたディレクトリ/ファイル エントリを取得する代わりに、専用のディレクトリ リストを作成することでプリミティブ キャッシュが有効になります。ディレクトリ データを格納するために、一定量の (小さな) ディスク領域が割り当てられます。[5] DirCache オプションにより、ディレクトリの読み取り速度が大幅に向上しましたが、ファイルの作成、削除、名前の変更が遅くなりました。個々のファイルの読み取り速度は向上しませんでした。
これは Amiga のハード ドライブで人気の選択肢となったが、FFS2 の作者 Olaf Barthel によると、dircache モードの使用はハード ドライブよりもフロッピー ディスクの方が適している可能性が高いとのことである。ハード ドライブでは、dircache がない場合に比べて全体的なパフォーマンスの低下を招くからである。[要出典]それにもかかわらず、このモードはフロッピーではほとんど使用されなかった。特にキャッシュが貴重なスペースを消費し、限られたスペースのためにそもそも多数のファイルをキャッシュできないためである。dircache モードにはガベージ コレクションメカニズムがないため、部分的に満たされたキャッシュ ブロックは統合されず、スペースを占有し続けることになる。[6]
DOS\ 5 : FFS によるディレクトリ キャッシュ (FFS-DC)。両方の dircache モードは、FFS の以前のバージョンと下位互換性がありませんでした。
バージョン 40.1 は、コモドールがリリースした FFS の最終バージョンであり、OS ディスクと ROM の両方で AmigaOS 3.1 に付属していました。その後、いくつかの非公式パッチが登場し、TrackDisk64 または TD64 と呼ばれる 64 ビット アドレス指定システムを使用して、ハード ディスクの最初の 2 GB 以降のドライブでの使用が可能になりました (ただし、ファイル サイズの2 GB 制限とパーティション サイズの 127 GB 制限は、AmigaOS dos.library と当時のすべての Amiga ソフトウェアの制限であったため、そのまま残りました)。バージョン番号は v44 でした。AmigaOS 3.5 および 3.9 に付属していた FFS のバージョンは v45 で、異なる 64 ビット アドレス指定システムである New Style Device (NSD) を使用している点が異なっていました。
最近 (2003 年から)、MorphOSとAmigaOS 4 はOlaf Barthel によるわずかに更新された "FFS2" (それぞれ FFS v46、v50) のサポートを導入しました。これは古い FFS と互換性があります。これはPowerPCネイティブで、さらに 2 つの dostype を導入しました (古い FFS では読み取れません)。
DOS\ 6 : 「ロングファイル名」(OFS-LNFS)。これにより、通常のAmigaの制限である31文字よりも長いファイル名(最大107文字)を持つことができました。[6]
DOS\ 7 : FFS の長いファイル名 (FFS-LNFS)。
LNFS dostypes では使用できるディレクトリ キャッシュ モードがなく、国際モードが常に有効になっていました。
長いファイル名を使用できるにもかかわらず、この時点で FFS は、使用可能なプラットフォーム上の他のファイルシステムと比べて非常に劣っていました。これらの追加の dostype を除けば、FFS と FFS2 の間には機能上の違いはほとんどないかまったくありません (ただし、一部の古い未指定のバグは対処されている可能性があります)。そのため、レガシー目的以外では、FFS は依然として使用すべきではありません。初期の考えとは反対に、FFS と同様に、FFS2 でもディスク検証は依然として必要です (データ損失につながる可能性もあります)。
2018年9月、Hyperion EntertainmentはAmiga OS 3.1ソースからAmiga OS 3.1.4をリリースしました。これにはKickstart ROMに更新されたFastFileSystem V46が含まれていました。V46 FFSは、TD_64、NSD、および/または従来の32ビットTD_ストレージ呼び出しのAPIをネイティブでサポートしていました。これにより、Amiga OS v3.xはネイティブで大容量メディア(> 4GB)を使用および起動し、> 2GBのパーティションサイズをサポートできます。2019年7月、FFSへの追加のファイルベースのアップデートが3.1.4.1アップデートに含まれました。[7] 2021年5月、更新されたAmiga OS 3.2がリリースされ[8]、いくつかのマイナーな機能と修正が追加されたROMベースのV47 FFSアップデートが提供されました。
その他の実装
FFS ファイルシステムを読み取ることができる実装は他にほとんどなく、通常は Amigaエミュレータとオペレーティング システム ROM のコピーが必要になります。最も注目すべきは、affs (Amiga Fast File System) のサポートがLinuxカーネルにコンパイル可能で、DOS\6 と DOS\7 (おそらく非常にまれ) を除くすべての dostypes の FFS および OFS パーティションの完全な読み取り、書き込み、およびフォーマット サポートを提供していることです。
Amiga では、フリーウェアアプリケーション xfs [9] が、多くのファイルシステムの中でも OFS または FFS でフォーマットされたデバイスを読み書きすることができ、FFS/FFS2 自体を除けば、おそらくそれが可能な唯一の Amiga ファイルシステムでした。これは、それ以前の DOS\6 や DOS\7 をサポートしておらず、デバイスのフォーマットもサポートしていませんでした。
参照
参考文献
- ^ "wb_13chg.txt" . 2012年11月12日閲覧。
- ^ 1.3 リリースは、1988 年 9 月 16 日に、CATS の Carolyn Scheppner によって amiga.dev の BIXで確認されました。USENET からの BIX 発表のコピー
- ^ AmigaOS ユーザーマニュアル 3.1
- ^ すべての Amiga ファイル システムは国際文字を処理できますが、国際バージョンより前は、大文字と小文字は完全に異なる文字として扱われていました。
- ^ 「Amiga History Guide」www.AmigaHistory.co.uk . 2017年5月1日閲覧。
- ^ ab 「DCFS および LNFS 低レベルデータ構造 - AmigaOS ドキュメント Wiki」。wiki.amigaos.net。2017年5 月 7 日閲覧。
- ^ 「AmigaOS 3.1.4 へのアップデートがリリースされました」。
- ^ 「ニュース」.
- ^ xfs read me aminet.net
