| 開発者 | ウォータールー大学 |
|---|---|
| 書かれた | えっと、ゼッド、アセンブリ言語 |
| OSファミリー | リアルタイムOS |
| 作業状態 | 製造中止 |
| 初回リリース | 1976年10月 |
| マーケティングターゲット | 研究 |
| 利用可能 | 英語 |
| 更新方法 | 再コンパイル |
| プラットフォーム | ハネウェル 6050 データジェネラル Nova 2 テキサスインスツルメンツ TI990/10 |
| カーネルタイプ | マイクロカーネル |
| 後継者 | ポート、ヴェレックス、ハーモニー、V |
Thoth は、カナダのオンタリオ州ウォータールーにあるウォータールー大学で開発された、リアルタイムのメッセージ パッシング オペレーティング システム(OS)です。
歴史
Thoth は、カナダのオンタリオ州ウォータールーにあるウォータールー大学で開発されました。ウォータールーのカリキュラムには、リアルタイムオペレーティングシステムのコースと、関連する「列車ラボ」が含まれており、学生は複数の列車を備えた模型線路を制御するためのリアルタイムオペレーティングシステム(RTOS) を開発する必要があります。[1] [2] [3]
1972年、BCPLの派生言語であるBプログラミング言語が、ベル研究所を休職していたスティーブン・C・ジョンソンによってウォータールーに持ち込まれました。[4] Bから派生した新しい言語であるEhは、ウォータールーで開発されました。ThothはもともとEhとアセンブリ言語で書かれていました。[5] [6]
Thothの初期開発はHoneywell 6050コンピュータで行われました。[7] 1976年5月にData General Nova 2で最初に実行され、次に1976年8月にTexas Instruments TI990/10に移植されました。 [7] [5]
1976年10月、ウォータールー大学はローレンス・S・メレンの修士論文「ポータブルリアルタイムエグゼクティブ、トート」を出版した。[8]
Ehは後にデータ型の追加などによりアップグレードされ、Zedに改名された。その後、ThothはZedで書き直された。[9] [10] [11] [12] [13]
Thoth の初期の主要な開発者の 1 人はDavid Cheritonでした。Cheriton はその後VerexカーネルとV-System OS を開発しましたが、どちらも Thoth の影響を受けています。もう 1 人の初期の開発者は Michael Malcolm で、彼は後に Waterloo Microsystems、 Network Appliances, Inc.、Blue Coat Systems、Kaliedescape を設立しましたが、これらの企業のオペレーティング システムのいくつかは Thoth から派生したものか、影響を受けていると考えられています。
いくつかの論文では、DEMOSがThothのインスピレーションになったと説明されている。[14] Cheritonは先行技術としてPer Brinch HansenのRC 4000を挙げ、その後の開発としてThoth、DEMOS、Accentをまとめて挙げた。[15] Thothの開発に影響を与えた他のものとしては、 Multics、Data GeneralのRTOS、Honeywell GCLS、Unixなどがある。[5]後の参考文献では、同期メッセージパッシングとマルチプロセスプログラム構造の特定の使用法の元の実装としてThothが挙げられており、これらはその後他のプロジェクトにも適用された。[16] : 2
トートの研究は1982年頃に終了した。[17]
特徴
トートは以下の4つの目的を達成するために開発されました: [7]
- 他のハードウェアへの移植が容易[3]
- プログラムは、効率的なプロセス間通信(IPC)を備えた、低コストで協調的な並行プロセスのセットとして実行されます[5]
- 外部イベントに対するシステム応答のリアルタイム使用に適しています
- 幅広いリアルタイム用途に適応し、拡張可能
Thothは、基盤となる物理マシンに関係なく、同じ抽象マシンをアプリケーションソフトウェアに公開します。[5] [18]この抽象マシンは、特定の最小要件で定義されており、これらの要件を満たすことで、特定のコンピュータを潜在的なThothポートターゲットのThothドメインに含めることができました。
Thoth の下で実行されるプロセスは、「チーム」にグループ化できます。チーム内のすべてのプロセスは共通のアドレス空間を共有し、データを共有できます。[19] [7]これは、他のシステムの「軽量プロセス」またはスレッドの概念に似ています。[20]同じチームのメンバーではないプロセスは、Thoth の IPC を使用して通信します。
Thothにおけるプロセス間通信は、主に同期メッセージパッシングによって実現されます。[7]このアプローチにより、メッセージキューイングが大幅に簡素化されました。[21]
オリジナルの論文が書かれた当時はまだこの用語は使われていなかったが、トートはマイクロカーネルと呼ばれてきた。[22] [20] [23]
Thothの同期メッセージパッシングIPCは、 Carl HewittのアクターモデルとSmalltalkの研究を基にした擬人化プログラミングモデルの応用に適していました。[17]
遺産
Thoth オペレーティング システムは、その後のいくつかのプロジェクトの基礎またはインスピレーションを提供しました。そのいくつかを以下に示します。
アカデミック
- ウォータールー大学のmicroNet分散ファイルサーバーシステムは、ThothやPortに似たWatSysというオペレーティングシステム上で動作していました。[24] WatSysは1981年にデビューしました。[25]
- カナダ国立研究評議会は、リアルタイムロボット制御を目的としたThothの派生であるHarmonyオペレーティングシステムの開発拠点であった。 [26]
- チェリトンはブリティッシュコロンビア大学に就職し、そこでトートで以前に研究した多くのアイデアを使って、VerexとDistributed Verexの開発に携わった。[12] [27]
- チェリトンは後にアメリカのスタンフォード大学に移り、そこでトートとの以前の研究を基にVシステムを開発した。 [15] [28] [29] [30]
- シルバンマルチプロセッシングシステムのアーキテクチャには、トートの同期メッセージパッシングプリミティブ(およびAdaの拡張ランデブー)をハードウェアで実装したコプロセッサが含まれていました。[16] [31]
- ThothとそのメッセージパッシングIPCは、擬人化プログラミングモデルを採用したマルチプロセスペイントプログラムの基盤として使用されました。[32] [33]
- トートのメッセージパッシングセマンティクスは、コンピュータ代数システム(CAS)Mapleの実験的な並列処理バージョンの一部でした。[34]
- 分散プロセス実行および通信環境 (PEACE) は、高性能アプリケーション向けに開発されました。論文では、Thoth をプロジェクトの「主要な基盤」として挙げています。[35]
- アイントホーフェンマルチプロセッサシステム(EMPS)の幹部は効率性を重視した。トートはEMPSカーネルの設計にインスピレーションを与えた。[36]
- Roomシステムと呼ばれる実験的な人間とコンピュータのインターフェース環境が、Thothから派生し、そのIPC技術を使用したWaterloo Port上に構築されました。Roomの論文は、以前のThothの論文を参照しています。[37]
- 効率性と移植性を重視した研究プロジェクトであるFlashウェブサーバーは、マルチプロセス構造の方法と、メッセージパッシングを介して通信するプロセスチームの概念においてトートに似ていると言われました。[38]
コマーシャル
- QNXメッセージパッシングリアルタイムオペレーティングシステムの開発者であるゴードン・ベルとダン・ドッジは、ウォータールー大学の学生時代にトートと共に働いていた。[39] [40] [41] [42]
- AT&TのSystem 75 Office Communication Systemは、 OryxカーネルとPecosの基本システムプロセスセットによって制御され、 Oryx/Pecosと総称されていました。Thoth、DEMOS、およびAT&T社内プロジェクトのアイデアが使用されていました。[43]
- 商用のウォータールーポートネットワークオペレーティングシステムはThothから派生しました。[44]関連するZed言語はアップグレードされ、ウォータールーポートのPORT言語になりました。[45] [46]
- ヘイズ・マイクロコンピュータ・プロダクツはウォータールー・マイクロシステムズを買収し、ウォータールー・ポート製品のブランドを変更してアップグレードし、LANstepを作成した。[47] [48]
- Auspexストレージ会社は、Thothで最初に開発されたとされる概念を採用したFunctional Multiprocessing Kernel (FMK)を開発しました。 [ 49 ] V-SystemやWaterloo Portとは異なり、FMKにはメモリ管理がありませんでした。
- Network Appliance社のストレージアプライアンスオペレーティングシステムの初期バージョンは、Thothに非常に似ていると言われています。 [50] NetAppのOSは、以前AuspexにいたDavid Hitzによって書かれました。
- 1996年に、ウェブアクセラレーションアプライアンス会社CacheFlowはThothをベースにしたCacheOSをリリースしました。 [51] 2001年にCacheFlowはBlue Coat Systemsに改名され、ポリシーエンジンが追加され、CacheOSはSecure Gateway Operating System (SGOS)になりました。
参考文献
- ^ 「CS 452 リアルタイムプログラミング」。ウォータールー大学、シェリトンコンピュータサイエンス学部。
- ^ 「CS 452/652 - リアルタイムプログラミング」。ウォータールー大学、コンピューティングサイエンスコンピューティング施設。
- ^ ab マルコム、マイケル (2009 年 3 月 24 日)。「2009 年 3 月 24 日: デロイト講演者シリーズ」。ウォータールー大学、コンピュータ研究研究所。
- ^ Ritchie, Dennis M. (1993 年 4 月). C 言語の開発(PDF) . Association for Computing Machinery. 2015 年 7 月 24 日時点のオリジナル(PDF)からアーカイブ。2020年 10 月 6 日閲覧。
- ^ abcde Cheriton, David R.; Malcolm, Michael A.; Melen, Lawrence S.; Sager, Gary R. (1978 年 3 月). Thoth、ポータブル リアルタイム オペレーティング システム (改訂版) (PDF)。ウォータールー大学コンピュータ サイエンス学部 (技術レポート)。
- ^ Braga, Reinaldo SC (1976 年 11 月). Eh リファレンス マニュアル(PDF) . ウォータールー大学コンピュータ サイエンス学部 (技術レポート).
- ^ abcde Cheriton, David R.; Malcolm, Michael A.; Melen, Lawrence S.; Sager, Gary R. (1979 年 2 月). 「Thoth、ポータブルなリアルタイム オペレーティング システム」(PDF) . Communications of the ACM . 22 (2): 105–115. doi :10.1145/359060.359074. S2CID 14350500.
- ^ Melen, Laurence S. (1976 年 10 月)。ポータブル リアルタイム エグゼクティブ、Thoth (技術レポート)。ウォータールー大学、コンピュータ サイエンス学部。
- ^ Lion, John (1993 年 10 月)。「ニュージャージーからの手紙 — 1979 年 1 月」。オーストラリア Unix ユーザー グループ ニュースレター。第 14 巻、第 5 号。AUUG Inc.、pp. 48–51。
- ^ 「プログラミング言語データベース: Z」. epocalc . 2012年。
- ^ Bonkowski, G. Bert; Gentleman, W. Morven; Malcolm, Michael A. (1979 年 5 月). Zed コンパイラの移植(PDF) . ウォータールー大学コンピュータサイエンス学部 (技術レポート).
- ^ ab Lockhart, Thomas Wayne (1979 年 11 月)。 検証可能なオペレーティング システム カーネルの設計 (論文)。ブリティッシュ コロンビア大学。doi :10.14288/1.0051812。
- ^ Kinnersley, Bill (1995 年 1 月 23 日). 「言語リスト: バージョン 2.4」. ckw.phys.ncku.edu.tw.
- ^ Hutchinson, Norman A. (1987). Emerald: 分散プログラミングのためのオブジェクトベース言語(PDF) (技術レポート). ワシントン大学。
- ^ ab Cheriton, David R. (1988 年 3 月). 「V 分散システム」(PDF) . Communications of the ACM . 31 (3): 314–333. doi :10.1145/42392.42400. S2CID 7523994.
- ^ ab Burkowski, Forbes J.; Clarke, Charles LA; Cowan, S. Crispin; Vreugdenhil, GJ (1995 年 2 月)。Sylvan マルチプロセッサ アーキテクチャのパフォーマンス評価 (技術レポート)。ウォータールー大学。
- ^ ab Booth, Kellogg S.; Schaeffer, Jonathan; Gentleman, W. Morven (1984 年 2 月)。擬人化プログラミング(PDF)。ウォータールー大学コンピュータサイエンス学部 (技術レポート)。
- ^ Chubb, Lucy (1987)。16 ビット マイクロコンピュータ用のマルチプロセス オペレーティング システム (技術レポート)。ニューサウスウェールズ大学、電気工学およびコンピュータ サイエンス学部。
- ^ Comer, Douglas E.; Munson, Steven B (1988). 共有メモリを使用した効率的なプロセス間通信 (技術レポート). パデュー大学コンピュータサイエンス学部.
- ^ ab O'Sullivan, Bryan (1996 年 8 月 13 日). 「comp.os.research のよくある質問への回答: パート 1/3 — 2.2.3. スレッドの歴史」.アルバニー大学コンピュータサイエンス学部.
- ^ Fleisch, Brett D.; Co, Mark Allan A. (1997 年 4 月)。職場のマイクロカーネルと OS: ケース スタディ(技術レポート)。カリフォルニア大学コンピュータ サイエンス学部。CiteSeerX 10.1.1.46.7315 。
- ^ Appavoo, Jonathan. マルチプロセッサ オペレーティング システムの最適化ソフトウェア研究レビュー(PDF) (技術レポート)。ボストン大学コンピュータ サイエンス学部。
- ^ Depoutovitch, Alexandre (2011). Otherworld — アプリケーションが OS カーネルのクラッシュを乗り切るチャンスを与える(PDF) (技術レポート). トロント大学大学院コンピュータサイエンス学部.
- ^ Cowan, DD; Boswell, FD; Grove, TR (1984 年 12 月)。パーソナル コンピュータ ネットワーク用の分散ファイル サーバー(PDF)。ウォータールー大学コンピュータ システム部門 (技術レポート)。
- ^ Fonds、ウェス・グラハム(1983年8月5日)。「年表:1980年代:拡大の10年 — 1981年」。ウォータールー大学 — チェリトン・スクール・オブ・コンピュータサイエンス。
- ^ Tanner, PP; Buxton, W. (1985). 将来のユーザーインターフェイス管理システム (UIMS) 開発におけるいくつかの問題。ユーザーインターフェイス管理システム。ベルリン。pp. 67–79。
- ^ Boyle, Patrick David ( 1982 年 6 月)。マルチプロセッサ システム用分散カーネルの設計 (論文)。ブリティッシュ コロンビア大学コンピュータ サイエンス学部。doi :10.14288/1.0051817。
- ^ Tevanian Jr., Avadis; Rashid, Richard F.; Golub, David B.; Black, David L.; Cooper, Eric; Young, Michael W. (1987 年 8 月)。Mach スレッドと Unix カーネル: 制御をめぐる戦い (技術レポート)。カーネギーメロン大学コンピュータサイエンス学部。
- ^ Chakraborty, Pinaki (2010). 「研究目的のオペレーティングシステム - 広範な調査」(PDF) . GESJ: コンピュータサイエンスと電気通信(3): 147–160. ISSN 1512-1232.
- ^ Bin Shafaat, Ahmed; Xu, Shuxiang (2017 年 12 月 26 日)。「分散オペレーティングシステムの観点から開発されたテクノロジの比較研究」(PDF)。AMSEジャーナル: AMSE IIETA 出版物: 2017 シリーズ: Advances B。60 ( 3): 613–629。
- ^ Burkowski, FJ; Cormack, GV; Dyment, JD; Pachl, JK (1987 年 2 月 28 日)。「高同時実行性を実現するメッセージベースのアーキテクチャ」Heath, Michael T. (編)。Hypercube Multiprocessors 1986。米国応用数学協会、pp. 27–37。ISBN 978-0898712094。
- ^ Beach, Richard J.; Beatty, John C.; Booth, Kellogg S.; Plebon, Darlene A.; Fiume, Eugene L. (1982 年 7 月)。「メッセージは媒体: 対話型ペイント プログラムのマルチプロセス構造化」。コンピュータグラフィックス。第 16 巻、第 3 号。Association for Computing Machinery。pp. 277–287。doi :10.1145/965145.801292。
- ^ Plebon, Darlene A.; Booth, Kellogg S. (1982). インタラクティブ画像作成システム(PDF) (技術レポート). ウォータールー大学.
- ^ Watt, Stephen Michael (1985). コンピュータ代数における制限付き並列処理(PDF) (技術レポート). ウォータールー大学.
- ^ Schröder, W. 高性能アプリケーションシステムのための分散プロセス実行および通信環境(PDF) (技術レポート)。ベルリン工科大学。
- ^ ファン・ダイク、GJW (1993 年 1 月 1 日)。分散コンピューティング用の EMPS マルチプロセッサ エグゼクティブの設計(PDF) (技術レポート)。アイントホーフェン工科大学。
- ^ Chan, Patrick P. (1984 年 7 月). ユーザー インターフェイス設計における学習の考慮事項: ルーム モデル(PDF)。ウォータールー大学コンピューター サイエンス学部 (技術レポート)。
- ^ Pai, Vivek S.; Druschel, Peter; Zwaenepoel, Willy. Flash: 効率的でポータブルな Web サーバー(PDF) (技術レポート)。ライス大学コンピューター サイエンス学部。
- ^ 「組み込みアプリケーション - 現実世界のためのテクノロジー」。The infraNET Project。1998年 5 月 29 日。
- ^ Morris, James B. (1983 年 2 月~4 月)。「QNX の強力なツール」。PC Magazine 269~297 ページ。
- ^ Advani, Prakash (2001 年 6 月 14 日). 「Paul Leroux との対談」. FreeOS.com .
- ^ Oberle, Bonnie (1998 年 10 月 30 日)。「Returning the favour」。Imprint。Impring Publications、ウォータールー。p. 7。
- ^ Sager, Gary R.; Melber, John A.; Fong, Kenneth T. (1985 年 1 月)。「System 75: The Oryx/Pecos Operating System」。AT &T Technical Journal。第 64 巻、第 1 号。pp. 251–268。doi :10.1002/j.1538-7305.1985.tb00431.x 。
- ^ コッペンズ、JAWM (1988 年 8 月)。ローカル エリア ネットワーク、特にウォータールー港における情報セキュリティ(PDF) (技術レポート)。アイントホーフェン工科大学。
- ^ 「Port - (コンピュータ言語)」。プログラミング言語のオンライン歴史百科事典。
- ^ 「ポート」。コンピュータ情報技術辞典。
- ^ Rigney, Steve (1992 年 4 月)。「LAN の基礎パート 2 — LANstep」。PC Magazine、316 ページ。
- ^ ナン、トム (1994 年 8 月 24 日)。「ヘイズ、キッチナー・ウォータールー研究開発施設の売却を企てる」。ザ・ガゼット。モントリオール、ケベック州、カナダ。
- ^ Hitz, David; Harris, Guy; Lau, James K.; Schwartz, Allan M. (1990 年 1 月)。マルチプロセッサ ファイル サーバー用の軽量分散カーネルの 1 つのコンポーネントとして Unix を使用する(PDF) (技術レポート)。Auspex。
- ^ Kopp, Carlo (1997 年 6 月)。「勇敢な小さなトースター?」Carlo Kopps 博士の業界出版物。
- ^ Jerian, Charles P. 「Chuck のホームページ - 私は CacheFlow Inc で働いていました」。jerian.tripod.com。
さらに読む
- Malcolm, Michael A.; Stafford, Gary J. (1977 年 9 月). Thoth アセンブラ ライティング キット(PDF) . ウォータールー大学コンピュータ サイエンス学部 (技術レポート).
- Cheriton, DR; Murphy, W. (1979 年 9 月)。Verexシステム プログラマーズ マニュアル(技術レポート)。ブリティッシュ コロンビア大学。
- Cheriton, David R. (1979)。検証可能なオペレーティング システムの設計(技術レポート)。
- Cheriton, DR (1980 年 9 月)。Verexカーネル(技術レポート)。ブリティッシュ コロンビア大学。
- Cheriton, DR (1981 年 11 月)。「分散カーネルの設計」。ACM全国会議の議事録。
- ウォリス、ピーター JL (1982)。ポータブルプログラミング。マクミラン。ISBN 0333310365。
- チェリトン、デイビッド・R. (1982)。トートシステム:マルチプロセス構造化と移植性。ノースホランド。ISBN 0-444-00701-6。
- マルコム、マイケル・アレクサンダー、ダイメント、ダグ (1983 年 12 月)。「ウォータールー ポートのユーザー インターフェイスの設計経験」。1983 ACM SIGSMALL シンポジウム「パーソナルおよび小型コンピュータ」の議事録 - SIGSMALL '83 。pp . 168–175。doi : 10.1145 / 800219.806664。ISBN 0897911237. S2CID 14736242。
