ハンドラとファイルシステム
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/18 07:08 UTC 版)
「AmigaOS」の記事における「ハンドラとファイルシステム」の解説
デバイスおよびリソース管理の上位層はライブラリとは異なるタスク型のハンドラ (handler) で制御され、メッセージ・パッシングでやり取りする。 重要な種類のハンドラとしてファイルシステム・ハンドラがある。AmigaOSではハンドラを書きさえすれば任意のファイルシステムを使用できる。これを利用したプログラムとしてAmiga以外のフロッピーディスクを扱えるようにした CrossDOS があり、OFSとFFSというAmigaOSの標準ファイルシステム以外のファイルシステムも少数ながら存在する。これを使えば、ジャーナリングやファイルパーミッションなど標準では存在しない機能を追加することもできる。 ハンドラはDOSに対して「デバイス名」で提示されることが多く、それを使ってそのハンドラに対応する周辺機器にアクセスできる。 例えば、SPEAK:ハンドラにはテキストを送ることができる。そのハンドラはtranslator.libraryを使ってテキストを音素列に変換し、それらをnarrator.deviceに送ると音素列が音声信号に変換され、そこからaudio.deviceに音声信号を送ってAmigaのオーディオ・ハードウェアで音声を再生する。 デバイス名は大文字と小文字を区別しない文字列で表され(通常、大文字で表現)、その後ろにコロンが付く。コロンの後に規則子 (specifier) を付けることができ、それによって「何」に「どのように」アクセスするのかという情報を補足できる。ファイルシステムの場合、規則子としてそのファイルシステム内のファイルのパス名を指定することが多い。他のハンドラの場合、使いたい入出力チャンネルの指定などを規則子で行う。例えばシリアルポート SER: の場合、規則子にビットレート、スタートビット、ストップビットなどといった情報を指定する。 ファイルシステムではデバイス名として「ドライブ名」を提示する。例えばDF0:はデフォルトでは1台目のフロッピーディスクドライブを指す。多くのシステムではDH0:が1台目のハードディスクドライブを指す。 ファイルシステムはデバイス名と同様の形式で「ボリューム名」でも指定できる。この場合、対象周辺機器に挿入されている特定の媒体を識別できる。例えばDF0:に挿入されているフロッピーディスクの名前が "Workbench" なら、Workbench:とボリューム名を指定することでDF0:にある特定のフロッピーディスクを指定できる。 DF0:ドライブに "Work" というディスクがあり、そのファイルシステムの "Win" というディレクトリにある "Amp" というファイルにアクセスしたい場合、 DF0:Win/Amp または Work:Win/Amp とする。ただし、これらは完全に同じではない。後者の場合、ボリューム名が指定されているので、DF0:に "Work" というボリュームがない場合はDF0:にアクセスしない。その場合、"Work" というボリュームを入れるよう促すようなメッセージが表示される。 プログラムは、絶対位置(ドライブ、ボリュームなど)が不明なファイルにアクセスしなければならないことがある。その場合わかっているのは「論理パス」だけであり、そのファイルがライブラリなのか文書ファイルなのか、あるいはプログラムのメッセージの翻訳なのかなどということしかわからない。 このような場合、AmigaOSでは「アサイン (assign)」を使う。アサインもデバイス名と同じ形式だが、特定のファイルシステムのディレクトリを指している。1つのアサインが指す場所はユーザーが好きなようにいつでも変更できる。これはMS-DOSのsubstコマンドと似ているが、同一ではない。アサインはまた、1つで複数の物理的位置を同時に示すこともでき、物理的に別々の実体のあるものを論理的にまとめることもできる。AmigaOSシステムで標準的に使われているアサインとして以下のものがある。 SYS: ブートドライブのルートディレクトリを指す。 C: シェルのコマンド群があるディレクトリを指す。ブート時、もしあればSYS:Cであり、さもなくばSYS:と同じである。従ってコマンドパスのデフォルトはC:とカレントディレクトリである。C:に実行ファイルを置いておけば、単にファイル名をタイプするだけで実行できる。 DEVS: システムのデバイス群のあるディレクトリを指す。ブート時、もしあればSYS:Devsであり、さもなくばSYS:と同じである。 L: AmigaDOSのハンドラとファイルシステムのあるディレクトリを指す。ブート時、もしあればSYS:Lであり、そのディレクトリがない場合L:は自動生成されない。 LIBS: システムのライブラリのあるディレクトリを指す。ブート時、もしあればSYS:Libsであり、さもなくばSYS:と同じである。 S: スクリプトのあるディレクトリを指し、特にブート時に(もしあれば)自動実行されるスクリプトであるstartup-sequenceのあるディレクトリを指す。ブート時、もしあればSYS:Sであり、そのディレクトリがない場合S:は自動生成されない。 PROGDIR: 現在実行中の実行ファイルが存在するディレクトリを常に指している特殊なアサイン。したがって "SYS:Tools/Multiview" と "SYS:System/Format" を実行中なら、MultiviewにとってはPROGDIR:はSYS:Toolsを指し、同時にFormatコマンドにとってはSYS:Systemを指している。この機能はWorkbench 2.0で導入された。
※この「ハンドラとファイルシステム」の解説は、「AmigaOS」の解説の一部です。
「ハンドラとファイルシステム」を含む「AmigaOS」の記事については、「AmigaOS」の概要を参照ください。
- ハンドラとファイルシステムのページへのリンク