| 開発者 | アミガ株式会社 |
|---|---|
| 書かれた | AmigaOS 1.x: BCPL AmigaOS 2.x 以降: C |
| OSファミリー | トリポス |
| ソースモデル | クローズドソース |
| 初回リリース | 1985年 |
| デフォルトの ユーザーインターフェース | コマンドラインインターフェース |
| ライセンス | 独自 |
AmigaDOS は、ファイル システム、ファイルとディレクトリの操作、コマンド ライン インターフェイス、およびファイルリダイレクトを含むAmigaOSのディスク オペレーティング システムです。
AmigaOS 1.x では、AmigaDOS はMetaComCoによるBCPLで書かれたTRIPOSポートをベースとしていました。BCPL はネイティブポインタを使用しないため、オペレーティング システムのより高度な機能は使いにくく、エラーが発生しやすかったです。サードパーティのAmigaDOS リソース プロジェクト[1] (ARP、旧称AmigaDOS 置換プロジェクト) [2]は、 Amiga 開発者の Charlie Heath によって開始されたプロジェクトで、多くの BCPL ユーティリティをCとアセンブラで書かれたより小さく洗練された同等のものに置き換え、ラッパー ライブラリを提供しました。これにより、すべての AmigaDOS 機能について、ネイティブ ポインタ (C やアセンブラで使用されるものなど) から BCPL の同等のものへの変換 (およびその逆) が自動的に実行されるため、アプリケーションのインターフェイスの問題が解消されました。
arp.library
AmigaOS 2.x 以降、AmigaDOS は C で書き直され、可能な限り 1.x との互換性が維持されました。AmigaOS 4 以降、AmigaDOS は BCPL のレガシーを放棄しました。AmigaOS 4.1 以降、AmigaDOS は64 ビットファイル アクセス サポートで拡張されました。
コンソール
Amiga コンソールは、標準の Amiga仮想デバイスで、通常はCON:に割り当てられ、console.handlerによって駆動されます。これは、AmigaOS 1.1 のプリミティブ インターフェイスから開発され、バージョン 1.2 および 1.3 で安定しました。このとき、AmigaShell として知られるようになり、元のハンドラーはnewconsole.handler ( NEWCON: ) に置き換えられました。
コンソールには、コマンド テンプレート ヘルプ、ヌル (" NIL: ") へのリダイレクト、ANSIカラー ターミナルなど、1985 年の作成当時は最新であると考えられていたさまざまな機能があります。リリース 1.2 で実装された新しいコンソール ハンドラーでは、コマンド履歴、パイプライン、出力がリダイレクトされたときのファイルの自動作成など、さらに多くの機能を使用できます。AmiTCPなどのTCP/IP スタックが 1990 年代初頭にリリースされたとき、コンソールはインターネット対応の Amiga デバイス ハンドラーからのリダイレクトも受信できるようになりました (例: TCP:、ファイルを TCP: サイト/ポートにコピー)。
1980 年代半ばに最初に発売された他のシステムとは異なり、AmigaDOS は独自の文字セットを実装していません。開発者は、ASCII文字セットを含むANSI – ISO標準ISO-8859-1 (Latin 1)の使用を選択しました。Unix システムと同様に、Amiga コンソールは、行末 (" EOL ") 文字として、改行 (" LF ") のみを受け入れます。Amiga コンソールは、アクセント付き文字だけでなく、キーボードの「デッド キー」の組み合わせによって作成された文字も サポートしています。
AmigaDOSコマンドの構文
これは典型的な AmigaDOS コマンド構文の例です。
コマンドリダイレクト
AmigaDOS は、コマンドの出力をファイル、パイプ、プリンター、ヌル デバイス、およびその他の Amiga デバイスにリダイレクトできます。
コマンドテンプレート
AmigaDOS コマンドは、受け入れ可能な引数を記述する標準の「テンプレート」を提供することが求められます。これはコマンドの基本的な「ヘルプ」機能として使用できますが、BashやZshell ( Unixから移植)、または KingCONなどのサードパーティの代替コンソール ハンドラーとシェルは、組み込みコマンドのより詳細なヘルプを提供することがよくあります。
コマンド「Copy」のテンプレートを要求すると、次の出力が得られます。
このテンプレートを読むことで、ユーザーは次の構文がコマンドに許容されることがわかります。
コマンドを中断し、コンソール出力を一時停止する
ユーザーは、Ctrl+Cまたは+ のキーの組み合わせを呼び出すことでプログラムを終了できます。またはキーボード上の任意の印刷文字を押すと、コンソール出力が一時停止されます。キーを押す (すべての入力を削除する) か、 を押す(現在のコマンドの実行が停止するとすぐに入力がコマンドとして処理される) ことで出力を再開できます。 CtrlDspace← Backspace↵ Enter
ワイルドカード文字
他のオペレーティング システムと同様に、AmigaDOS も、文字列内の任意の文字または任意のランダムな文字のシーケンスの代わりになるワイルドカード文字を提供します。以下は、AmigaDOS コマンドのワイルドカード文字の例です。
これを解析すると次のようになります。「?」ワイルドカードは「任意の文字」を示します。これに「#」をプレフィックスとして付けると、「任意の回数の繰り返し」を示します。これは、正規表現「.*」に類似していると見なすことができます。
スクリプト
AmigaDOS には、バッチプログラミング (「スクリプト」プログラミングと呼ばれる)を処理する機能もあり、構造化スクリプト プログラミングを処理するためのEcho、、、、、、などのコマンドがあります。スクリプトはテキスト ベースのファイルであり、AmigaDOS の内部テキスト エディタ プログラム ( Ed (Unix のEdとはIf無関係)) または他のサードパーティのテキスト エディタを使用して作成できます。スクリプト プログラムを呼び出すために、AmigaDOS は コマンドを使用します。
ThenEndIfValSkipExecute
1> myscriptを実行する
これにより、「myscript」というスクリプトが実行されます。
このスクリプト実行方法では、スクリプトがスケジュールされたジョブを完了するまで、コンソール ウィンドウはビジー状態のままになります。ユーザーは、スクリプトが終了するか、スクリプトを中断するまで、コンソール ウィンドウを操作できません。
その間:
1>実行 myscriptを実行する
AmigaDOS コマンドは、Run任意の DOS コマンドまたは任意の種類のプログラムを実行し、コンソールをさらなる入力用に空けておきます。
保護ビット
保護ビットは、ファイル、リンク、およびディレクトリがファイルシステム内で持つフラグです。これを変更するには、コマンドProtect を使用するか、選択したファイルに対して Workbench のIconsメニューのInformationエントリを使用します。AmigaDOS は、次の保護ビット セット (HSPARWED と略記) をサポートしています。
- H = ホールド (P ビットが設定された再入可能コマンドは、最初の実行時に自動的に常駐になります。動作させるには、E、P、および R ビットが設定されている必要があります。「非表示」を意味するものではありません。以下を参照してください。)
- S = スクリプト (バッチ ファイル。動作させるには E ビットと R ビットの設定が必要です)。この保護ビットがオンに設定されている場合、AmigaDOS はスクリプトの名前を呼び出すだけでスクリプトを認識し、自動的に実行できます。S ビットがなくても、
Executeコマンドを使用してスクリプトを起動できます。 - P = 純粋 (RAM に常駐させることができ、フラッシュ ドライブ、ハード ディスク、またはその他のメディア デバイスからいつでもロードする必要がなくなる再入可能コマンドを示します。動作させるには、E ビットと R ビットを設定する必要があります。)
- A = アーカイブ (アーカイブ ビット。さまざまなバックアップ プログラムで使用され、ファイルがバックアップされたことを示します)
- R = 読み取り (ファイル、リンク、またはディレクトリの内容を読み取る権限)
- W = 書き込み (ファイル、リンク、またはディレクトリ内に書き込む権限)
- E = 実行 (ファイルの実行またはディレクトリに入る権限。すべてのコマンドはこのビットを設定する必要があります。設定しないと実行されません。機能するには R ビットを設定する必要があります。)
- D = 削除 (ファイル、リンク、またはディレクトリを削除する権限)
H ビットは「非表示」を意味すると誤解されることがよくあります。スマート ファイル システム(SFS) では、H ビットが設定されたファイルとディレクトリはシステムから非表示になります。非表示のファイルにアクセスすることは可能ですが、ディレクトリ リストには表示されません。
H-bit の動作のデモンストレーション:
AmigaPrompt>リスト ワークベンチ:C/リスト AmigaPrompt>リストワークベンチ:c/list 2008年10月30日木曜日のディレクトリ「workbench:c」 リスト 6464 --p-rwed 25-Feb-02 22:30:00 1 ファイル - 14 ブロック使用 AmigaPrompt>リスト ワークベンチ:C/リスト AmigaPrompt>ワークベンチを保護する:c/list +h AmigaPrompt>どのリスト ワークベンチ:C/リスト AmigaPrompt>リストワークベンチ:c/list 2008年10月30日木曜日のディレクトリ「workbench:c」 リスト 6464 hp-rwed 25-Feb-02 22:30:00 1 ファイル - 14 ブロック使用 AmigaPrompt>リスト RES リスト
- H ビットが設定されている場合、リストコマンドが実行後に常駐するようになることに注意してください。
ローカル変数とグローバル変数
他の DOS と同様に、Amiga はバッチ プログラミングで使用される 環境変数を扱います。
グローバル変数とローカル変数の両方があり、これらは$myvarのように変数名の前にドル記号を付けて参照されます。グローバル変数はシステム全体で使用できますが、ローカル変数は現在のシェルでのみ有効です。名前が衝突した場合、ローカル変数がグローバル変数よりも優先されます。グローバル変数はコマンドSetEnv を使用して設定できますが、ローカル変数はコマンドSetを使用して設定できます。また、グローバル変数とローカル変数を出力するために使用できる コマンドGetEnvとGetもあります。
以下の例は簡単な使用方法を示しています。
1> setenv foo blapp
1> echo $foo
blapp
1> set foo bar
1> echo $foo
bar
1> getenv foo
blapp
1> get foo
bar
1> type ENV:foo
blapp
1> setenv save foo $foo
1> type ENV:foo
bar
1> type ENVARC:foo
bar
- SetEnvコマンドの保存フラグと、ファイルシステムでグローバル変数がどのように使用できるかに注意してください[説明が必要]
グローバル変数はENV:
にファイルとして保存され、再起動や電源サイクル後も存続できるようにENVARC:にディスクに保存することもできます。ENV :はデフォルトで RAM:Env に割り当てられ、ENVARC: はSYS:Prefs/Env-archiveに割り当てられます。ここで、SYS: はブートデバイスを指します。起動時に、ENVARC: の内容はアクセスできるように ENV: にコピーされます。
AmigaDOS スクリプトをプログラミングする場合、グローバル変数はシステム全体にわたることを念頭に置く必要があります。スクリプト内部のすべての変数は、ローカル変数を使用して設定する必要があります。そうしないと、スクリプト間でグローバル変数の競合が発生するリスクがあります。また、グローバル変数はファイルシステムへのアクセスを必要とするため、通常、ローカル変数よりもアクセスが遅くなります。
ENVARC: は文字列変数だけでなく他のシステム設定 (システム設定、デフォルトアイコンなど) の保存にも使用されるため、時間の経過とともにサイズが大きくなる傾向があり、RAM ディスクにある ENV: にすべてをコピーするとコストがかかります。そのため、ファイルが要求されたときにのみ ENVARC: からファイルをコピーする専用の RAMディスクハンドラーを使用して ENV: を設定する代替方法が生まれました。このようなハンドラーの例としては、 [4]や[5]があります。
グローバル変数やLab、Skipの創造的な乱用を示す例としては、悪名高いGOTOのAmigaDOS版が挙げられる。[6]
大文字と小文字の区別
AmigaDOS は一般に大文字と小文字を区別しません。[7]デバイスを "Dh0:"、"DH0:"、"dh0:" と指定すると、常に同じパーティションを参照します。ただし、ファイル名とディレクトリ名については、これはファイルシステムに依存し、一部のファイルシステムでは、フォーマット時にフラグとして大文字と小文字の区別を許可しています。このようなファイルシステムの例としては、Smart File Systemがあります。これは、大文字と小文字を区別するUn*x の世界から移植されたソフトウェアを扱う場合に非常に便利ですが、大文字と小文字を区別しないことを前提とするネイティブ Amiga アプリケーションでは混乱を招きます。したがって、上級ユーザーは、通常、Un*x 由来のソフトウェアで使用されるファイルシステムにのみ、大文字と小文字の区別フラグを使用します。
ファイル名、ディレクトリ名、ボリューム名の大文字と小文字の変更は、通常の方法で行うことができます。コマンド「rename foo Foo」および「relabel Bar: bAr:」は有効であり、期待どおりに動作します。一方、 Linuxでは、大文字と小文字を区別しないVFATなどのファイルシステムで「mv foo Foo」を実行すると、「mv: `foo' と `Foo' は同じファイルです」というエラー メッセージが表示されます。
ボリュームの命名規則
パーティションと物理ドライブは、通常、 DF0: (フロッピー ドライブ 0)、DH0: (ハード ドライブ 0) などと呼ばれます。ただし、多くのオペレーティング システムとは異なり、 DF0:やHD0:などの組み込みの物理ハードウェア デバイス以外では、個々のディスク、ボリューム、パーティションの名前は完全に任意です。たとえば、ハード ディスク パーティションは、作成時にWorkやSystemなど任意の名前にすることができます。ボリューム名は対応するデバイス名の代わりに使用できます。したがって、デバイスDH0:上のWorkbenchと呼ばれるディスク パーティションには、 DH0:またはWorkbench:という名前でアクセスできます。ユーザーは、リクエスタ フォームまたは AmigaShell に情報を入力するときに常にコロン「: 」を入力して、「 Workbench」がボリューム「Workbench : 」であることをシステムに示す必要があります。
アクセスしたボリューム名が見つからない場合、オペレーティング システムは、指定されたボリューム名のディスクを挿入するようにユーザーに求めるか、ユーザーが操作をキャンセルできるようにします。
さらに、論理デバイス名は、"assign" コマンドを使用して任意のディレクトリまたはデバイスに設定できます。多くの場合、プログラムはインストール ディレクトリに仮想ボリューム名を割り当てます (たとえば、Writerという架空のワード プロセッサは、Writer:をDH0:Productivity/Writerに割り当てることがあります)。これにより、インストールされたプログラムを簡単に再配置できます。デフォルト名SYS: は、システムが起動されたボリュームを参照するために使用されます。重要なシステム ロケーションを参照するために、その他のさまざまなデフォルト名が提供されています。たとえば、スタートアップ スクリプトの場合はS:、AmigaDOS コマンドの場合はC:、インストールされたフォントの場合は FONTS:などです。
ボリューム ラベルの割り当ては、複数のディレクトリに設定することもできます。その場合、それらのディレクトリの内容の結合として扱われます。たとえば、FONTS: をSYS:Fontsに割り当て、次にAmigaDos の割り当てコマンドのaddオプションを使用して、たとえばWork:UserFontsを含めるように拡張できます。システムは、どちらのディレクトリにインストールされているフォントも使用できるようにします。FONTS : を一覧表示すると、両方の場所のファイルが表示されます。
仮想デバイスの名前の規則と一般的な動作
物理デバイスDF0: は、PC フォーマットのフロッピー ディスクを読み取ることができる CrossDOS 仮想デバイスであるPC0:と同じフロッピー ドライブ機構を共有します。PC フォーマットのフロッピー ディスクをフロッピー ドライブに挿入すると、 DF0:フロッピー Amiga アイコンが変化して、ディスクが通常の Amiga デバイスに認識されていないことが示され、標準の「不明」ボリューム名として4 つの疑問符????が表示されます。一方、 PC0:アイコンが表示され、PC フォーマットのディスクの名前が表示されます。Amiga フォーマットのディスクのディスクを変更すると、この動作が反転します。
ファイルシステム
AmigaDOS は、さまざまなファイルシステムとその変種をサポートしています。最初のファイルシステムは単にAmiga FileSystemと呼ばれ、ハードディスクからの自動起動をサポートしていなかったため、主にフロッピー ディスクに適していました (フロッピーでは、起動はブートブロックのコードを使用して行われました)。すぐにFastFileSystem (FFS) に置き換えられたため、元のファイルシステムは "Old" FileSystem (OFS) という名前で知られるようになりました。FFS は OFS よりもスペース効率が良く、かなり高速であったため、この名前が付けられました。
AmigaOS 2.x では、FFS は OS の公式な一部となり、すぐにキャッシュされたパーティション、ファイル名とパーティション名にアクセント付き文字を許可する国際パーティション、そして最終的には ( MorphOSとAmigaOS 4では) 最大 108 文字 (31 文字から) の長いファイル名を認識するように拡張されました。
AmigaOS 4.x と MorphOS はどちらも、FastFileSystem 2 と呼ばれる新しいバージョンの FFS を搭載していました。FFS2 には、作者が言うように「いくつかの小さな変更」を含む、オリジナルの FFS のすべての機能が組み込まれていました。下位互換性を保つために、大きな構造上の変更はありませんでした。(ただし、AmigaOS 4.1上の FF2 は、プラグインの助けを借りて機能と性能を拡張できるという点で異なります)。FFS2 と同様に、AmigaOS 4 と MorphOS バージョンの Smart FileSystem はオリジナルの SFS から派生したもので、100% 互換性があるわけではありません。
WindowsのFAT12、FAT16、FAT32やLinuxのext2などの他のファイルシステムは、簡単にインストールできる(ドラッグアンドドロップ)システムライブラリや、 AminetソフトウェアリポジトリにあるFAT95 [8] (読み取り/書き込みサポート機能付き)などのサードパーティモジュールを通じて利用できます。MorphOS 2には、FATファイルシステムのサポートが組み込まれています。
AmigaOS 4.1 では、テラバイトを超えるサイズのパーティションをサポートできる JXFS という新しいファイルシステムが採用されました。
サードパーティ メーカーの代替ファイルシステムには、メタデータに基づく簡単な構造のファイルシステムで、高い内部一貫性を実現し、オンザフライでデフラグが可能で、再度マウントする前にアンマウントする必要のないProfessional FileSystem や、システムが非アクティブの間にジャーナリングされたアクティビティを実行するジャーナリングファイルシステムで、MorphOS によって標準ファイルシステムとして選択された Smart FileSystemなどがあります。
Amiga ファイルシステムの公式バージョン
古いファイルシステム/高速ファイルシステム
- OFS (DOS0)
- FF (DOS1)
- OFSインターナショナル(DOS2)
- FFSインターナショナル(DOS3)
- OFS ディレクトリ キャッシュ (DOS4)
- FFS ディレクトリ キャッシュ (DOS5)
高速ファイルシステム 2 (AmigaOS4.x/MorphOS)
- OFS 長いファイル名 (DOS6)
- FFS 長いファイル名 (DOS7)
DOS6 と DOS7 はどちらも DOS2 と DO3 で採用されていた国際ファイル名を採用していますが、ディレクトリ キャッシュは採用されていません。ディレクトリ キャッシュは、元の実装のバグにより廃止されました。このため、DOS4 と DOS5 の使用は推奨されません。
Dostype は互いに下位互換性がありますが、上位互換性はありません。DOS7 でフォーマットされたディスクはオリジナルの Amiga FFS では読み取れず、DOS3 ディスクは KS1.3 Amiga では読み取れません。ただし、FFS または FFS2 を使用して DOS0 でフォーマットされたディスクは、どのバージョンの Amiga オペレーティング システムでも読み取ることができます。このため、カスタム ファイル システムとブート ブロックが使用されている場合を除き、フロッピーで配布するソフトウェア開発者は DOS0 形式を選択する傾向がありました。これは Amiga ゲームでは一般的な方法です。ソフトウェアがどうしても AmigaOS 2 を必要とする場合は、通常 DOS3 が使用されました。
FastFileSystem2 プラグイン
2007 年 7 月のAmigaOS 4.0アップデートで、FFS2 用の最初の 2 つのプラグインがリリースされました。
- fs_plugin_cache : 新しいデータバッファリング方法を導入することで、FFS2 のパフォーマンスを向上します。
- fs_plugin_encrypt : Blowfishアルゴリズムを使用するパーティションのデータ暗号化プラグイン。
ファイル名拡張子
AmigaDOSには、各アイコンのファイル名に必ず追加しなければならない「.info」というファイル名拡張子が 1 つだけあります。myprog というファイルが存在する場合、そのアイコン ファイルは myprog.info という名前にする必要があります。イメージ データに加えて、アイコン ファイルには、オプションやキーワードなどのプログラムメタデータ、デスクトップ上の位置 (AmigaOS は、ユーザーが定義した場所にアイコンを「スナップショット」できます)、およびファイルに関するその他の情報も記録されます。ディレクトリ ウィンドウのサイズと位置情報は、ディレクトリに関連付けられた「.info」ファイルに保存され、ディスク アイコン情報はボリュームのルートにある「Disk.info」に保存されます。
アイコンを除いて、Amiga システムは拡張子を使用してファイルの種類を識別しませんが、代わりにファイルに関連付けられたアイコンまたはファイル自体の バイナリヘッダーを調べてファイルの種類を判断します。
参照
参考文献
- ^ 「AmigaDOS リソース プロジェクト」。2007 年 3 月 11 日時点のオリジナルよりアーカイブ。2006 年 7 月 18 日閲覧。
- ^ 「/Pub/Amiga/Ancient/Ex-amiga-s/Archive のインデックス」。
- ^ コモドール・アミガ社 1986
- ^ "disk/misc/HappyENV.lha". Aminet . 2016年7月15日閲覧。
- ^ "util/sys/envhandler.lha". Aminet . 2016年7月15日閲覧。
- ^ 「Code by Stephen Morley」。2016年4月5日閲覧。
- ^ フランク・クルーズ、クリスティン・ジャノーネ (1997)。C -Kermit の使用: コミュニケーション ソフトウェア。p. 549。ISBN 978-1-55558-164-0。
- ^ "disk/misc/fat95.lha". Aminet . 2016年7月15日閲覧。
さらに読む
- Commodore-Amiga Inc. (1986)。AmigaDOS ユーザーズ マニュアル。Bantam Computer。ISBN 0-553-34294-0。
- Commodore-Amiga Inc. (1991)。AmigaDOS マニュアル、第 3 版。Bantam Computer。ISBN 0-553-35403-5。
外部リンク
- Tim King. 「Amiga の歴史」。Tim -king.com。2016年 7 月 15 日閲覧。
- ティム・キング。「CV」。ティム・キング。 2016年7月15日閲覧。
