Human68k
開発者 | シャープ,ハドソン |
---|---|
開発状況 | 終了 |
初版 | 1986年 |
最新安定版 | 3.02 / 1993年 |
使用できる言語 | 英語、日本語 |
プラットフォーム | X68000シリーズ |
ライセンス | 無償公開[1] |
Human68kとは、1986年にシャープが自社のパソコン、X68000用として、ハドソンと共同開発したオペレーティングシステムである。
概要
[編集]MC68000を搭載した主に欧米圏のコンピュータは、主にビジネスユースに特化した当時の86系コンピュータと比較して一般的にグラフィック機能などの表現力に優れるものが多く、これらの68系CPUを搭載したコンピュータに搭載されるOS環境もまたそれらの性質を反映したグラフィカルなものやマルチタスクに対応した製品が登場したが、当時の水準ではきわめて強力な表現力を持つX68000の標準オペレーティングシステム環境であるHuman68kは、それらの先進的な環境とは対照的に、単にインターフェイスのルック・アンド・フィールのみならず、その構造までもがマイクロソフトのMS-DOSに酷似していた。
原始的なシングルタスクのオペレーティングシステムであるが、後にバックグラウンドプロセスとしてマルチスレッドがサポートされた。ただしバックグラウンドとされている通り、コンソールまでマルチスレッドではない。
標準のシェル環境として「コマンドシェル」が存在した。マウスを標準搭載していることもあり、グラフィカルなシェル環境として当初はビジュアルシェル、のちにSX-Windowが開発され付属したが、10 - 16MHz程度のMC68000には荷が重く、対応する市販アプリケーションもシャープ製品以外はほとんど現れず、普及することは無かった。また、UNIX風のシェルとして、Human68kを製作したハドソン社員の板垣史彦が、tcshをベースに「fish.x」(Fumihiko Itagaki Shellの略、Human68k ver2.0以降対応)をフリーソフトとして公開している。
X680x0シリーズ全機種に標準付属しており、独立パッケージも発売されていたが、市販アプリケーションの起動ディスクや雑誌の付録フロッピーディスクにもプリインストールされる等の扱いがなされており、X680x0シリーズ発売終了後の2000年に正式に無償公開された。
Ver.3.02が最終である。
Human68kの特徴
[編集]Human68kは、ストレージのファイルシステムにはMS-DOSのFAT12/16を応用し(但し完全な互換性は無い)、システムコールのファンクションナンバーも概ねMS-DOSに倣うなど、バイナリ・ソースとも互換性は無いものの、その構造は明らかにMS-DOSを模倣した構造であった。
また、システムの構成も、MS-DOSと酷似していた。MS-DOSのシステムファイルは入出力サブシステムIO.SYS
とカーネルMSDOS.SYS
で構成されるが、単一アーキテクチャをターゲットとしたHuman68kでは異なるアーキテクチャへの移植を全く考慮する必要が無かったため、また入出力サブシステムはそのほとんどがROMで搭載されたIOCS
によってまかなわれていた事もあり、IO.SYS
に相当するモジュールは存在しない(IOCS
のバグをパッチしたり、アクセスの遅いROM上のIOCS
をメモリ上にコピーして高速化したり、アルゴリズムを改善して処理を高速化するパッチなどが、デバイスドライバの形としては存在した)。
Human68kのコマンドインタプリタはCOMMAND.X
であり、MS-DOSのCOMMAND.COM
に相当する。コマンドはMS-DOSよりも改善されていた。
MS-DOS環境では、このCOMMAND.COM
を含め、実行バイナリのロード時にバイナリをリロケートする必要がない(これはセグメント+相対アドレスによって実メモリ空間にアクセスする86系のアドレッシングアーキテクチャに起因し、その64COMMAND.X
を始めとするアプリケーションやコマンド等の非リロケータブルバイナリでは実行前にリロケート処理を行う必要があるため、特にチャイルドプロセスなどでこのCOMMAND.X
が頻繁にロードされる際のオーバーヘッドは無視できないものであった。このため、後にリロケータブルバイナリ化されたCOMMAND.R
がフリーソフトとして開発された他、実行ファイルのバインド機能が対応された際にはCOMMAND.X
が常駐部とインターフェース部に別れバインドされた物に替わり、チャイルドプロセスでの起動の場合は不要部をメモリ上にロードする必要がなくなる等といった対策が取られた。
デバイスドライバの組み込みにも、MS-DOSと同様にCONFIG.SYS
ファイルへの記述が必要であり、その書式もMS-DOSに倣う繁雑で難解なものであるが、後のバージョンではMS-DOSに実装された選択起動などの機能を独自に拡張して実装するなど、MS-DOSの進歩に合わせた拡張も行われた。
バックグラウンドタスク
[編集]Human68k Ver.2.0から、擬似マルチタスク[2]やシェアロックの機能を備えており、擬似マルチタスクを応用したコマンドの製作も可能であった。 バックグラウンドタスクとして、タイムシェアリングによるマルチスレッドに対応した。[要出典]
実際のところHuman68kの擬似マルチタスク機能を用いて、コマンドシェルからマルチプロセスを起動させる応用はあまり報告されなかった。Human68k上でマルチタスクが広く使われるようになったのは、SX-Windowにおいてイベントドリブン式マルチタスクが採用されてからである。また SX-Window Ver.3.0 からコンソールウィンドウによるマルチコンソールに対応し、コンソールアプリケーションならば同時にコンソールウィンドウ毎に実行が可能になった。
メモリ管理
[編集]MC68000 CPU の16
RAMディスクなどを確保した際にはユーザーエリアの使用領域がそのまま奪われるといったデメリットも存在したが、後に自由に使用メモリを確保開放させられるRAMディスクドライバーが登場したり、一時作業用に512
X68000では先頭から8
拡張子
[編集]MS-DOSの標準拡張子と比較し、以下の点が異なる。
ファイル形式 | MS-DOSでの拡張子 | Human68kでの拡張子 |
---|---|---|
再配置情報付き実行可能ファイル | .EXE |
.X
|
相対アドレス実行可能ファイル | なし | .R
|
アドレス固定実行可能ファイル | .COM |
.Z
|
ファイルシステムの論理構造
[編集]MS-DOSのFAT 12/16ファイルシステムを元に独自拡張したもので、ファイル名に小文字も使用可能(Microsoft Windowsの