シンボOS

シンボOS
Amstrad CPC 上の SymbOS デスクトップのスクリーンショット
Amstrad CPC 上の SymbOS デスクトップのスクリーンショット
開発者シンビオシス
書かれたアセンブリ言語Zilog Z80
作業状態現在
ソースモデルフリーウェア
初回リリース2006年5月1日 (2006-05-01)
最新リリース4.0 / 2025年1月31日 (2025-01-31)
入手可能な英語
サポートされているプラ​​ットフォームAmstrad CPCMSXAmstrad PCWAmstrad NC100Amstrad NC200Enterprise 64/128ZX Spectrum Next仮想マシン
カーネルタイプマイクロカーネル
デフォルトのユーザーインターフェースグラフィカルユーザーインターフェース
公式サイトwww.symbos.de

SYmbiosis マルチタスク ベース オペレーティング システム( SymbOS ) は、Zilog Z80ベースの8 ビット コンピュータシステム用のマルチタスクオペレーティング システムです。

初期の8ビットオペレーティングシステムとは異なり、SymbOSはマイクロカーネルをベースとしています。マイクロカーネルは、プリエンプティブかつ優先度指向のマルチタスクを提供し、最大1024KBの ランダムアクセスメモリ(RAM)を管理します。Windowsライクなグラフィカルユーザーインターフェース(GUI)を備え、最大128GBのハードディスクをサポートし、拡張されていないAmstrad CPC -6128、128K- MSX -2、Amstrad PCWで起動可能です。

2025年1月31日現在、Amstrad CPCAmstrad PCWモデル、Amstrad NCシリーズのコンピュータ、Enterprise 64/128ZX Spectrum NextMSX2規格以降のすべてのMSXモデル、V9990グラフィックチップを搭載したMSX、CPC-TREX、C-ONE、および最新のハードウェア上で実行するための仮想マシンとして利用可能です。[ 1 ]

動機と根拠

SymbOSは、1985年製の8ビットコンピュータ上で、ウィンドウ型GUIを備えたマルチタスクオペレーティングシステムをどの程度実装できるかを探る実験として開始されました。GEOSその動機付けに貢献しましたが、SymbOSの構造と機能はGEOSとは類似していません。2006年のリリースでは、当時20年前の家庭用コンピュータ上で、量的な制限のみで、このような「ミニウィンドウ」システムが実現可能であることが証明されました。SymbOSは、近年のレトロコンピューティングソフトウェアプロジェクトの中でも最大規模のものの一つです。このプロジェクトの目標の一つは、ハードウェア拡張機能を用いて、これらの古いマシンを現代のPCのように使えるようにすることです。[ 2 ]

Z80は8ビットCPUでありながら、プリエンプティブ・マルチタスク・オペレーティングシステムを実行できます。Z80にはないメモリ保護などの機能は、このようなOSには必須ではありません。例えば、AmigaOSにもメモリ保護機能は備わっていません。MP /M OSは、Z80 CPUでマルチタスクが可能であることを証明しました。しかし、家庭用コンピュータでは一般的に利用できませんでした。

MOS Technology 6502はスタックポインタを移動できませんが、Z80はスタックポインタをメモリ内の任意の位置に自由に再配置できるため、プリエンプティブマルチタスクの実装が容易になります。代替レジスタセットの存在により、タスク間のコンテキスト切り替えが飛躍的に高速化されます。

Z80システムの64KBアドレス空間制限は、バンクスイッチングによって解決されます。これにより、Amstrad CPCPCWMSXEnterpriseSAM Coupéなどのコンピュータは、数百キロバイトから数千キロバイトのメモリにアクセスできるようになります。

デザイン

SymbOSにはタスク管理、メモリ管理、プロセス間通信を実行できるマイクロカーネルが含まれています。[ 3 ]

タスク管理

タスク管理には、プリエンプティブマルチタスクと協調型マルチタスクの組み合わせが採用され、これにより異なるタスク優先度の設定が可能になりました。プリエンプティブとは、一定時間後にオペレーティングシステムによってタスクが中断され、他のタスクとCPU時間を共有することを意味します。協調型とは、タスクがCPU時間の使用を自ら停止することを意味します。これは、現在のジョブが完了した場合、または特定のイベントを待機している場合に行われます。この組み合わせにより、優先度の割り当てが可能になります。優先度の低いタスクは、優先度の高いタスクがすべて動作していない場合にのみCPU時間を取得します。

メモリと銀行管理

メモリ管理は、RAM全体を256バイトの小さなブロックに分割し、動的に割り当てることができます。アプリケーションは常に64KBのセカンダリRAMバンクで実行されます。このバンクでは、オペレーティングシステムやビデオメモリによってメモリ領域が占有されることはありません。そのため、一度に最大63KBのメモリを確保できます。

バンク管理により、Z80 CPU は16ビットのアドレスバスしか備えていないにもかかわらず、システムは最大1MBのメモリを管理できます。これにより、他の64KBバンクに配置されたメモリや機能への透過的なアクセスが可能になります。

プロセス間通信

異なるタスクとオペレーティングシステム間の通信は、通常、呼び出しではなくメッセージを介して行われます。これは、マルチタスク環境において、スタック、グローバル変数、共有システムリソースの構成上の問題を回避するために不可欠です。SymbOSカーネルは、同期および非同期IPCをサポートしています。

ファイルシステム管理

SymbOSは、すべてのプラットフォームでCP/MAMSDOS、およびファイルアロケーションテーブル(FAT)12-16-32のファイルシステムをサポートしています。後者の場合、SymbOSは最大128GBの容量を持つ大容量ストレージデバイスをアドレス指定できます。また、8ビットシステムでは最大2GBのファイルを管理できるのは珍しいことです。ほとんどの32ビットおよび64ビットオペレーティングシステムがこれら3つのFATファイルシステムをサポートしているため、FATのサポートにより他のコンピュータとのデータ交換が容易になります。

インタフェース

SymbOSのMSX版のスクリーンショット

SymbOSのグラフィカルユーザーインターフェース(GUI)は、完全なオブジェクト指向で動作します。ルックアンドフィールはMicrosoft Windowsを模倣しています。時計と「スタート」メニューを備えたおなじみのタスクバーを備え、最大32個のウィンドウを開くことができ、移動、サイズ変更、スクロールが可能です。システム全体は最適化されたアセンブリ言語で記述されているため、GUIはホストマシンがサポートする速度で動作します。

ウィンドウの内容は、「コントロール」と呼ばれる基本的なGUI要素(スライダー、チェックボックス、テキスト行、ボタン、グラフィックなど)で定義されます。ウィンドウの背景や非表示領域は、別のビットマップバッファに保存する必要はありません。領域をディスプレイ上に復元する必要がある場合は、代わりにその内容が再描画されます。

アプリケーション

SymbOSには、他のオペレーティングシステムで利用可能な同様のソフトウェアに似せて設計された標準アプリケーションがいくつかあります。例としては、メモ帳、SymCommander( Norton Commanderに類似)、SymShell(cmd.exe)、SymZilla(Mozilla Firefox)、SymPlay(QuickTime)、SymAmp(Winamp)、マインスイーパーなどがあります。[ 4 ]

SymbOS用のアプリケーションは、Z80アセンブラまたはAnsi C (ネイティブコンパイラを使用)で記述でき、Quigs開発IDE [ 5 ]の支援を受けることができる。

コマンド

以下のコマンドリストはSymShellでサポートされています。[ 6 ]

開発とリリース

SymbOSはもともとAmstrad CPC向けに開発されました。汎用コンポーネントとハードウェアコンポーネントを厳密に分離したモジュール構造により、十分なメモリを備えた他のZ80ベースシステムへの移植が可能です。

リリース 1.0 (2006 年 5 月) は最初のリリースであり、Amstrad CPC をサポートしていました。

リリース 1.1 (2006 年 12 月) では、MSX2コンピューターのサポートが追加されました。

リリース 2.0 (2007 年 8 月) では、Amstrad PCWのポートが追加されました。

リリース 2.1 (2014 年 8 月) では、追加のMSXコンピューターがサポートされるようになりました。

リリース 3.0 (2017 年 8 月) では、Enterprise 64/128のサポートが追加されました。

リリース 3.1 (2021 年 12 月) では、ビデオおよび大容量ストレージのプラットフォームに対する追加のハードウェア サポートが追加されました。

リリース 4.0 (2025 年 1 月) では、 Amstrad NCシリーズ、ZX Spectrum Next、仮想マシン エディション が追加されました。

SAM Coupéのバージョンや、 ATM-turbo 2+ZX-Evolution/BaseConfなどの ZX Spectrum のクローンも、SymbOS の要件を満たしているため可能です。

オペレーティング システムの基本条件である、中間層によるハードウェアとアプリケーション ソフトウェアの厳密な分離を維持することにより、SymbOS アプリケーションは各コンピューター上でプラットフォームに依存せずに実行され、特定のハードウェアに直接アクセスするアプリケーションを除いて、異なるシステムに適応する必要がありません。

参照

参考文献

  1. ^ 「SymbOSプラットフォーム」 . SymbOS . 2025年2月19日閲覧
  2. ^ symbos.de http://symbos.de/facts.htm . 2025年2月19日閲覧。{{cite web}}:欠落または空|title=(ヘルプ)
  3. ^ "Micro-Kernel" . SymbOS . 2020年8月7日時点のオリジナルよりアーカイブ2022年12月4日閲覧。
  4. ^ 「SymbOS Apply Preview」 . CPC Rulez . 2021年3月1日時点のオリジナルよりアーカイブ。 2022年12月4日閲覧
  5. ^ symbos.de http://symbos.de/quigs.htm . 2025年2月19日閲覧。{{cite web}}:欠落または空|title=(ヘルプ)
  6. ^ "SymShell" . SymbOS . 2022年4月7日時点のオリジナルよりアーカイブ。 2022年12月4日閲覧