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

昔のコンピュータにあった、致命的なデザインミス」記事へのコメント

  • リトルエンディアンとセグメント方式
    • by Anonymous Coward

      セグメント方式がダメなのではなくて、セグメントサイズの上限が64KBしかなかったことが問題でしょう。
      現代のCPUでもセグメントに類する機構が存在することは珍しくありません。セグメントではなくGlobal Pointerとか呼ばれてるだけで。むしろ一切存在しないのはx64くらい。

      • セグメント方式がダメなのではなくて、セグメントサイズの上限が64KBしかなかったことが問題でしょう。

        あれって今想像するに, コンカレントCP/M [wikipedia.org]みたいに1プロセスあたり64KBの空間(それで十分だと思っていた)を並列して効果的に動かすための機構として想定していたんじゃないかと思います. まさか単一のプログラムが64kBを超えるコードやデータを取り扱うことは無い. 一般プログラマが直接セグメントを管理することはなく, OSにまかせるものだと.

        誤算だったのは, 8086用OSにセグメント管理を効率的にこなせるような高級なものが広まらなかったってことと, 画像処理みたいなメモリ空間を要求する用途が急激に広がったってことでしょうね.

        • 指定できるセグメントが16ビット分しかないので、あっというまに使い切ってしまいますし。
          今見れば、セグメントもオフセットも絶対的に足りていないような気がします。
          • > 指定できるセグメントが16ビット分しかないので、あっというまに使い切ってしまいますし。

            80386で32ビット(4GB)セグメントが導入されましたが。セグメントサイズが64KB単位になり悲しく思いました。
            初期のlinuxでも80386のセグメントが使われていました。現在の32ビット版Windowsでもセグメントは使われています。

            > 今見れば、セグメントもオフセットも絶対的に足りていないような気がします。

            今から見れば、どんな設計にもケチをつけられますよ。だから当時の致命的なデザインミスかどうかの話をしているわけで。
            親コメント
            • by Anonymous Coward
              > 指定できるセグメントが16ビット分しかないので、あっというまに使い切ってしまいますし。

              セレクタの仮想化は容易ですし、4GBセグメントがあれば1プロセスが64KBセグメントをたくさん使うということもなくなりますので、セレクタのスラッシングの心配は不要だと思いますよ。

              ※セレクタはオープンしているファイルハンドルにおおむね対応します。

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

処理中...