(Translated by https://www.hiragana.jp/)
Multics - Wikipedia

Multics(マルティックス)は1960年代ねんだい開発かいはつされたタイムシェアリングオペレーティングシステムであり、後世こうせい多大ただい影響えいきょうあたえた。名前なまえは「multiplexed information and computing service」に由来ゆらいしている。プロジェクトは1964ねんマサチューセッツしゅうケンブリッジではじまった。最後さいごまで使つかわれていたカナダ国防省こくぼうしょうのシステムは、2000ねん10がつ30にち退役たいえきした[3]

Multics
開発かいはつしゃ MITGEベル研究所けんきゅうじょ
プログラミング言語げんご PL/1, アセンブリ言語げんご[1]
開発かいはつじょうきょう 開発かいはつ終了しゅうりょう歴史れきしじょうのOS)
ソースモデル オープンソース(かつてはプロプライエタリだった)
初版しょはん 1969ねん
リポジトリ ウィキデータを編集
使用しようできる言語げんご 英語えいご
プラットフォーム GE-645メインフレーム、Honeywell 6180 シリーズ
カーネル種別しゅべつ モノリシックカーネル
既定きていUI コマンドラインインタフェース
ライセンス 当初とうしょプロプライエタリだったが、2007ねんから MIT License[2]
ウェブサイト Multicians,
Multics Internet Server
テンプレートを表示ひょうじ

概要がいよう

編集へんしゅう

Multicsのもと計画けいかく開発かいはつ1964ねんに、MITフェルナンド・J・コルバトら)を中心ちゅうしんとして、AT&Tベル研究所けんきゅうじょおよびゼネラル・エレクトリック (GE) の独創どくそうてき共同きょうどうプロジェクトとしてはじまった。しかし1969ねんにベルけん見切みきりをつけ脱落だつらく(これが結果けっかとしてUNIXんだ)、さらに翌年よくねんGEのコンピューター部門ぶもんハネウェルにMulticsもろとも買収ばいしゅうされている。

MulticsはGEが商品しょうひんしようとしており、結果けっかとしてハネウェルが商品しょうひんしたが、あまり成功せいこうしなかった。しかし、コンピュータ市場いちばあたえた影響えいきょうおおきく、様々さまざま斬新ざんしん貴重きちょうなアイデアがまれている[4]

こう可用性かようせい目指めざして様々さまざま機能きのうまれ、電話でんわ電力でんりょくサービスのような「コンピュータ・ユーティリティ」を目標もくひょうとしていた。そのためソフトウェア構造こうぞうのモジュールだけでなく、ハードウェアもモジュールされ、必要ひつようなリソース(計算けいさん機能きのうしゅ記憶きおく、ディスク装置そうちなど)を追加ついかするだけで拡張かくちょう可能かのう構造こうぞう目指めざした。ファイルごとアクセス制御せいぎょリストによって柔軟じゅうなん情報じょうほう共有きょうゆう可能かのうだが、必要ひつようおうじて完全かんぜんなプライバシーも提供ていきょうできる。技術ぎじゅつしゃがシステムの性能せいのう分析ぶんせきできる機構きこう標準ひょうじゅんんでいて、様々さまざま性能せいのう最適さいてき機構きこうまれた。

Multicsは単一たんいつレベル記憶きおくばれるデータアクセスほう実装じっそうした。これは、(Multicsではセグメントとばれる)ファイルプロセスアドレス空間くうかん明確めいかく区別くべつをなくしたかんがかたである。プロセスのメモリはセグメントをそのアドレス空間くうかんにマップすることで構成こうせいされる。そのきにはプロセスは通常つうじょうCPU命令めいれい使つかい、オペレーティングシステムがその更新こうしん内容ないようがディスクに反映はんえいされるようはたらく。POSIX用語ようごえば、これはすべてのファイルがmmap()あつかわれることとおなじである。しかし、MulticsにはUNIXなどにあるようなファイルをマッピングする以外いがいのプロセスのメモリという概念がいねんがなかった。「すべて」のメモリがなんらかのセグメント(ファイル)の一部いちぶであり、ファイルシステム対応たいおうする場所ばしょ存在そんざいする。これはプロセスやカーネルのスタックなどに使つかわれるメモリでも同様どうようである。

この方式ほうしき問題もんだいてん基本きほん概念がいねん問題もんだいではなく、それが動作どうさしていたマシンのアーキテクチャの問題もんだいであった。セグメント(ファイル)のサイズが256K×36ビットワード(やく1Mバイト)で制限せいげんされた。したがって、それ以上いじょうのサイズのファイルをあつかうには特別とくべつ処理しょり必要ひつようで、これをマルチセグメントファイルとんだ。もっとも、巨大きょだいなデータベースやグラフィックが使つかわれる以前いぜんだったため、この制限せいげんにひっかかることはほとんどなかった。

これが動的どうてきリンクした。動作どうさちゅうのプロセスはあらたなセグメントをそのアドレス空間くうかん追加ついかするよう要求ようきゅうでき、そのセグメントにはコードがはいっていて実行じっこうできる。これにより、アプリケーションは最新さいしんばんのルーチンを自動的じどうてき使用しよう可能かのうとなり、かくルーチンは別々べつべつのセグメントとなっていて、最初さいしょにそのルーチンをそうとしたときにまれるようになった。ことなるユーザーが実行じっこうさせていることなるプロセスのあいだでは、このようなライブラリセグメントの検索けんさくルールを個別こべつ設定せっていでき、ユーザーごとことなるバージョンのルーチンを自動的じどうてき使用しようすることができた。Multicsのセキュリティ機能きのう適切てきせつ設定せっていすると、あるセグメントないのコードがべつのプロセスないのデータ構造こうぞうにアクセスできるという重要じゅうよう機能きのうもあった。

したがって、デーモンとして動作どうさしているアプリケーションがあったとき、べつのユーザープロセスが単純たんじゅん普通ふつう手続てつづしをおこなうと、そのデーモンにアクセスするコードセグメントが動的どうてきにリンクされて実行じっこうされるといった仕掛しかけが可能かのうであった。そのようなコードセグメントはデーモンのつデータ構造こうぞう更新こうしんすることもできる。要求ようきゅう登録とうろく完了かんりょうしたら、制御せいぎょもとのユーザープロセスのコードにもどされる。

Multicsはまた、積極せっきょくてきオンライン構成こうせい変更へんこうをサポートした。CPUもメモリバンクもディスクドライブもシステム動作どうさちゅう追加ついかしたり削除さくじょしたりすることが可能かのうだった。MITのシステムではこれが普通ふつうおこなわれていた。ソフトウェアの開発かいはつにおいてマルチプロセッサシステムをふたつに論理ろんりてき分割ぶんかつし、一方いっぽうあらたなOSの評価ひょうか使用しようする。このとき、段階だんかいてきにリソースを削除さくじょしていって、通常つうじょうのタイムシェアリングシステムの構成こうせいちいさくし、削除さくじょしたリソースで2だいのシステムを構成こうせいする。このあいだ、タイムシェアリングシステムはそのまま動作どうさつづけていた。これは初期しょきマルチプロセッサシステムの1つでもあり、今日きょう大型おおがたサーバなどでおこなわれているパーティショニング機能きのう先駆さきがけでもある。

Multicsはコンピュータセキュリティ考慮こうりょして設計せっけいされた最初さいしょのオペレーティングシステムの1つである。しかし、初期しょきのMulticsはなん侵入しんにゅうされている[5]。そのためさらなるセキュリティ強化きょうかおこなわれた。だい世代せだいのハードウェアではリングプロテクション導入どうにゅうされ、侵入しんにゅうはほとんどなくなった。

階層かいそうがたファイルシステムをはじめて採用さいようしただけでなく[6]、ファイルめい任意にんいながさで自由じゆう設定せっていできるようにもなっている。ファイルやディレクトリは複数ふくすう名前なまえち(なが名前なまえみじか名前なまえ)、ディレクトリあいだのシンボリックリンクもサポートされた。今日きょうでは一般いっぱんてきカーネルうちでのプロセスごとスタックはじめて採用さいようされ、セキュリティリングごとにスタックが分離ぶんりされた。Multicsの主力しゅりょく開発かいはつ言語げんご高級こうきゅう言語げんごPL/1である。当時とうじ高級こうきゅう言語げんごもちいてOSを記述きじゅつしたれいはほとんどなく、それはUNIXの初期しょき実装じっそうがアセンブラじょうおこなわれていたことからもうかがえる。ただし、バロース B5000システムはMulticsに先行せんこうしてALGOL使用しようしている[1]

プロジェクトの経緯けいい

編集へんしゅう

Multicsは当初とうしょGE-645メインフレーム(36ビットシステム)じょう開発かいはつされた。のちにハネウェル6180シリーズじょう動作どうさしている。UNIX初期しょき歴史れきしについての重要じゅうよう著作ちょさく[7]がある Peter H. Salus は、「かれらはMulticsをもっと用途ようと柔軟じゅうなんなオペレーティングシステムにしようとしたが、それはみじめに失敗しっぱいした」とべている[8]。しかしそのような見方みかたは、Multicsでの技術ぎじゅつ革新かくしんおおくが現代げんだい商用しょうようシステムで採用さいようされている現状げんじょうからまとていないとされている[4]

ベル研究所けんきゅうじょ1969ねんにプロジェクトから撤退てったいした。当時とうじMulticsにかかわっていた人々ひとびと一部いちぶUNIXシステムの開発かいはつ移行いこうした。Multicsの開発かいはつはMITとGEでつづけられた。

1970ねんハネウェルはGEのコンピュータ部門ぶもんり、1985ねんごろまでGEの設計せっけいもとづいたシステムを開発かいはつつづけた。やく80ヶ所かしょ大学だいがく研究所けんきゅうじょ政府せいふ機関きかんでMulticsシステムが稼動かどうした。(Bullとハネウェルの関係かんけいで)フランスの大学だいがく1980年代ねんだい初期しょきにいくつか導入どうにゅうされている。ハネウェルが Multics のサポートをやめると、ユーザーはUNIXなどのシステムに移行いこうしていった。最後さいごまで使つかわれていたカナダ国防省こくぼうしょうのシステムは、2000ねん10がつ30にち退役たいえきした。

1985ねんNSAのNCSC(国立こくりつコンピュータ保安ほあんセンター)の策定さくていしたセキュリティ評価ひょうか基準きじゅん Trusted Computer System Evaluation Criteria(通称つうしょうオレンジブック)のB2レベルのセキュリティを実装じっそうしたOSであると認証にんしょうされた。このレベルの認証にんしょうけたのはMulticsが最初さいしょである。

Bullは1975ねんから2000ねんまでヨーロッパでMulticsを販売はんばいし、Bull HN Information Systems Inc. がアメリカで販売はんばいした。2006ねん、Bull SAS がMulticsのいくつかのバージョンをオープンソースした[9]

当時とうじとしては巨大きょだいおもわれたMulticsのカーネルは、135Kバイト以上いじょうのコードで構成こうせいされていた。MITに最初さいしょ設置せっちされたGE-645のしゅ記憶きおく容量ようりょうは 512Kワードであり(やく2Mバイト)、Multicsはそのやく10ぶんの1をめていたにぎない。

方法ほうほう測定そくていすると、OS以外いがいのPL/1コンパイラやユーザーコマンドやライブラリをふくめたぜんコードは1500のソースモジュールから構成こうせいされている。かくモジュールがやく200ぎょう仮定かていすると、コンパイルによって生成せいせいされるコードはやく4.5Mバイトとなる。これは2006ねん現在げんざい感覚かんかくではちいさいが、当時とうじとしては巨大きょだいだった。

Multics のコンパイラはCPU性能せいのうすことよりもコードサイズをちいさくするよう最適さいてきされていた。たとえば、「オペレータ」とばれるちいさなサブルーチンを多用たようしている。コードサイズをちいさくするという選択せんたくは Multics のようなしゅ記憶きおく高価こうかマルチユーザーシステムでは選択せんたくであった。

UNIXに2038ねん問題もんだいがあるが、Multicsには1900ねん1がつ1にち午前ごぜん0からのマイクロびょうきざむ52ビットのカウンタがあり、1971ねん5がつ11にちにMSBが0から1になった[10]

Multicsにかんする風説ふうせつ

編集へんしゅう

「Multicsは完成かんせいせず出荷しゅっかされなかった」というのが一般いっぱん通説つうせつだが、これは事実じじつではない。実際じっさいにはGEおよびハネウェルから商用しょうよう製品せいひんとして販売はんばいされており、一定いってい成果せいかげたようである[4]

またUNIXとの対比たいひつねげられるパフォーマンスのわるさは、のちに1970ねんなかばから1980年代ねんだいいたってハードウェア性能せいのう向上こうじょうによりじつ使用しようへの影響えいきょうちいさくなっている。Multicsは新奇しんきなアイデアを貪欲どんよくんだ当時とうじとしては先進せんしんてきなOSであり、現実げんじつかいがったのち肥大ひだいしたUNIXとの比較ひかくはそれほど簡単かんたんではない。

影響えいきょう

編集へんしゅう

GEのGECOS、ハネウェルのGCOS日本電気にほんでんきのACOS-6は、Multicsの系統けいとうといえるOSである。

Multicsプロジェクトで仕事しごとをしていたケン・トンプソンデニス・リッチー最初さいしょ開発かいはつしたUNIXは、コマンドの命名めいめいほうまでふくめたおおくの領域りょういきでMulticsの影響えいきょうしめしている。たとえば、lsコマンドは "list segments" のりゃくであり、Multicsのセグメントを一覧いちらん表示ひょうじするものとして命名めいめいされた。

最初さいしょのUNIXはDECのPDP-7うえ実装じっそうされた。このPDP-7はメモリが8キロワードしかなく、2メガバイトのメモリをゆうするGE-645にくらべるときわめて貧弱ひんじゃく環境かんきょうであった。このハードウェア制約せいやくのため、UNIXはMulticsで予定よていされていた機能きのうだい部分ぶぶんけずり、最小さいしょう限度げんどのシンプルなものにならざるをなかった。

当初とうしょのUNIXはMulticsのようなマルチタスクオペレーティングシステムではなく、いちひとつのプログラムしか実行じっこうできないシングルタスクのオペレーティングシステムであった[11]。この特徴とくちょうから、このOSはカーニハンによって、MulticsのMultiをUniにえてUnicsと名付なづけられた[12]のちにつづりがUNIXへと変更へんこうされた。

「UNIXはMuticsを否定ひていするものである」あるいは「せい反対はんたい設計せっけい思想しそうもとづいてつくられた」といわれることがあるが、トンプソンやリッチーはそのような発言はつげんをしていない。むしろ、「Multicsでられた利便りべんせいうしないたくなかった」とべており、Multicsを一部いちぶでももどそうとしようとしていたことがわかる[11]。「せい反対はんたい設計せっけい思想しそう」にしても、そもそも「設計せっけい思想しそう自体じたいがあったともべられておらず、UNIXがシンプルなものになったのは、ハードウェアじょう制約せいやく適合てきごうした結果けっかぎない。

ケン・トンプソンは2007ねんのインタビューで[13]Multicsについて「設計せっけい開発かいはつなにもかもが過剰かじょうだった。およそ実用じつようてきではなかった。かれら (MIT) はいまだにおおきな成功せいこうだったと主張しゅちょうしているが、あきらかにそうではない」とべている。しかし同時どうじに「わたしが(Multicsのなかで)十分じゅうぶん採用さいようあたいするとかんがえた機能きのうは、階層かいそうがたファイルシステムとシェルだ。シェルはプロセスとして独立どくりつしていて、きなものとえることができる」とみとめている。

プライムコンピュータ英語えいごばんのオペレーティングシステムPRIMOS英語えいごばんを、同社どうしゃ創業そうぎょうしゃウィリアム・ポドスカ英語えいごばんは「靴箱くつばこなかのMultics」(Multics in a shoebox) としょうした。ポドスカはのちアポロコンピュータ創業そうぎょうし、そこでAEGISとDomain/OSというオペレーティングシステムを開発かいはつしたが、それを「マッチばこなかのMultics」(Multics in a matchbox) とんだりした。Domain/OSはMulticsにネットワークとグラフィックス機能きのうくわえたものである。

ストラタスコンピュータ(げんストラタステクノロジー)のオペレーティングシステム Stratus VOS英語えいごばん はMulticsのつよ影響えいきょうけており、ユーザインタフェースも内部ないぶ構造こうぞうもよくている。Multicsの高信頼こうしんらいせい可用性かようせい・セキュリティ機能きのう強化きょうかしたもので、高信頼こうしんらいトランザクション処理しょりをサポートするフォールトトレラントシステム採用さいようされている。VOSはMulticsの直接ちょくせつ子孫しそんとして、いま活発かっぱつ開発かいはつつづけられている。

現在げんざい状況じょうきょう

編集へんしゅう

HoneywellのDPS8/M CPUのエミュレータじょうでMultics 12.7が動作どうさします.[14]

参考さんこう文献ぶんけん

編集へんしゅう

Multicsにかんしては様々さまざま文献ぶんけんがある。完全かんぜんなリストはここにある。もっと重要じゅうよう文献ぶんけん以下いかげる。

  • F. J. Corbató, V. A. Vyssotsky, Introduction and Overview of the Multics System (AFIPS 1965ねん) システムにかんする紹介しょうかい資料しりょう
  • F. J. Corbató, C. T. Clingen, J. H. Saltzer, Multics -- The First Seven Years (AFIPS, 1972ねん) 長年ながねん使用しよう改良かいりょう時点じてんでの素晴すばらしいレビュー

技術ぎじゅつ詳細しょうさいかんする参考さんこう文献ぶんけん

編集へんしゅう
  • Jerome H. Saltzer, Introduction to Multics (MIT Project MAC, 1974ねん) じつユーザーによる非常ひじょうながいシステム紹介しょうかい
  • Elliott I. Organick, The Multics System: An Examination of Its Structure (MIT Press, 1972ねん) 初期しょきのバージョンにかんする標準ひょうじゅんてき資料しりょう。ただしここにしるされている機能きのう一部いちぶ結局けっきょく実装じっそうされなかった。
  • V. A. Vyssotsky, F. J. Corbató, R. M. Graham, Structure of the Multics Supervisor (AFIPS 1965ねん) Multicsカーネルの基本きほん構造こうぞう
  • Jerome H. Saltzer, Traffic Control in a Multiplexed Computer System (MIT Project MAC, 1966ねん6がつ) カーネルスタックえにかんする最初さいしょ記述きじゅつ; 情報じょうほう工学こうがく古典こてんてき論文ろんぶん
  • R. C. Daley, P. G. Neumann, A General Purpose File System for Secondary Storage (AFIPS, 1965ねん) ファイルシステム、アクセス制御せいぎょ、バックアップ機構きこうについて
  • R. J. Feiertag, E. I. Organick, The Multics Input/Output System. 入出力にゅうしゅつりょく詳細しょうさいについて implementation.
  • A. Bensoussan, C. T. Clingen, R. C. Daley, The Multics Virtual Memory: Concepts and Design, (ACM SOSP, 1969ねん) Multicsのメモリ管理かんり詳細しょうさい
  • Paul Green, Multics Virtual Memory - Tutorial and Reflections Multicsのストレージシステムについての資料しりょう
  • Roger R. Schell, Dynamic Reconfiguration in a Modular Computer System (MIT Project MAC, 1971ねん) 構成こうせい変更へんこう機能きのうについて

セキュリティにかんする参考さんこう文献ぶんけん

編集へんしゅう
  • Paul A. Karger, Roger R. Schell, Multics Security Evaluation: Vulnerability Analysis (Air Force Electronic Systems Division, 1974ねん) 「タイガーチーム」によるMulticsのセキュリティやぶりについて
  • Jerome H. Saltzer, Michael D. Schroeder, The Protection of Information in Computer Systems (Proceedings of the IEEE, 1975ねん9がつ) 最初さいしょのセキュリティアップグレードの背景はいけいとなる基本きほん思想しそうについて; もう1つの古典こてんてき論文ろんぶん
  • M. D. Schroeder, D. D. Clark, J. H. Saltzer, D. H. Wells. Final Report of the Multics Kernel Design Project (MIT LCS, 1978ねん) さらなるセキュリティ強化きょうかについて
  • Paul A. Karger, Roger R. Schell, Thirty Years Later: Lessons from the Multics Security Evaluation (IBM, 2002ねん) すうじゅうねんまえのセキュリティ機能きのう今日きょうきびしい環境かんきょうやくつかどうかを考察こうさつしている。Multicsが2002ねんおおくの商用しょうようシステムよりもセキュリティがつよいと断定だんていしている。

日本語にほんご文献ぶんけん

編集へんしゅう
  • 池田いけだ克夫かつお, コンピュータ・ユーティリティの構造こうぞう MULTICSの解剖かいぼう (あきらあきらどう, 1974ねん)
  • E.I.オーガニック, MULTICSシステム : システムのアーキテクチャとソフトウェア (上巻じょうかん下巻げかん)、共立きょうりつ出版しゅっぱん(1973)。

脚注きゃくちゅう

編集へんしゅう
  1. ^ a b The Multics PL/1 Compiler R. A. Freiburghouse, General Electric Company, Cambridge, Massachusetts, 1969.
  2. ^ Myths about Multics: Myth: Multics was closed source
  3. ^ Multics History
  4. ^ a b c Myths about Multics
  5. ^ Tom Van Vleck (2002ねん). “How the Air Force cracked Multics Security”. 2013ねん2がつ22にち閲覧えつらん
  6. ^ Multicians Glossary: File system
  7. ^ Salus, Peter H. (1994). A quarter century of UNIX (Reprinted with corrections Jan. 1995. ed.). Reading, Mass.: Addison-Wesley Pub. Co.. ISBN 978-0-201-54777-1 
  8. ^ “40 years of Unix”. BBC News. (August 20, 2009). http://news.bbc.co.uk/2/hi/technology/8205976.stm 2010ねん5がつ13にち閲覧えつらん 
  9. ^ Multics history MIT
  10. ^ unix time
  11. ^ a b Ritchie, Dennis M. (1984). “The Evolution of the Unix Time-sharing System”. AT&T Bell Laboratories Technical Journal 63 (6 Part 2): 1577–93. http://www.bell-labs.com/usr/dmr/www/hist.html 2018ねん9がつ2にち閲覧えつらん. 
  12. ^ Dolya, Aleksey (29 July 2003). “Interview with Brian Kernighan”. Linux Journal. 18 October 2017てんオリジナルよりアーカイブ。2018ねん9がつ2にち閲覧えつらん
  13. ^ Peter Seibel. Coders at Work: Reflections on the Craft of Programming. APress Publications, 2007. ISBN 978-1-4302-1948-4
  14. ^ Multics Main Page”. May 19, 2020閲覧えつらん

関連かんれん項目こうもく

編集へんしゅう

外部がいぶリンク

編集へんしゅう