| 開発者 | ラルフ・シュミット、テーム・スイッキ |
|---|---|
| 書かれた | C、アセンブリ言語 |
| OSファミリー | アミーガOS |
| 作業状態 | 現在 |
| マーケティングターゲット | アミーガ |
| 利用可能 | 英語 |
| 更新方法 | ソースコードからコンパイルする |
| プラットフォーム | Motorola 68000 シリーズ(MC680x0、68k)、 PowerPC (PPC) |
| カーネルタイプ | マイクロカーネル |
| デフォルトの ユーザーインターフェース | コマンドラインインターフェース |
| 先行 | アミーガOS |
コンピューティングにおいて、QuarkはMorphOSで使用されるオペレーティングシステム カーネルです。これは、ボックスと呼ばれる完全に仮想化されたコンピューターを実行するために設計されたマイクロカーネルです(サンドボックスを参照)。2020年現在、Motorola 68000シリーズ(MC680x0または68k)およびPowerPC中央処理装置(CPU) 用にコンパイルされた既存のAmigaOSソフトウェアを実行できるボックスはABoxのみです。[アップデート]
設計目標
Quark マイクロカーネルはL4 マイクロカーネル ファミリのメンバーではありませんが、 clan (タスクのグループ)、ID コンセプト、再帰アドレス マッピングなどの概念を借用しています。Quark には、 AmigaのExecカーネルに似た非同期/同期メッセージ インターフェイスもありますが、メモリ保護を備えた環境に適応しています。
Quark のその他の機能は次のとおりです。
- スーパー/ユーザーモード切り替え速度が速い
- 低い割り込み遅延
- 割り込み スレッド(IntThreads)とInt Pコード抽象化
- 対称型マルチプロセッシング(SMP)
- タスク/スレッドとクラン/チーフのモデル
- リソース追跡
- 仮想メモリ(オプション)
- 分散コンピューティング
- カーネル構造にアクセスできない
- 洗練されたアプリケーションプログラミングインターフェース ( API )を備えたすっきりとしたデザイン
- マイクロ/ピコカーネルミックス
この新しいカーネルでは、すべてのAmiga Zorro IIバスボード、 PCI( Peripheral Component Interconnect )ボード、およびローカルハードウェアリソースをスキャンするなど、必要なハードウェアリソース情報を提供するハードウェア抽象化レイヤーが使用されています。[1] [2]
機能
- SYS_AddLinkMessage
- SYS_AttemptSemaphore
- SYS_AttemptSemaphoreShared
- SYS_コピーCPUHalConfig
- SYS_メモリリストの作成
- SYS_タスクの作成
- SYS_ポートの削除
- SYS_DeleteSemaphore
- SYS_ダンプメモリヘッダー
- SYS_空きメモリ領域の検索
- SYS_FindSkipSize
- SYS_GetLinkメッセージ
- SYS_GetMessageAttr
- SYS_GetNextCPU
- SYS_初期化
- SYS_InsideClan
- SYS_IsClanMember
- SYS_MMUページ追加
- SYS_MMUGetEntry
- SYS_MoveRomModuleToMemoryEnd
- SYS_取得ポート
- SYS_ObtainSemaphore
- SYS_ObtainSemaphoreShared
- SYS_リリースセマフォ
- SYS_返信メッセージ
- SYS_メッセージ送信
- SYS_SetMessageAttr
- SYS_セットアップページテーブル
- SYS_例外スレッドを表示
- SYS_ShowForbidThreads
- SYS_ShowIntThreads
- SYS_ShowQuarkState
- SYS_ShowReadyThreads
- SYS_ShowRunThreads
- SYS_スレッドの表示
- SYS_ShowWaitIntスレッド
- SYS_ShowWaitThreads
- SYS_開始
- SYS_StartNextThread
- SYS_開始スレッド
- SYS_待機ポート
トランス JIT
Trance JITは、MorphOS環境内で68kアプリケーションを実行するためのMorphOS ジャストインタイム(JIT)コンパイラ、またはコードトランスレータです。MorphOS 1.4以降、MorphOSオペレーティングシステムの一部となっています。 [3]
MorphOS には、68k エミュレータが完全に統合されており、68k プロセッサ用にコンパイルされた多くの Amiga アプリケーションを実行できますが、MorphOS はPowerPCでも動作します。Trance は、JIT コンパイルを追加することでこの機能を補完し、エミュレーションの速度を向上させています。MorphOS が提供する 68k と PowerPC のタスクの完全な統合を妨げることはありません。[1]
Trance は、実行可能ファイル、起動時に実行されるファイル、および共有ライブラリの形式で存在します。技術的にはカーネルの一部ではなく、MorphOS はこれなしでも実行できますが、Trance は MorphOS の基本的な部分であり、最も強力な機能の 1 つであると考えられています。
Trance の互換性は非常に高いと考えられており、問題を引き起こす 68k 命令シーケンスやアプリケーションはほとんどありません。また、非常に高速であると考えられており、ユーザーは 68k プログラムとネイティブ PowerPC コードの違いにほとんど気づきません。[4] [5] [6]
Trance は Ralph Schmidt と Teemu Sukki によって開発され、他の MorphOS チーム メンバーである Mark Olsen、Sigbjørn Skjæret、Harry Sintonen からの小規模なサポートを受けました。
Aボックス
Quark カーネルでは、Commodore International A1000、A500(+)、A600、A2000、A1200、A3000(T)、および A4000(T) システムで知られている OS のPowerPCネイティブ再実装が、仮想エミュレーションとドライバーの組み合わせとして実行されます。この OS ドライバーは ABox と呼ばれます。
68k エミュレーションはCで記述されており、一部の複雑な命令を高速化するために必要な場所では GNU コンパイラ コレクション(GCC)アセンブリ言語マクロが使用されます。
MorphOS では、 Tranceという JIT エンジンも利用可能で、従来のエミュレーションの現状を超えて古い 68k プログラムを高速化できます。
PPC ネイティブ Exec は PowerPC レジスタ モデルをサポートしているため、68k コードまたは PowerPC コードを実行する場合でもこの Exec に違いはありません。PowerPC コードは、68k コードがホスト システムのタスクでエミュレートされるだけのエミュレーションのように、OS ボックス内でマルチタスクをブロックしません (その場合、この環境外のすべてのアクセスは、エミュレートされた環境でのマルチタスクを停止します)。
この新しい PowerPC ABox カーネルで実行されるアプリケーションでは、68k コードは PowerPC タスク内のサブルーチンとして実行されます。68k または PowerPC アプリケーションでは、一部のライブラリ、フック、割り込みがまだ 68k であるか、すでに PowerPC コードを使用しているかは完全に透過的です。[7]
参考文献
- ^ ab 「MorphOS? では、それは何?」AmigActive 2000 年 7 月 14 ~ 17 ページ。
- ^ Gerber, David (2002). 「MorphOS の全機能リスト」(PDF) . 2010 年7 月 28 日閲覧。
- ^ 「MorphOS 1.4 が利用可能」 2003 年 8 月 9 日. 2010 年7 月 28 日閲覧。
- ^ 「MorphOS の速度はどのくらいですか?」 2003 年 2 月 8 日。2010年7 月 28 日閲覧。
- ^ 「MorphOS 68k speed」。2002年11月3日。 2010年7月28日閲覧。
- ^ 「比較: AmigaOS 4.1 と MorphOS 2.3 sur Pegasos II のパフォーマンス」 (フランス語)。 2009 年 9 月。2010 年7 月 28 日に取得。
- ^ 「MorphOS の全機能リスト」 2002 年 12 月 11 日. 2010 年7 月 28 日閲覧。
