AmigaOSは、AmigaおよびAmigaOneパーソナルコンピュータ専用の独自オペレーティングシステムのファミリーです。当初はコモドール・インターナショナルによって開発され、1985年に最初のAmigaであるAmiga 1000の発売とともに導入されました。初期のAmigaOSバージョンでは、Motorola 68000シリーズの16ビットおよび32ビットマイクロプロセッサが必要でした。コモドールの倒産後、後のバージョンはHaage & Partner(AmigaOS 3.5および3.9)によって、その後Hyperion Entertainment(AmigaOS 4.0~4.1)によって開発されました。最新のAmigaOS 4リリースではPowerPCマイクロプロセッサが必要です。バージョン4.1では64ビットファイルシステムのサポートが追加されましたが、CPUサポートは32ビットのままです。
AmigaOSは、Execと呼ばれるプリエンプティブマルチタスクカーネルに基づいたシングルユーザーオペレーティングシステムです。[ 2 ] Amigaのハードウェアの抽象化、AmigaDOSと呼ばれるディスクオペレーティングシステム、Intuitionと呼ばれるウィンドウシステムAPI、Workbenchと呼ばれるデスクトップ環境[ 3 ]およびファイルマネージャが含まれています。
MorphOSとAROS Research Operating Systemは、オリジナルのAmigaOSと互換性のある、現代版のAmigaOS実装である。
Amigaの知的財産は、 Amiga Inc.、Cloanto(Amiga Foreverの作成者)、およびHyperion Entertainment(Amiga OS 4.xの開発者)の間で分割されています。1993年までに作成された作品の著作権はCloantoが所有しています。[ 4 ] [ 5 ]
2001年、Amiga Inc.はAmigaOS 4の開発をHyperion Entertainmentに委託し、2009年の和解で、AmigaOS 4とその後のバージョンを開発および販売するために、HyperionにAmigaOS 3.1の独占的かつ永久的な全世界ライセンスを付与した。[ 6 ] [ 7 ]
2004年のAmigaOS 4の正式リリース以来、Amiga OSには2つのバージョンが同時に存在している。
2006年のAmigaOS 4のバリアントと、ベルギーのソフトウェア会社Hyperion Entertainmentが当時Amiga Incorporatedの公式ライセンス契約に基づいて開発したv4.x以降のすべてのバージョンは、 PowerPCアーキテクチャのみに基づくマイクロプロセッサアクセラレータを搭載した従来のAmigaコンピュータ専用です。
いわゆるターボカード(Amigaに当初搭載されていたものと同じCPUタイプのプロセッサをクロック周波数を上げて動作させただけのもの)や、Motorolaのm68kシリーズのより高度なバリアントは、AmigaOS 4を実行するには不十分です。AmigaOS 4は実際にはPowerPCベースのシステムを必要とするためです。 したがって、AmigaOS 4は実質的にPowerPC専用です。
Commodore International 自身による Amiga OS v3.1 の最後の公式リリースまでの従来の Amiga OS の OS ライン( 1996 年に Commodore の著作権、関連権利、および関連商標の当時の法的所有者であるドイツの Escom AG およびその子会社である Amiga Technologies GmbH による Amiga OS v3.1 の再リリースを含む)、ドイツのソフトウェア会社 Haage & Partner からライセンスを受けて委託された作品である AmigaOS 3.5 (1999 年) および 3.9 (2000 年)、Hyperion Entertainment によるオリジナルのメインラインの最新の v3.1.4–3.2 アップデートは、一般的に Motorola ベースの m68k プロセッサを搭載したオリジナルの A1000、A500、A600、A1200、A2000、A2500、A3000(T) または A4000(T) などのすべての旧 Amiga コンピュータ専用です。
Haage & Partner (Amiga Technologies GmbH) のAmigaOS 3.5/3.9 を使用するには、Amiga に最低でも Motorola M68(EC)020 プロセッサが搭載されている必要があります。これは、出荷時の Amiga A1200、A3000(/30)/T/UX、または A4000(/040,/030)/T に該当します。あるいは、モデルによっては、特定のオリジナルの Commodore アクセラレータ カードが最初から搭載されている場合もあります。これは、A2500/20(/30)/UX や、オリジナルの A2000 を改造したものに該当します。これらの A2000 には、CPU アップグレードとして、オリジナルのハードウェアに Commodore 製のアクセラレータ カード (M68020 用 A2620、M68030 用 A2630) が CPU スロットに取り付けられています。
また、CommodoreのAmigaOS v3.1のオリジナルソースコードに基づいて、2018年のAmigaOS v3.1.4と2021年のv3.2のアップデートでは、Kickstartも更新され、ハードウェアにインストールするための物理的なハードウェアROMがオプションで同梱されていました。
従来のm68k搭載Amigaコンピュータ向けのAmigaOSの最終バージョンは、 Haage & PartnerのAmiga 3.5/3.9(最低でも68020 CPUが必要)か、 Hyperion EntertainmentによるオリジナルのAmigaOSのアップデート版であるv3.1.4/v3.2(初代Amiga A1000に搭載されたオリジナルのMC68000を含むすべてのm68k CPUに対応)のいずれかである。
AmigaOSは、Execと呼ばれるプリエンプティブマルチタスクカーネルをベースとしたシングルユーザーオペレーティングシステムです。AmigaOSは、Amigaのハードウェアの抽象化、AmigaDOSと呼ばれるディスクオペレーティングシステム、Intuitionと呼ばれるウィンドウシステムAPI 、およびWorkbenchと呼ばれるデスクトップファイルマネージャを提供します。
AmigaShellと呼ばれるコマンドラインインターフェース(CLI)もシステムに統合されていますが、これも完全にウィンドウベースです。CLIとWorkbenchコンポーネントは同じ権限を共有します。特筆すべきは、AmigaOSには組み込みのメモリ保護機能がないことです。
AmigaOS は、 Kickstartと呼ばれるファームウェア コンポーネントと、通常Workbenchと呼ばれるソフトウェア 部分の2 つの部分で構成されています。AmigaOS 3.1 までは、Kickstart と Workbench の対応するバージョンが通常一緒にリリースされていました。しかし、Commodore の消滅後の最初のリリースである AmigaOS 3.5 以降は、ソフトウェア コンポーネントのみが更新され、ハードウェアで Kickstart を交換する必要性はいくらか減少しました。ファームウェアの更新は、 Amiga の -command を使用してパッチを適用するSetPatchことで適用できます。このコマンドは、システム ブート中に実行時に Kickstart を新しいリビジョンでパッチします。これは、2018 年に Hyperion Entertainment (AmigaOS 3.1 のライセンス所有者) が更新された Kickstart ROM を付属して AmigaOS 3.1.4 をリリースするまでのことでした。
Kickstartはブートストラップファームウェアであり、通常はROMに格納されています。Kickstartには、標準的なAmigaハードウェアとAmigaOSの多くのコアコンポーネントを起動するために必要なコードが含まれています。Kickstartの機能は、IBM PC互換機におけるBIOSとメインオペレーティングシステムカーネルに相当します。ただし、Kickstartは、例えば完全なウィンドウ環境など、PCで通常期待されるよりも多くの機能をブート時に提供します。
Kickstartには、 Exec、Intuition 、 AmigaDOSの中核部分、 Autoconfig準拠の拡張ハードウェアを初期化する機能など、 Amigaオペレーティングシステムの多くのコア部分が含まれています。Kickstartの後のバージョンには、 IDEおよびSCSIコントローラ、PCカードポート、その他の内蔵ハードウェア用のドライバも含まれていました。
起動時またはリセット時に、Kickstartは多数の診断およびシステムチェックを実行し、Amigaチップセットと一部のコアOSコンポーネントを初期化します。その後、接続されているブートデバイスを調べ、ブート優先度が最も高いデバイスからの起動を試みます。ブートデバイスが存在しない場合は、ブートディスク(通常はフロッピーディスク)を挿入するようにユーザーに促す画面が表示されます。
起動時に Kickstart は起動可能なデバイス (通常はフロッピー ディスクまたはハードディスク ドライブ) から起動を試みます。フロッピー ディスクの場合、システムはディスクの最初の 2 セクタ (ブートブロック) を読み取り、そこに格納されている起動命令を実行します。通常、このコードは制御を OS (AmigaDOS と GUI を呼び出し) に戻し、ディスクをシステム ブート ボリュームとして使用します。ディスクの他の内容に関係なく、このようなディスクはすべて「ブート ディスク」または「起動可能ディスク」と呼ばれていました。ブートブロックは、コマンドを使用して空のディスクに追加できますinstall。フロッピー ディスク上の一部のゲームやデモはカスタム ブートブロックを使用しており、これにより、AmigaOS なしで起動シーケンスを制御および Amiga のハードウェアを管理できました。
ブートブロックは、ウイルス作成者にとって格好の標的となった。カスタムブートブロックを使用するゲームやデモの中には、ブートブロックウイルスに感染すると、ウイルスのコードが元のコードを置き換えてしまうため、動作しなくなるものもあった。最初のそのようなウイルスはSCAウイルスだった。ウイルス対策として、カスタムブートブロックが開発された。この修正されたブートブロックは、ウイルスチェッカーの存在を知らせると同時に、メモリ常駐ウイルスの兆候がないかシステムをチェックし、その後、制御をシステムに返す仕組みだった。残念ながら、既にカスタムブートブロックを使用しているディスクではこの方法は使えなかったが、ユーザーに潜在的な問題を警告する効果はあった。また、このうちいくつかは他のディスクにも自己複製し、それ自体がウイルスと何ら変わらない存在となった。
Macintoshにはマルチタスク機能が搭載されるべきだった。システムソフトウェアの洗練された設計にどれほど大きな貢献をするか、いくら強調してもしすぎることはない。Amigaは優れたマルチタスクシステムを備えており、そのおかげでMacintoshの2倍の製品寿命を持つだろうと私は考えている。
Exec は AmigaOS のマルチタスクカーネルです。Exec は、マルチタスク、メモリ割り当て、割り込み処理、動的共有ライブラリの処理などの機能を提供します。システム上で実行されるタスクのスケジューラとして機能し、優先順位付きラウンドロビンスケジューリングによるプリエンプティブマルチタスクを提供します。Exec はまた、メッセージパッシングを介して他のライブラリへのアクセスと高レベルのプロセス間通信を提供します。他の類似のマイクロカーネルは、アドレス空間間でメッセージをコピーする必要があるため、パフォーマンスの問題がありました。Amiga にはアドレス空間が 1 つしかないため、Exec のメッセージパッシングは非常に効率的です。[ 9 ] [ 10 ]
AmigaDOSは、AmigaOSのディスクオペレーティングシステム部分を提供します。これには、ファイルシステム、ファイルおよびディレクトリ操作、コマンドラインインターフェース、ファイルリダイレクト、コンソールウィンドウなどが含まれます。そのインターフェースは、コマンドリダイレクト、パイプ処理、構造化プログラミングプリミティブを使用したスクリプト作成、グローバル変数とローカル変数のシステムなどの機能を提供します。
AmigaOS 1.xでは、AmigaDOS部分はBCPLで書かれたTRIPOSをベースとしていました。他の言語からTRIPOSと連携するのは困難でエラーが発生しやすく、TRIPOSの移植もあまり効率的ではありませんでした。
AmigaOS 2.x以降、AmigaDOSはC言語とアセンブラで書き直され、1.x BCPLプログラムとの互換性が維持され、サードパーティのAmigaDOSリソースプロジェクト[ 11 ](ARP)の一部が組み込まれました。ARPは既に多くのBCPLユーティリティとインターフェースの代替品を作成していました。
ARPは、Amiga向けに標準化された最初のファイル要求プログラムの一つを提供し、コマンドラインパラメータにおいて、より使いやすいUNIXスタイルのワイルドカード(グロビング)関数を導入しました。その他の革新的な点としては、コマンドで受け入れられる日付形式の範囲の拡大や、コマンドを常駐させる機能などが挙げられます。これにより、コマンドは一度メモリにロードするだけで済み、その後の使用時のロードコストを削減するためにメモリ上に保持されます。
AmigaOS 4.0では、DOSはBCPLのレガシーを完全に放棄し、AmigaOS 4.1以降は、完全な64ビットファイルシステムサポートを備えた形で書き直されました。
ファイル拡張子はAmigaOSでよく使用されますが、必須ではなく、DOSによって特別に処理されることもありません。ファイル名の慣習的な一部にすぎません。実行可能プログラムはマジックナンバーを使用して識別されます。
AmigaのネイティブウィンドウシステムはIntuitionと呼ばれ、キーボードとマウスからの入力、および画面、ウィンドウ、ウィジェットのレンダリングを処理します。
AmigaOS 2.0 より前は、標準化されたルックアンドフィールがなく、アプリケーション開発者は独自の非標準ウィジェットを作成する必要がありました。Commodore は AmigaOS 2.0 で GadTools ライブラリとBOOPSIを追加し、どちらも標準化されたウィジェットを提供しました。Commodore はまた、一貫性を保つためにアプリケーションをどのようにレイアウトすべきかを説明したAmiga User Interface Style Guideを公開しました。Stefan Stuntz はBOOPSI をベースにした人気のサードパーティ製ウィジェットライブラリMagic User Interface、略して MUI を作成しました。MorphOSは公式ツールキットとして MUI を使用し、AROS はZuneと呼ばれる MUI クローンを使用しています。AmigaOS 3.5 では、 BOOPSI をベースにした別のウィジェットセットReActionが追加されました。
AmigaOS の珍しい機能の 1 つは、同じディスプレイに複数の画面を表示することです。各画面は、異なるビデオ解像度または色深度を持つことができます。AmigaOS 2.0 ではパブリック スクリーンのサポートが追加され、アプリケーションが他のアプリケーションの画面にウィンドウを開くことができるようになりました。AmigaOS 2.0 より前は、Workbench 画面のみが共有されていました。[ 12 ]各画面の右上隅にあるウィジェットを使用すると、画面を切り替えることができます。各画面は、タイトル バーを上下にドラッグすることで重ね合わせることができます。AmigaOS 4 では、任意の方向にドラッグできる画面が導入されました。
Workbench は、AmigaOS のネイティブなグラフィカルファイル マネージャおよびデスクトップ 環境です。Workbench という用語は、当初はユーザーがオペレーティングシステム全体を指すのに使用していましたが、AmigaOS 3.1 のリリースに伴い、オペレーティングシステムは AmigaOS と改名され、それ以降 Workbench はデスクトップ マネージャのみを指すようになりました。名前が示すように、デスクトップではなく作業台のメタファーが使用されています。ディレクトリは引き出し、実行可能ファイルはツール、データ ファイルはプロジェクト、GUI ウィジェットはガジェットとして表現されます。その他の多くの点でインターフェースはMac OS に似ており、メイン デスクトップには挿入されたディスクとハード ドライブ パーティションのアイコンが表示され、すべての画面の上部に単一のメニュー バーがあります。当時利用可能だった Macintosh マウスとは異なり、標準の Amiga マウスには 2 つのボタンがあり、右マウス ボタンはプルダウン メニューを操作し、「離すと選択」のメカニズムを備えています。
バージョン3がリリースされるまで、AmigaOSは、幾何学的プリミティブ、ラスタグラフィック操作、スプライト処理のためのAPIを提供するgraphics.libraryを介して、ネイティブのAmigaグラフィックチップセットのみをネイティブにサポートしていました。このAPIはバイパス可能であったため、一部の開発者は、レンダリングにOSの機能を使用せず、効率性を高めるために基盤となるハードウェアを直接プログラミングすることを選択しました。
サードパーティのグラフィック カードは、当初は独自の非公式ソリューションを介してサポートされていました。後に、AmigaOS が任意のグラフィック システムを直接サポートできるソリューションが登場し、これをリターゲット グラフィックス(RTG) と呼びました。[ 13 ] AmigaOS 3.5 では、いくつかの RTG システムが OS にバンドルされ、ネイティブの Amiga チップ セット以外の一般的なハードウェア カードを使用できるようになりました。主な RTG システムは、CyberGraphX、Picasso 96、EGSです。CairoやAnti-Grain Geometryなどのベクター グラフィック ライブラリもいくつか利用可能です。最新のシステムでは、クロス プラットフォームのSDL (simple DirectMedia Layer) エンジンを使用して、ゲームやその他のマルチメディア プログラムを実行できます。
Amigaには3Dグラフィックス機能が内蔵されていなかったため、標準的な3DグラフィックスAPIも存在しませんでした。その後、グラフィックカードメーカーやサードパーティの開発者が独自の標準規格を提供し、MiniGL、Warp3D、Storm Mesa(agl.library)、CyberGLなどが登場しました。
Amigaが発売された当時は、デスクトップGUIやコンピュータのレンダリング機能を強化するための3Dグラフィックスライブラリのサポートはほとんどありませんでした。しかし、Amigaは広く普及した最初の3D開発プラットフォームの1つとなりました。VideoScape 3Dは初期の3Dレンダリングおよびアニメーションシステムの1つであり、Silver/ TurboSilverは最初のレイトレーシング3Dプログラムの1つでした。その後、AmigaはImagine、maxonのCinema 4D、Realsoft 3D、VistaPro、Aladdin 4D、NewTekのLightwave ( Babylon 5などの映画やテレビ番組のレンダリングに使用)など、3Dソフトウェアにおいて多くの影響力のあるアプリケーションを誇っていました。
同様に、Amigaはビデオとの同期が容易なことでよく知られているが、ビデオキャプチャインターフェースは内蔵されていない。Amigaは、アメリカやヨーロッパのメーカーが製造する多数のサードパーティ製ビデオキャプチャインターフェースをサポートしていた。個々のビデオフレームまたはビデオフレームのシーケンスをキャプチャするためのフレームグラバーと呼ばれる内部および外部ハードウェアソリューションがあり、Newtronic Videon、Newtek DigiView、[ 14 ] Graffiti外部24ビットフレームバッファ、Digilab、Videocruncher、Firecracker 24、Vidi Amiga 12、Vidi Amiga 24ビットおよび24RT(リアルタイム)、Newtek Video Toaster、GVP Impact Vision IV24、MacroSystem VLab MotionおよびVLab PAR、DPS PAR (パーソナルアニメーションレコーダー)、IOSPIRIT GmbHのVHI(ビデオハードウェアインターフェース)、DVE-10などがありました。一部のソリューションは、Merlin XCaliburモジュールや、ドイツの企業MacrosystemがAmigaクローンDraco用に構築したDVモジュールなど、Amigaグラフィックカード用のハードウェアプラグインでした。最新のPCIバスTV拡張カードとそのキャプチャインターフェースは、 Elbox Computerのtv.libraryとGuido Mersmannのtvcard.libraryを通じてサポートされています。
グラフィカルインターフェースの進化における現代のトレンドに沿って、AmigaOS 4.1は3Dハードウェアアクセラレーション対応のPorter-Duff画像合成エンジンを採用している。
バージョン 3.5 より前は、AmigaOS はaudio.deviceを介してAmiga のネイティブサウンド チップのみを公式にサポートしていました。これにより、4 つのDMA駆動 8 ビットPCMサウンド チャンネル (左右 2 つのオーディオ チャンネル) でのサウンド サンプルの再生が可能になります。サポートされているハードウェア サンプル フォーマットは、符号付き線形 8 ビット2 の補数のみです(各チャンネルに 6 ビットのボリューム コントロールがあり、2 つのチャンネルをハックとして 1 つの 14 ビット チャンネルに結合することができます。上位 8 ビットは最大ボリューム チャンネルに、下位 6 ビットは最小ボリュームに設定されたチャンネルに配置されます。OS の後のバージョンでは、このような 14 ビット オーディオがサポートされています。オリジナルの Amiga にはこのハードウェア機能があり、 AmigaOS 2.04 用のAHIバージョン 4 があり、AHI は AmigaOS バージョン 3.5 に標準として統合され、16 ビットのサードパーティ オーディオ ハードウェアもサポートしています)。
サードパーティ製オーディオカードのサポートは、AHI [ 15 ]が事実上の標準として作成され採用されるまではベンダーに依存していました。AHI は、ユーザーが選択したオーディオデバイスからのシームレスなオーディオ再生、オーディオ録音の標準化された機能、複数のサウンドチャンネルを組み合わせるための効率的なソフトウェアミキシングルーチンなど、機能が向上しており、オリジナルの Amiga チップセットの 4 チャンネルのハードウェア制限を克服しています。AHI は AmigaOS v2.0 以降に個別にインストールできます。[ 16 ]
AmigaOS自体はバージョン3.1までMIDIをサポートしていませんでしたが、Roger Dannenberg氏のcamd.libraryが標準MIDI APIとして採用されました。Commodore版のcamd.libraryにはシリアルポート用のドライバが内蔵されていました。後にKjetil Matheussen氏がオープンソース化したcamd.libraryにはシリアルポート用のドライバは内蔵されていませんでしたが、代わりに外部ドライバが提供されていました。
AmigaOS は、SoftVoice, Inc. が開発したソフトウェアによる音声合成機能を搭載した最初のオペレーティングシステムの 1 つです。このソフトウェアは、アメリカ英語のテキスト音声変換を可能にしました。[ 17 ]これには 3 つの主要なコンポーネントがありました。アメリカ英語で使用される音素を調整するnarrator.device、一連のルールを使用して英語のテキストをアメリカ英語の音素に変換するtranslator.library 、およびコマンドライン ユーザーがテキスト出力を音声にリダイレクトできるようにする高レベルのSPEAK:ハンドラです。Sayと呼ばれるユーティリティがOS に含まれており、音声と音声パラメータをある程度制御してテキスト音声合成を行うことができました。デモもAmigaBASICプログラミング例に含まれていました。音声合成は、サードパーティ プログラム、特に教育用ソフトウェアで時折使用されました。たとえば、ワード プロセッサの Prowrite と Excellence! は、シンセサイザを使用してドキュメントを読み上げることができました。これらの音声合成コンポーネントは、後のOSリリースでもほとんど変更されず、コモドールはライセンス制限のため、最終的にAmigaOS 2.1以降で音声合成のサポートを削除しました。[ 18 ]
ナレーターデバイスの音素がアメリカ英語に限定されているにもかかわらず、フランチェスコ・デヴィットは多言語音声合成を備えた非公式バージョンを開発した。これは、各言語の規則セットに基づいて複数の言語を音素に翻訳できる、拡張版の翻訳ライブラリを利用したものである。 [ 19 ]
AmigaOSは、内容に合わせて自動的にサイズ変更される動的サイズのRAMディスクを備えています。AmigaOS 2.x以降、オペレーティングシステムの構成ファイルは起動時にRAMディスクにロードされるようになり、オペレーティングシステムの利用速度が大幅に向上しました。その他のファイルも、他の標準デバイスと同様にRAMディスクにコピーして、迅速な変更や取得を行うことができました。また、AmigaOS 2.x以降、RAMディスクはファイル変更通知機能をサポートしており、これは主に構成ファイルの変更を監視するために使用されました。
AmigaOS 1.3以降[ 20 ]、標準のRAMディスクとして機能しながらソフトリスタート時に内容を保持できる固定容量のリカバリ可能なRAMディスクも存在する。これはデフォルトのデバイス名にちなんでRADディスクと一般的に呼ばれ、ブートディスク(ブートセクタ付き)として使用できる。以前は、ASDG RRDまたはVD0と呼ばれるリカバリ可能なRAMディスクが1987年に導入された[ 21 ] 。当初はASDG拡張メモリ製品にロックされていた。その後、ASDG RRDはフリーウェア、シェアウェア、パブリックドメインソフトウェアのFred Fishシリーズ(ディスク58 [ 22 ]および241 [ 23 ])に追加された。
AmigaOSは、ARexx(「Amiga Rexx」の略)と呼ばれるRexx言語をサポートしています。ARexxは、 AppleScriptと同様にOS全体のスクリプト処理、 Microsoft OfficeのVBAと同様にアプリケーション内スクリプト処理、そしてプログラム間の通信を可能にするスクリプト言語です。オペレーティングシステム上のあらゆるアプリケーションで共通のスクリプト言語を使用できることは、アプリケーションごとに新しい言語を習得する必要がないため、ユーザーにとって大きなメリットとなります。
プログラムはARexxポートで文字列メッセージをリッスンできます。これらのメッセージは、ユーザーがボタンを押すのと同様の方法でプログラムによって解釈されます。たとえば、電子メールプログラムで実行されるARexxスクリプトは、現在表示されている電子メールを保存し、情報を抽出して処理する外部プログラムを呼び出し、その後ビューアプログラムを呼び出すことができます。これにより、アプリケーションはファイルをディスクに保存してから再読み込みするのではなく、メモリハンドルを使用してデータを直接送受信することで、他のアプリケーションを制御できるようになります。
AmigaOS 4以降、Python言語はオペレーティングシステムに標準搭載されています。
ジョン・C・ドヴォラックは1996年に次のように述べている。
AmigaOSは「過去20年間で最も優れたオペレーティングシステムの1つであり、小さなカーネルと、OS/2やWindows NTで最近開発されたような驚異的なマルチタスク機能を備えています。最大の違いは、AmigaOSがわずか250KBのアドレス空間で完全に動作し、マルチタスクを実行できることです。今日でも、OSのサイズは約1MBです。そして今日に至るまで、メモリを大量に消費するCD-ROMローディングOSでできることで、Amigaでできないことはほとんどありません。タイトなコードで、これに匹敵するものはありません。 私はおそらく10年ほどAmigaを所有していますが、これまで所有した機器の中で最も信頼性の高いものです。素晴らしいです!なぜこれほど多くの熱狂的なファンが、なぜ自分だけがAmigaを愛しているのだろうかと不思議に思うのか、容易に理解できます。Amigaは、UnixクローンであるLinuxと同様に、活気に満ちた(とはいえカルト的な)コミュニティを刺激し続けています。」[ 24 ]
AmigaOS は、動的にロードされる共有ライブラリを介してモジュール式のシステム機能セットを提供します。共有ライブラリは、ディスク上に「 」ファイル名拡張子を持つファイルとして保存されるか、Kickstart ファームウェアに保存されます。すべてのライブラリ関数は、ライブラリのベースポインタに対する負のオフセットである間接ジャンプテーブルを介してアクセスされます。このようにして、ライブラリが ROM に保存されている場合でも、すべてのライブラリ関数を実行時にパッチまたはフックすることができます。AmigaOS のコアライブラリはexec.library ( Exec ) であり、Amiga のマイクロカーネルの関数へのインターフェースを提供します。.library
デバイスドライバもライブラリの一種ですが、標準化されたインターフェースを実装しています。アプリケーションは通常、ライブラリとしてデバイスを直接呼び出すのではなく、exec.library入出力関数を使用して間接的にアクセスします。ライブラリと同様に、デバイスはディスク上のファイル(.device拡張子「 」)であるか、Kickstart ROMに格納されています。
デバイスとリソース管理の上位レベル部分は、ライブラリではなくタスクであるハンドラによって制御され、メッセージの受け渡しによって通信します。ハンドラの一種にファイルシステムハンドラがあります。AmigaOS は、ハンドラが記述されているファイルシステムであればどれでも利用できます。この機能は、 CrossDOSのようなプログラムや、標準のOFSおよびFFSに代わるいくつかの「代替」ファイルシステムによって活用されています。これらのファイルシステムを使用すると、標準のオペレーティングシステムにはないジャーナリングやファイル権限などの新機能を追加できます。ハンドラは通常、デバイス名をDOSに公開し、それを使用してハンドラに関連付けられた周辺機器 (存在する場合) にアクセスできます。これらの概念の例として、音声合成システムを介してテキストを音声に変換できるSPEAK: ハンドラがあります。
デバイス名は、大文字小文字を区別しない(慣例として大文字) 文字列の後にコロンが続きます。コロンの後には指定子を追加でき、これによりハンドラはアクセス対象とその方法に関する追加情報を受け取ることができます。ファイルシステムの場合、指定子は通常、ファイルシステム内のファイルへのパスで構成されます。その他のハンドラの場合、指定子は通常、目的の入出力チャネルの特性を設定します (たとえば、SER:シリアルポートドライバの場合、指定子にはビットレート、開始ビット、停止ビットなどが含まれます)。ファイルシステムは、ドライブ名をデバイス名として公開します。たとえば、デフォルトでは、 DF0:はシステム内の最初のフロッピードライブを指します。多くのシステムでは、DH0:は最初のハードドライブを指すために使用されます。ファイルシステムは、デバイス名と同じ構文に従ってボリューム名も公開します。これらは、ファイルシステムが管理するドライブ内の特定のメディアを識別します。DF0 :に「Workbench」という名前のディスクが含まれている場合、Workbench:はDF0:内のファイルにアクセスするために使用できるボリューム名になります。ドライブDF0:にある「Work」という名前のディスクのディレクトリ「Foo」にある「Bar」という名前のファイルにアクセスしたい場合、 「 DF0:Foo/Bar」または「 」と入力できますWork:Foo/Bar。ただし、これらは完全に同等ではありません。後者の形式を使用すると、システムは目的のボリュームが「Work」であり、 DF0:内の任意のボリュームではないことを認識します。したがって、どのドライブにもボリューム「Work」が存在しない状態で「Work」上の要求されたファイルにアクセスしようとすると、次のようなメッセージが表示されますPlease insert volume Work in any drive。
プログラムは、ファイルの物理的な場所(ドライブまたはボリューム)を知らずにファイルにアクセスする必要がある場合がよくあります。つまり、ファイルがライブラリなのか、ドキュメントファイルなのか、プログラムのメッセージの翻訳なのかなど、ファイルの「論理パス」しかわかりません。AmigaOS では、この問題を解決するためにassignを使用します。assign は、デバイス名と同じ構文に従いますが、ファイルシステム内のディレクトリを既に指しています。assign が指す場所は、ユーザーがいつでも変更できます(この動作は、たとえばMS-DOSsubstのコマンドに似ていますが、それとは異なります)。assign は、1 つの論理 assign が同時に複数の異なる物理的な場所を指すことができるため、便利でした。これにより、assignの内容を論理的に拡張しながらも、物理的な構成を分離することができます。AmigaOS システムで一般的に使用される標準的な assign には、次のものがあります。
startup-sequence存在する場合はブート時に自動的に実行されます。ブート時には、SYS:S が存在する場合はそれになりますが、存在しない場合は S: は自動的に作成されません。AmigaOS 4 では、システム非アクティブ時に RAM を割り当ててオンザフライでデフラグするための新しいシステムが導入されました。これはスラブ割り当て方式に基づいており、ページング メモリを調停し、物理 RAM の大きな部分を一種の仮想メモリとして大容量ストレージ デバイスにスワップできるようにするメモリ ページャーも存在します。[ 25 ] [ 26 ] 協調ページングは最終的にAmigaOS 4.1で実装されました。
1985年にAmigaOSが導入されて以来、4つのメジャーバージョンといくつかのマイナーバージョンがリリースされています。Amigaのオペレーティングシステムのバージョン3.1までは、ユーザーはWorkbenchをAmigaオペレーティングシステム全体を指す言葉として使用していました。そのため、Workbenchはオペレーティングシステムとファイルマネージャの両方を指す言葉として一般的に使われていました。エンドユーザーにとって、WorkbenchはAmigaOSと同義語であることが多かったのです。バージョン3.1以降、OSは「AmigaOS」と改名され、3.1以前のバージョンも遡及的に「AmigaOS」(Workbenchではなく)と呼ばれるようになりました。それ以降、「Workbench」はネイティブのグラフィカルファイルマネージャのみを指すようになりました。
Workbenchは当初から、高度にカスタマイズ可能なインターフェースを提供していました。ユーザーはプログラムアイコンの外観を変更し、異なる色の組み合わせの新しいアイコンに置き換えることができました。また、アイコンとウィンドウの「スナップショット」を作成することで、アイコンはユーザーが選択した座標にデスクトップ上に保持され、ウィンドウは希望のサイズで開くことができました。

AmigaOS 1.0は、初代AmigaであるAmiga 1000とともに1985年にリリースされました。AmigaOSの1.xバージョンは、デフォルトで青とオレンジの配色を使用しており、画質の悪いテレビ画面でも高いコントラストが得られるように設計されていました(色はユーザーが変更可能)。バージョン1.1は主にバグ修正で構成されており、バージョン1.0と同様にAmiga 1000専用として配布されました。
このディスプレイは、当時としては非常にカスタマイズ性に優れていました。ユーザーはシステムアイコンやユーザーアイコンを自由に作成・変更でき、サイズやデザインも任意に設定可能で、選択時に擬似アニメーション効果を生み出す2つの画像状態を設定できました。表示色は4色から選択でき、解像度はNTSC方式では640×200(またはインターレース方式で640×400)、PAL方式では640 ×256(またはインターレース方式で640×512)の2種類から選べました。後の改良版では、テレビやモニターのオーバースキャンを調整できるようになりました。
後のバージョンでは、いくつかの機能が廃止されました。例えば、ファイルシステムの空き容量を表示するいわゆるゲージメーターは、AmigaOS 2.0以降はパーセンテージ表示に置き換えられましたが、3.5で復活しました。デフォルトの「ビジー」ポインタ(「Zzz...」と表示される吹き出し)は、後のバージョンでストップウォッチに置き換えられました。
AmigaOS 2.0は、1990年のAmiga 3000の発売と同時にリリースされました。AmigaOS 2.0が登場するまでは、統一されたルックアンドフィール設計標準がなく、アプリケーション開発者は、Intuitionが提供する既に乏しい標準基本ウィジェットの選択肢を拡張したい場合、独自のウィジェット(ボタンとメニューの両方)を作成する必要がありました。AmigaOS 2.0では、標準ウィジェットセットを提供するgadtools.libraryが作成されました。Amiga User Interface Style Guideが公開され、一貫性を保つためにアプリケーションをどのようにレイアウトすべきかが説明されました。Intuitionは、BOOPSI (Basic Object Oriented Programming System for Intuition)によって改良され、オブジェクト指向インターフェースでシステムを拡張し、各クラスが単一のウィジェットを識別したり、インターフェースイベントを記述したりするクラスシステムを定義するようになりました。これにより、あらゆるレベルでオブジェクト指向インターフェースをAmigaにプログラムすることができます。
AmigaOS 2.0では、パブリックスクリーンのサポートも追加されました。AmigaOSのスクリーンだけが共有可能なスクリーンという従来の方式ではなく、アプリケーションは独自の名前付きスクリーンを作成して他のアプリケーションと共有できるようになりました。
AmigaOS 2.0では、アプリケーションが入力イベントストリームに直接フックしてキーボードやマウスの動きをキャプチャし、システム全体をフリーズさせてしまうという問題を解決しました。AmigaOS 2.0は、入力イベントを変更またはスキャンするための標準インターフェースであるCommoditiesを提供しました。これには、グローバルな「ホットキー」キーシーケンスを指定するための標準的な方法と、ユーザーが実行中のコモディティを確認できるCommodities Exchangeレジストリが含まれていました。
AmigaOS 2.1では、アプリケーション内でオンラインヘルプを提供するための、シンプルなテキストのみのハイパーテキストマークアップ方式とブラウザであるAmigaGuideが導入されました。また、 LISPライクなスクリプト言語で動作する標準的なソフトウェアインストールプログラムであるInstallerも導入されました。
AmigaOS 2.1ではlocale.libraryを通じて多言語ロケールサポートが導入され、AmigaOSが初めて様々な言語に翻訳されました。[ 18 ]
バージョン 3.0 は、当初 Amiga 1200 および Amiga 4000 コンピュータに同梱されていました。バージョン 3.0 ではデータ型のサポートが追加され、データ型をサポートするアプリケーションは、データ型がサポートする任意のファイル形式を読み込むことができるようになりました。必要なデータ型がインストールされていれば、Workbench は任意の形式の背景画像を読み込むことができました。サポートされている任意のファイルを開いて表示できる Multiview という小さなアプリケーションも含まれていました。その機能は、Devs:Datatypes にインストールされているデータ型に直接関連していました。確立された AmigaGuide ハイパーテキスト システムは、データ型が認識する画像や音声などのメディア ファイルを指すドキュメント リンクを使用することで、使いやすさが向上しました。
2015年12月29日、AmigaOS 3.1のソースコードがオンラインに流出した。これはライセンシーであるHyperion Entertainmentによって確認された。[ 27 ] [ 28 ]
AmigaOS 3.1のリリースから約6年後、コモドールの倒産後、Haage & PartnerはAmigaOSのアップデートライセンスを取得し、1999年に既存システム向けのソフトウェアアップデートとしてリリースしました。このアップデートは、少なくとも68(EC)020プロセッサを搭載したシステムで動作しました。
AmigaOS の外観と操作感は、以前の 3.1 リリースをベースとしつつも、ReAction をベースにした改良されたユーザー インターフェイス、改良されたアイコン レンダリング、およびトゥルー カラーの背景の公式サポートなど、若干改訂されました。これらのリリースには、 NewIconsなどの既存のサードパーティ製 GUI 拡張機能のサポートが含まれており、これらのパッチがシステムに統合されています。3.5 および 3.9 リリースには、256 色の新しいアイコン セットとデスクトップ壁紙の選択肢が含まれています。これらは、リリース 2.0 から 3.1 までの AmigaOS で使用されていたデフォルトのオール メタル グレー 4/8 配色に取って代わりました。
AmigaOS 3.9は、再びHaage&Partnerによって開発され、2000年にリリースされました。主な改良点は、AmiDockと呼ばれるプログラムスタートバーの導入、システム設定のユーザーインターフェースの改訂、およびユーティリティプログラムの改良でした。
2018 年 9 月に Hyperion Entertainment は AmigaOS v3.1.4 をリリースしました。[ 29][30][ 31 ]これはすべてのクラシックAmigaのソフトウェアとハードウェアの両方のアップデートであり、実際には Amiga のKickstartを更新しました。オプションで、それぞれの古いオリジナルマシンにインストールしてユーザー自身が装備するための物理的なハードウェア ROM のリリースが同梱されています。
以前のアップデートである AmigaOS 3.5 および 3.9 と同様に、これも主に Commodore のオリジナルの AmigaOS v3.1 のソース コードをベースに拡張されています。しかし、Hyperion Entertainment によると、「当初はバグ修正リリースとして意図されていた AmigaOS v3.1.4 は、OS 3.9 で以前にアップグレードされた多くのシステム コンポーネントを最新化しています」。[ 32 ] 多くの修正が含まれており、OS 3.9 で既にアップグレードされたいくつかのシステム コンポーネントが最新化され、より大きなハード ドライブ (起動時を含む) のサポートが導入され、Motorola 680x0 CPU の全ライン (Motorola 68060 まで) がサポートされ、新しいオプションのアイコン セットを備えた最新の Workbench が含まれています。AmigaOS 3.5/3.9 とは異なり、AmigaOS 3.1.4 は Motorola 68000 CPU を引き続きサポートしています。
このように、Hyperion は以前のさまざまなバグを修正するだけでなく、アップデートのために Haage & Partners の Amiga 3.5 および 3.9 ですでに OS に導入されていた多くの機能 (例: 大容量ハードドライブのサポート、長いファイル名のサポート、より高度な CLI/シェル、更新されたマルチスレッドの CrossDOS および CDFS 統合、プリンタ用の PCL および PostScript サポート) を組み込み、バックポートしました。Amiga OS v3.1.4 には、Amiga Kickstart-ROM の新しいリリースも含まれていました (Kickstart イメージのデジタルダウンロードとして、または物理的な Kickstart-ROM と一緒に出荷されます)。
2019年に、AmigaOS 3.1.4.1が、主にバグ修正を目的としたAmiga 3.1.4のソフトウェアのみのアップデートとして無償でリリースされました。[ 33 ] 2020年にHyperion Entertainmentは、マイナーなバグ修正アップデート3.1.4.1で既に行われた変更を含むv3.1.4の完全な変更ノートを無料ダウンロードとして公開し、「ギリシャ語、ポーランド語、ロシア語のローカライズ資料が含まれており、動作させるには追加のシステム設定が必要です」という「Locale Extras 45.315」をリリースしました。[ 34 ]
2021 年 5 月、Hyperion Entertainment は AmigaOS 3.2 をリリースしました。これは以前のバージョン (3.1.4.1) のすべての機能を含み、ReAction GUIのサポート、 Amiga ディスク ファイルイメージのネイティブ管理、統合ヘルプ システム、改良されたデータ型などのいくつかの新しい改善が追加されています。[ 35 ] 2021 年 12 月には、バグ修正やその他の改善を含む AmigaOS 3.2.1 というアップデートがリリースされました。2023 年 3 月には、さらなる改善とバグ修正を含む AmigaOS 3.2.2 という 2 番目のアップデートがリリースされました。[ 36 ]
この新しい AmigaOS は AmigaOS 4.0 と呼ばれ、 PowerPC と完全に互換性を持つように書き直されました。当初は Cyberstorm PPC 上で開発されましたが、古い Amiga チップセットから独立させるのは容易ではありませんでした。[ 37 ] 4 番目の開発者向けプレリリースアップデート以降、新しい技術が採用され、画面をどの方向にもドラッグできるようになりました。[ 38 ] 異なる画面間で Workbench アイコンをドラッグ アンド ドロップすることも可能です。
AmigaOS 4.0には、Amidockの新バージョン、TrueType / OpenTypeフォント、そしてDivXとMPEG-4に対応した動画プレーヤーも含まれていました。
AmigaOS 4.1では、従来のWBStartupドロワーに代わる新しい起動設定機能が追加されました。その他の機能強化として、高解像度画面に対応した新しいアイコンセット、ドロップシャドウを含む新しいウィンドウテーマ、真の透明度を備えた新しいバージョンのAmiDock、スケーラブルなアイコン、自動更新機能を備えたAmigaOSなどが追加されました。[ 39 ]
2022年10月、AmigaOS開発元のHyperion EntertainmentはAmigaOS 4.1用のSDKをリリースした。[ 40 ]

AROS(Research Operating System)は、移植性の高いオープンソースのオペレーティングシステムとしてAmigaOSのAPIを実装しています。AmigaOSとのバイナリ互換性はありませんが(68k上で動作する場合を除く)、ソースコードとの互換性は非常に高いとユーザーから報告されています。
MorphOSはPowerPCネイティブのオペレーティングシステムであり、一部のAmigaハードウェア上でも動作します。AmigaOS APIを実装し、「OSフレンドリー」なAmigaOSアプリケーション(つまり、AmigaOS 4.xと同様に、実際のAmigaモデル上で実行されない限り、ネイティブのレガシーAmigaハードウェアに直接アクセスしないアプリケーション)とのバイナリ互換性を提供します。
pOSは、既存のAmigaソフトウェアとのソースコードレベルでの互換性を持つマルチプラットフォームのクローズドソースオペレーティングシステムでした。[ 41 ]
BeOSには、旧Amiga開発者がBeにAmigaデータ型サービスを採用するよう要請したことを受けて、MacOS Easy Openに似た集中型データ型構造も備わっています。これにより、OS全体が標準ファイルディスクリプタを持つあらゆる種類のファイル(テキスト、音楽、ビデオ、ドキュメントなど)を認識できるようになります。データ型システムは、システム全体とあらゆる生産性ツールに、これらのファイル用の標準ローダーとセーバーを提供し、単一のプログラムに複数のファイル読み込み機能を組み込む必要がなくなります。[ 42 ]
AtheOSはAmigaOSに触発されて開発され、当初はAmigaOSのクローンとなることを意図していた。[ 43 ] SyllableはAtheOSのフォークであり、AmigaOSやBeOSに似た特徴をいくつか備えている。
FriendUPはクラウドベースのメタオペレーティングシステムです。このプロジェクトには、かつてのコモドールやアミーガの開発者や従業員が多数参加しています。このオペレーティングシステムは、DOSドライバ、マウントリスト、TRIPOSベースのCLI、画面ドラッグなど、AmigaOSに似た機能をいくつか保持しています。[ 44 ]
最後に、 3DO Interactive MultiplayerのオペレーティングシステムはAmigaOS と非常によく似ており、Amiga のIntuitionユーザー インターフェースの作成者であるRJ Mical [ 45 ]によって開発されました。[ 46 ]
2.0の場合[...]BCPLやTRIPOSは残っておらず、BCPLソフトウェアとの後方互換性をサポートするために意図的に作成された構造/関数(C言語で記述!)のみが存在しました。