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

Opteron登場、ベンチマークも好調」記事へのコメント

  • 32bitのWindowsアプリケーションと64bitのWindowsアプリケーションが同時に動作している様子は“衝撃的”と言うほか無い。
    “衝撃的”……どこが?

    # Win32に紛れてた16bitのコードは衝撃っつーか足枷だったわけですが
    --


    # ACなのでAC
    • by Anonymous Coward
      そもそもOSの扱うbit数とCPUの扱うbit数
      って必ず一致しなきゃいけないものでもないですよね?
      なので64bitのCPUで32bitのコードを走らせるのは
      OS側で対応すれば何とかなるものだと思います。
      32bitのi486で16bitのDOSとか動いていたわけですし。
      こんな感じ?
       i486(32bit)-DOS系(16bit)-16bitコード
       i486(32bit)-win9x系(32bit)-16bitコード(OSで細工)

      で今回のOpteronの場合はどうなんでしょう?
       Opteron(32-64bit)-対応OS(64bit)-32bitコード

      ここで32bitコード
      • Re:? (スコア:1, すばらしい洞察)

        by Anonymous Coward
        専門家ではないけど。

        32ビットCPUの上で16ビットのコードを動かすには「リアルモード」か「仮想86モード」というモードで動かさないといけなかった。32ビットコードはそのまま「プロテクトモード」で動作する。32ビットのOSの上で16ビットのコードを動かすときには一時的に「仮想86モード」に切り替えていたはず。
        Opteronはそういう手法じゃな
        • Re:? (スコア:3, 参考になる)

          by tietew (6130) on 2003年04月23日 15時18分 (#303803) ホームページ
          i386系のプロテクトモードには,
          • 16bitモード (i80286のプロテクトモードっぽいもの)
          • 32bitモード(i386本来のプロテクトモード)
          • 仮想86モード(i8086エミュレーション)
          の3種類があって(前二者はアドレッシングモードがデフォルトで 16bit か 32bit かの違いのみ),Win16プログラムは16bitモード,Win32プログラムは32bitモード,DOS窓は仮想86モードで動きます。モードの切り替えはタスクスイッチのときにCPUが半自動的に行うので,一時的,という表現は微妙。

          以下はWin9x系でのお話: (詳細は Windows95内部解析 … 絶版かな? [amazon.co.jp]) でも

          DOS窓は各々独立したVM (Virtual Machine)を持ち,VMM.VxDがGUIアプリとは独立して制御します (GUIアプリは単一のVM上で動く)。なので変換を介しているとは言えないと思います。(VxDが直接システムコールを受け取り,MS-DOSやBIOSに受け渡す)

          GUIアプリは単一のVMに放り込まれ,KERNEL32.DLLが一所懸命各プロセス間の連携を行いつつ,Thunkという仕組みでKERNEL/GDI/USERの基本APIを変換しながら最終的にVxDへのシステムコールを行って動きます。なのでWin16/32アプリは相互に変換されながら動いていたと言っていいと思います。

          なお,NTではWOW(Windows on Windows)というエミュレーションレイヤが存在する(NTVDM.EXE)ので話はまた別。

          親コメント

アレゲは一日にしてならず -- アレゲ研究家

処理中...