UCSD p-Systemの概要
UCSD p-System、またはUCSD
Pascal Systemは、
カリフォルニア大学サンディエゴ校(UCSD)によって
1978年に開発された
オペレーティングシステム(OS)です。このシステムは、さまざまな
コンピュータ間での移植性を高めることを目的としており、特に
ホビーパソコンや学内のDEC製ミニ
コンピュータPDP-11のような異なるハードウェアで共通の環境を提供することを目指しています。
基本的な特徴と目的
UCSD p-Systemは、特に学生が簡単に使えるOSを提供するために設計されており、様々な
コンピュータシステムで動作できるように構築されています。初期のVersion VIは、
IBMによって
IBM PC用のオリジナルOSの一つとして採用されましたが、多くのアプリケーションが存在せず、価格も相対的に高いため、商業的にはあまり成功しませんでした。それでも、
IBMは過去に
ワードプロセッサ専用機Displaywriterにこのシステムを利用していた経歴があります。
この構想は、UCSDのKenneth Bowlesによって提唱され、彼は時代の新しい機種の急増により
プログラミング言語の受け入れが難しくなると予想し、UCSD p-Systemの開発を開始しました。彼はプログラミング教育において
Pascalを重視しており、UCSDでは
Pascalにいくつかの重要な改良が加えられました。これには、可変長の文字列と、個別にコンパイル可能なコードユニット(当時新たに登場した
Adaから発想を得たもの)が含まれています。著名な
コンピュータ科学者ニクラウス・ヴィルトはこのシステムを支持し、UCSD
Pascalが
Pascal言語の普及に貢献すると考えていました。
p-MachineとPコード
UCSD p-Systemは、p-Machine(擬似機械)と呼ばれる仮想マシン(VM)を使用してハードウェアから独立しています。p-Systemは、Pコードと呼ばれる命令セットを使用しており、Urs Ammannが彼の博士論文で最初にこのPコードを発表しました。このPコードは、
Pascal向けに最適化されたもので、UCSD
Pascalを用いた初期開発が行われました。Pコードの
インタプリタさえあれば、各種ハードウェアプラットフォーム上でp-Systemを動作させることができます。また、その後のバージョンでは、
Pascal以外の言語でもPコードを生成する処理系が実装されました。
この考え方は、後の
Javaプラットフォームと同じ理念に基づいており、異なるOSやハードウェア間でのプログラムの互換性を高めることに寄与しています。どちらのシステムも、VMをOSとして利用できるだけでなく、他のOS上で動作する環境としても機能することが可能です。
バージョン情報
UCSD p-Systemには、4つの異なるPコードエンジンのバージョンが存在し、それぞれがp-SystemおよびUCSD
Pascalの特定のバージョンに対応しています。Pコードエンジンのバージョンが変わると、Pコードの仕様も変更され、異なるバージョンのp-Machine向けに書かれたコードは実行できなくなります。これらのバージョンはローマ数字で示され、例えば「II.3」は、p-Machineの第2版で運用されるp-Systemの第3版を示します。
- - Version I:最初のバージョンで、公式にはUCSD以外では配布されなかったが、一部のソースコードはユーザー間での交換が可能で、特に安定性が評価されたI.5aが知られています。
- - Version II:多くのホビーパソコン向けに広く普及し、Apple IIやPDP-11、IBM PCなどが含まれましたが、初期にはメモリ制限がありました。
- - Version III:特定のハードウェア向けに開発された専用バージョンです。
- - Version IV:商用として展開されたが高価格と性能の課題から売れ行きは芳しくなく、後にファンにより買収され低価格化されるも、徐々に市場から姿を消しました。
まとめ
UCSD p-Systemは、教育機関におけるプログラミングの普及やアプリケーションの互換性を促進するために設計された革新的な
オペレーティングシステムです。時代の進展と共に利用される場面は減少しましたが、その理念は後の多くの技術に影響を与え、
コンピュータ科学の発展に寄与しました。