パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

極度にセキュアなOS」記事へのコメント

  • by ken-1 (4041) on 2005年01月27日 17時38分 (#685226)
    たぶんぜんぜんわかってないと思うので、遠慮がちに質問しますが、
    OS/400とかPalmOSとかと同じかんじだと思っていい?
    • by Anonymous Coward
      せんせー
      OS/400とPalmはまったく稼働環境が違うのれすが
      なにをいいたいのかよくわかりません。
      • by Anonymous Coward
        単一レベル記憶だってことだろ。なんか、このネタに関してはタレコミからコメントを書く奴まで、なんか全滅状態で悲惨だな。
        • by Anonymous Coward
          PalmOSみたいに基本的に主記憶メモリのみで動いてるのも『単一レベル記憶』って言うの?
        • by Anonymous Coward
          ええと、Linux を含む UNIX 系 OS も 1990年頃 (SunOS4) 以降は全て
          単一レベル記憶では?
          Apollo Domain も UNIX 系 OS に含めるなら、1980年代中盤からあり
          ますね。
          • by Anonymous Coward
            別ACですが、memory mapped file と混同していませんか。Multics や AS/400 は単一レベル記憶ですが、Mach や Unix などの memory mapped file を単一レベル記憶とは呼ばないと記憶しています。単一レベル記憶も memory mapped file の一種ですがより狭い概念では。
            • by Anonymous Coward
              AS/400 の人はそう主張しているかもしれませんが、一般論としては、アクセス可能なストレージを全てメモリで抽象化できれば single level storage の範疇に入ると考える方が普通ではないでしょうか? single level storage を、(Multics 以降で) 初期に実現したシステムとして、AS/400 の以外では Apollo Domain がよく引き合いに出されますが、Domain OS は、memory map するモデルですよね。

              固定長アドレ
              • by Anonymous Coward
                ストレージをメモリにマップするという時点でSLSじゃねーんだよ。
              • by Anonymous Coward
                #685291 です。
                私はあなたのいう所の固定長と可変長の違いが重要だと思うので必ずしも同意できませんが、ここで議論できるほど十分な見識も無いので Unix 等が SLS でないという主張は取りやめます。もしご存知であれば Un
              • by Anonymous Coward
                > ストレージをメモリにマップするという時点でSLSじゃねーんだよ。

                あれ、それでは Domain OS は SLS ではないというご意見なんでしょうか?
                SLSという概念は、Multics発祥なわけですが、Multics の人々は [stratus.com]
                Domain OS が single level storage を実現していると言っている
                わけです
              • by Anonymous Coward
                わかってねーな。
                「マップする」という時点でシングルじゃねーの。
              • by Anonymous Coward
                > 「マップする」という時点でシングルじゃねーの。

                それは AS/400 的な誤解でしょう。
                Apollo Domain が single level storage を実装したシステムであるという定評と矛盾しますから。
              • by Anonymous Coward
                それはあんたの誤解だよ。
                Aegisは知らないが、MulticsにおいてはメモリはSLSのキャッシュにすぎないので「ある空間から別の空間にマップする」という概念はないの。
              • by Anonymous Coward
                > MulticsにおいてはメモリはSLSのキャッシュにすぎないので
                > ので「ある空間から別の空間にマップする」という概念はないの。

                Multicsのことは知っています。
                問題は、「ある空間から別の空間にマップする」という操作を要する
                ことが、SLS であるかどうかの判断基準になるかどうかという点ですが、
                Apollo の Aegis がその操作を要すにも関わらず、SLS であると
                Multics の人々から認められている以上、判断基準になると考えるのは
                誤りだと思います。

                > Aegisは知らないが
              • by Anonymous Coward
                だからさ、「ある空間から別の空間にマップする」と言った場合には、ある空間と別の空間の二つがあるわけで、それはSLSとは言わないんだよ。
                Multicsは同一のファイルは同一のセグメントに対応しているから単一レベルと言えるんだけど。

                >なお、
              • by Anonymous Coward
                > だからさ、「ある空間から別の空間にマップする」と言った場合には、ある
                > 空間と別の空間の二つがあるわけで、それはSLSとは言わないんだよ。

                話がループしてますが、もう一度引用しておきます。
                「ある空間から別の空間にマップする」操作を必要とするOS である [multicians.org]
                Apollo Domain の OS (Aegis) を、当の Multics の人々自身
              • by Anonymous Coward
                Aegisが「『ある空間から別の空間にマップする』操作を必要とするOS である」ことの説明がないよ。
                あんたの勘違いじゃねーの。
              • by Anonymous Coward on 2005年01月28日 0時46分 (#685389)
                > 説明がないよ。

                既に #685344 [srad.jp] で説明してます。
                Aegis はアドレスレジスタが 32ビットしかない MC68020 上で動作する OS でしたから、マッピング操作なしに 128bit のアドレス空間にアクセスすることは、ハードウェア的に不可能です。

                ms_$mapl() という関数名で検索すれば、Aegis で file mapping を行っているソースコードを今でも見つけられるようですよ。
                例えば ここ [sourceforge.net]とか、ここ [gnome.org]とか、ここ [koders.com]とか、ここ [netlib.org]とか。
                親コメント
              • by Anonymous Coward
                追記します。
                きっと今後も Multics な人たちは Unix や Windows の memory mapped file を SLS だとは言わない。
              • by Anonymous Coward
                新参加のACですが。

                > Aegis ではオブジェクトアドレス空間が 128bit ある

                ここが重要ではないですか。
                単一レベル記憶では一つのリニアな抽象アドレス空間があって
                それを実CPUのアドレス空間にマップしているのです。
                実CPUのアドレス空間へのマップは単に実装の問題であって
                OSアーキテクチャではない。
                それに対してLinuxなど通常
              • by Anonymous Coward
                > Aegis はアドレスレジスタが 32ビットしかない MC68020 上で動作する OS でしたから、マッピング操作なしに 128bit のアドレス空間にアクセスすることは、ハードウェア的に不可能です。

                128bit仮想空間を32bitのメモリアドレス空間でキャッシュするのだから、ハードなりソフトなりでなんらかの仕掛けは必要だよ。

                イエスかノーで答
              • by Anonymous Coward
                > もしご存知であれば Unix や Windows の SLS だということを解説した
                > text があれば教えてください。

                ちょっと探してみたら、下記のスライドが見つかりました。大学の計算機
                科学の授業用だと思います。このスライドでは、mmap みたいなものも
                「SLS と呼ぶ場合もある」というニュアンスです。
                Multics and More VM [duke.edu] (スライドの10枚目)

                また古い話ですし、商業誌のものですが、UNIX Magazine 1988年6月号の
                「SunOS Release 4.0 の概要」という紹介記事は、SunOS 4 の VM および
                mmap 機能を指して「このような記憶システムをより一般的には単一レベル
                記憶と呼ぶ。」
              • by Anonymous Coward
                > Aegisでは「すでにメモリにマップされているファイルをもう一度マップした
                > 場合に、同じアドレスが帰ってくるか?」

                いいえ、同じ仮想アドレスが返ってくるとは限りません。

                オブジェクト・アドレス空間の方が仮想アドレス空間よりずっと広いわけです
                から、もしも同じオブジェクトには同じ仮想アドレスが返ってくるとすると、
                たまたま同じ仮想アドレスにマップされるような異なるオブジェクトを 2つ
                同時にマッ
              • by Anonymous Coward
                > たまたま同じ仮想アドレスにマップされるような異なるオブジェクト
                MulticsのSLSではこれはそもそもありえない。
                あんたの言い分では、オブジェクトはメモリマップされる以前から割り付けられる仮想アドレスが一意に決まっていることになる。
                システム38ではまさにその通りだ。

                Multicsでは
              • by Anonymous Coward
                > 単一レベル記憶では一つのリニアな抽象アドレス空間があって
                > それを実CPUのアドレス空間にマップしているのです。

                Multics は SLS ですが、アドレス空間は「リニア」じゃないです。

                > それに対してLinuxなど通常のUNIX系OSではアーキテクチャで
                > ファイルとファイル内オフセットという2次元のアドレス空間
                > を扱います。

                Multics のアドレス空間も、ファイルを表すセグメント番号と
                そのセグメント内のオフセットの2次元で表します。

                > したがってファイルはリニアなアドレス空間を
                > 持つメモリとはモデルが異なり、そのアー
              • by Anonymous Coward
                > > たまたま同じ仮想アドレスにマップされるような異なるオブジェクト

                > MulticsのSLSではこれはそもそもありえない。

                え?
                私は、もし Apollo Domain が、「すでにメモリにマップされているファイルをもう一度マップした場合に、同じアドレスが返ってくる」とすると、どういう問題が生じるかを説明しているんですが。
                この文章の対象は、Multics ではなくて、Apollo Domain です。
                Multics の場合、こういう問題が生じないことは明らかです。説明するまでもありません。

                > あんたの言い分では、オブジェクトはメモリマップされる以前から割り付け
                > られる仮想アドレスが一意に決まっていることになる。

                いいえ違います。一意に決まっ
              • by Anonymous Coward
                > 5. ファイル A をマップする。ところが、ファイル A が以前使っていたアドレスは、

                ファイルAは一度アンマップされてるんだろ。質問の意味を取り違えるなよ。

                ファイルAをアンマップせずに再度マップしようとした場合にどうなるかを聞いてるんだよ。
                二度目のマップの試みで、最初のマップと異なるア
              • by Anonymous Coward
                single level store と single level storage は区別しましょう。「単一レベル記憶」がどちらを指すのかわかりませんが、区別しないと議論が噛み合なくなります。
                私は single level storage の意味で使っていましたが、あなたは single level store の意味で使っていたようですね。
              • by Anonymous Coward
                > ファイルAをアンマップせずに再度マップしようとした場合にどうなるかを
                > 聞いてるんだよ。

                なるほど、元の質問を誤解していました。申し訳ない。
                答は同じく「いいえ」です。別々にマップされます。

                Apollo Domain は、UNIX の mmap() と同様、マップ時に copy-on-write 属性をつけたり、あるいは、読み書き保護のモードを変えてマップしたりすることができます。このためには、当然、同一のファイルを別々のアドレスにマップする能力が必要になります。
                このような機能は、ページング能力のあるハードウェアでは当たり前に実現できますが、もし AS/400 のように単一のアドレス
              • by Anonymous Coward
                > single level store と single level storage は区別しましょう。

                あれ、私が参照した資料 Multics and More VM [duke.edu] では、mmap() だけではなく、Multics についても single-level store と呼んでいます。(スライド 2枚目と 10枚目)
                ですから、Multics の機能と UNIX の mmap() を区別する理由にはならない筈です。

                私の理解だと、
                single-level store
                single-level storage
                one-level store
                one-level storage
                の4つは、計算機科学的には全て同じものを指します。
                実際、このスレッドの主題であ
              • by Anonymous Coward
                大概は同じものを指しているのですが、区別しているように見受けられる論文も見たことがあるので素人にはよくわかりません。例を挙げろと言われても申し訳ありませんが覚えていません。
                single level store が storage 上のオブジェクト(file)をメモリ空間に
              • by Anonymous Coward
                > 答は同じく「いいえ」です。別々にマップされます。

                そうすると、メモリにマップされた時点でオブジェクトの同一性は
                なくなるのか。
                俺にはむしろこっちのほうが使いづらいと思う。

                copy on writeはコピーなので同一オブジェ
    • by Anonymous Coward
      PalmOSとどのへんが同じかんじですか?

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

処理中...