• ベストアンサー

16bit?32bit?64bitOS???

○○bitOSという言い方を良くするのですが そこで、ふと、思ったのですが Win3.1・・・・・・16bitOS Win95,98,me・・・16bitOS/32bitOS WinNT,2000・・・・32bitOS 次期OSから64bitOSを混在させていくみたいですが この8bitとか16bitと言うのは何でしょうか? OSと言うプログラムが扱えるメモリ空間が16bit=65536までと 思っていたんですが、65536b=8MBでは少ないし・・・・ それと、CPUに関しての16Bitとか32bitとか言うのは何なんで しょうか?CPU内部のバスの幅を表してるのかな・・・ もしそうなら16BitCPU=最大8bit命令*2を1サイクルで処理 できるって事になり、最初に書いた質問に帰結するような 気がしますが・・・・ちょっと混乱してます。 以上です、分かる方よろしくお願いします

noname#38849
noname#38849

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

まず最初に2の16乗=65536=64KBです。同様に2の32乗=4GB。 OSでいう○○ビットとCPUの○○ビットは同一ではありません。 CPUの○○ビットは主にデータバスのピン数を示します。 8086(Pentium系の先祖)は16本持っており最大2バイトのデータ転送を1サイクルで行うことができました。 現在のPentium系CPUは32ビットのデータバスを持っており、4バイトのデータ転送を1サイクルで行います。 OSでいう○○ビットはアドレス値のビット幅を示します。 これはCPUのアドレスバスのピン数と一致するとは限りません。 8086CPUは16ビットのアドレスバスを持っていました。 結果、プログラムは「16ビットで表現可能な64KB」または「2つの16ビットアドレス値をハード的に演算処理した“20ビットアドレス”で表現可能な1MB」の空間で動くように作成される必要がありました。 「アドレスバスのビット数(=16)」と「アドレス値のビット数(16×2=32)」、さらに「2つのアドレス値を演算処理した実アドレス値のビット数(20)」の3つ違いや特性を認識する必要があるため8086系のOSは複雑なものでした。 (その後、EMSと呼ばれる外部メモリ空間が加わり実空間が数MBに広がったため話はもっと複雑になります。) Windows3.1はこのような複雑な環境を制御できるように作成されました(実際にWindows3.1が動作するCPUはもっと後期のものです)。 Pentium直系の先祖である80386の登場で話は一気に簡単になります。 80386はアドレスバス、データバス共に32ビット持っていたため32ビット空間(4GB)を素直に使うことができます。 しかし、Windows3.1で開発された多くのプログラムは8086の変則的な16(20)ビット空間で動作するように作られていたため、80386の単純な32ビット空間では動作しません。 結果,Windows95ではWindows3.1のソフトウェア資産を引き継ぐ必要性から16(20)ビットプログラムが動作可能なように「16ビット環境」を内包しています。 WindowsNT(実際はその直系先祖のOS/2)は「Windows3.1のソフトウェア資産を切り捨てる」という大英断によって純粋な32ビットOSとして存在します。 次世代PentiumであるIA64系CPUは64ビットのアドレスバスを持つ予定です(もう「最大空間○バイト」などというレベルではありません)。 単純な32ビットアプリケーションは単純な64ビット環境で動作することができますが、OSの場合はそうは行きません。 64ビットハードウェアに合わせたOSと32ビットハードウェアに合わせたOSが必要なのです。 しかし、巷に存在するであろう32ビットハードウェアを見捨てることもできません。 そこで、次世代Windowsは32/64ビットOSである必要があるのです。 無論、その後は64ビット環境で一本化されるでしょう。 というようにOSの16→16/32→32→32/64→64という変転にはそれぞれに特殊事情が絡んでいて「○○ビットOS」と呼ばれる理由もそれぞれに違ったりします。

noname#38849
質問者

お礼

有り難う御座います m(__)m 大変解りやすくて、喉につかえていた魚の骨が取れた気分です

その他の回答 (2)

回答No.3

すみませんちょっと抽象的ですが...。 ご質問の「OSにおける○bitOS」という言い方は、そのOS上でプログラムをする時に、「自然」に扱う事のできる変数(データ)の大きさということになると思います。(C言語の表現で言うと「sizeof(int)」です。) つまり、完全な16bitOSであるwindows3.1では32bitの値を扱うことはできますが、16bitを扱う場合に比べて「不自然」な扱いが必要になる場合があります。(32bit数を扱う場合にいつでも「不自然」であるという意味ではなく、16bitの値を中心に扱うような仕組みにOSがなっているという意味です。) 同様に32bitOSであるWindowsNTでは32bit値を基本的なデータ型としており(16bit値は、メモリ効率が悪い事を除けばそのまま使えます。)64bit値を扱う場合は「不自然」な仕組みが存在します。(64bitOSも同様です。繰り返しません。) 次に「CPUにおける○bitCPU」ですが、内部データバスということで基本的には良いと思います。ただ、メーカの発表ではこれに厳密に一致していると言えない場合があります。内部データバスの条件を満たしていなくても○bitCPUを名乗るだけの風格(?)があれば、○bitCPUと言うことがあるようです。 最後に「OSにおけるbitとCPUにおけるbitの関係」ですが、CPUが○bitを「自然」に扱える仕組みを持っていない限りそのOS上で○bitOSを設計することができません。(Windows3.1がサポートしていた80286は32bitを「自然」に扱える仕組みをもっていなかったため、80286を対象CPUにいれているかぎり32bitOSになることはできません。)

noname#38849
質問者

お礼

たいへんありがとう御座います 勉強になります

  • nag3
  • ベストアンサー率28% (103/361)
回答No.1

32bitと言うのは、2進数で32桁という意味です。 16bitは16桁になります。 CPUに関してはおっしゃる様にバス幅のことで、たとえば32bitであれば、一度に2進数で32桁のデータを転送出来るという意味になります。 拡張命令とは、異なるものです。

関連するQ&A

  • 64bitCPUに32bitOSを入れたときの動作やデメリット

    質問内容: 64bitCPUに32bitOSを入れた場合、 ・動作は32bitCPUに32bitOSを入れた場合より悪化するか(具体例もあると嬉しいです) ・32bit板のソフトが正常に動作する保障はどのくらいあるか ・上記以外で、デメリットはあるか を教えていただけますでしょうか? 大雑把な質問で申し訳ないですが、よろしくお願いします。 状況: 64bitCPUを買うことを決めています。 頻繁ではないですが、32bitでは足りない計算をするためです。 (ハードな計算をしていますが、PCに関してはド素人です…) OSに関しては、64bitのメリットを必要としていません。 しかし、32bitOSを入れた場合、どのようなデメリットが生じるのか、心配です。 64bitOSを入れるより無駄が多い(64bitCPUをフルに生かせない)ことは存じております。 OSは、Windows Vistaを入れようと思っています。 64bitPCをメインに使う予定ですが、別に32bitPCもあるので、64bitPCの使用目的は柔軟に変えられます。 いくつか64bitと32bitに関する過去の質問を読みましたが、明快な理解を得ることができなかったので、質問させていただきます。 よろしくお願いいたします。

  • WinXP64bitバージョンの大メモリは32bitOS用ソフトで使い切れるか?

    ◆どなたかお教えいただけると助かります。◆近々、WindowsXP64bitバージョンが発売されると聞きます。AMDの64bitCPUのOptron248とWindowsXP64bitVersionの組み合わせでは、16GB等の大メモリ空間が使えると聞きました。◆Q1:32bitWindows用のソフトも64bitXP上で動くとのことですが、その場合、広大なメモリは利用されるのでしょうか?それとも例の4GB以下の32bitOSの制約に引きずられるのでしょうか。◆つまり、メモリの管理は各ソフトの対応如何なのか、OSが対応していれば使い切れるのか、分からないのです。ご助言お願いいたします。

  • 32bitか64bitOS

    趣味とたまに仕事で3DCGをやっています。 この度新PCを買おうとしたのですが OSを32bitか64bitOSにするかで迷っています。 またVISTAの場合、種類が豊富なのでどれがいいのか 教えていただければ幸いです Core 2 Quad Q9450 P5K PRO PC5300 DDR2 4GB(2GB*2) +流用 PC5300 DDR2 4GB(2GB*2) ST3500320AS 500GB GeForce 8800GTS 320MB GDDR3-320bit SATA対応スーパーマルチ LGA775用静音CPUクーラー ATX-607-CA-AB8FB 607W

  • 32bit 64bitに関する基礎的な事柄

    よくわかっていないことを質問させていただきます。 32bit,64bit用アプリ? 32bit,64bitとは、CPUが一度に読み込むことの出来るデータの量を言っているのだと思います。 つまり、OSは、当然、CPUが32bitであるのか、64bitであるのかを、きっと認識していて、 32bitCPUに対しての処理と、64bitCPUに対する処置を選択していると考えます。 アプリケーションレベルでは、OSに作業の指示を出すのであって、アプリケーションは、 PCがどんなCPUをつかっているのか、気にする必用はないのではないかと考えます。 しかし、現実には、そこらじゅうで32bit, 64bit用の言葉を聞きます。 これは、きっと自分が理解していることは、どこか、間違っているのだと考えます。 基礎的な事柄とは思いますが、よろしく、ご教示の程、お願い致します。

  • 仮想化ソフトのゲストで64BitOSを起動させるとメモリの認識は?

    よろしくお願いいたします。 仮想化ソフトで64BitOSがゲストで動かせるものがあります。 (現状はVMWare Workstation 6これだけ?) もしホストOSが32BitOSだとしたらゲストの64BitOSのメモリのアドレス空間は4GB超えるのでしょうか? ホストが32Bitだとゲストも4GBの制限を受けてしまうのでしょうか? その他なにか制限を受ける可能性はあるのでしょうか? よろしくお願いいたします。

  • 業務で元々32bitOS上で動作していた32bitアプリを

    業務で元々32bitOS上で動作していた32bitアプリを 64bitのサーバOS上で動作させる事になりましたが、この場合、 問題があるとすれば、どのような事が考えられるでしょうか? 今回追加するアプリが64bitでしか動作しないため、 64bit、32bit混在が必須な状態との前提でお願いします。 簡単な動作テストをしてみたところ、 現状では問題は起きていませんが、 サーバなので今後も長期に渡り使用するため、 制約(動作速度、リソースの問題、安定性など)があれば 把握・対策の検討をしておきたいと思っています。 検索をしましたが情報が少なくよくわかりませんでしたので、 有識者の方々よろしくお願いします。 OSは以下です。 以降前:RedHat(R)EnterpriseLinux(R)5.5BaseServer(x86) 以降後:RedHat(R)EnterpriseLinux(R)5.5BaseServer(x86-64) CentOSに関する情報でも構いません。

  • 64bitパソコンとワークステーション

    仕事でシミュレーションソフトを使っています。これには、32bit版と64bit版があります。 64bit版OSが走るパソコンとOSがあればそれを使えるようです。メモリも多くつめるし、さばける処理も増えると思いました。 そしてその64bitOSが走るように64bit版パソコンを自作しようと思いましたが、「マザーボードが64bit対応にするようにBIOSをアップデートしないとダメです。お店で売っているのはみんな32bitのみ対応か、BIOSのアップデートで64bit対応可能になるものです」といわれました。またCPUについても「デュアルコアやなんとか64とつくものすべてが64bit対応ではない」といわれました。 そこで質問なのですが、このような手を尽くして64bitOSが走るパソコンは自作できるのでしょうか? また、世の中にはワークステーションというものがありますが、それと作ろうとしている64bitパソコンの定量的な差は何になるのでしょうか?

  • CPUの動作について

    ただいまCPUの動作について勉強しています。 が、混乱してきましたので、どなたか教えて下さい。 ※間違っていたらご指摘下さい。補足も大歓迎です。 32bit_CPUについて ・命令セットの幅が32bitである。 ・データバス幅が32bitあるので一回の処理で32bit処理ができる。 ・バイトアドレッシングの場合  1つのアドレスに8bitのデータが入っている。  その為、32bit命令をフェッチする為には4サイクルかかる? ・ワードアドレッシングの場合  1つのアドレスに32bitのデータが入っている。  その為、32bit命令をフェッチする為には1サイクルでよい? この辺が非常に混乱しているところです。 どなたか教えて下さい!

  • Corei5 2300に32bitのOSは?

    数年ぶりのPC買い換え(自作)で、Corei5 2300にしようと思っています。 基本的な質問なのですが、32bitのWin 7はインストールできるのですか? 昔は64bitのCPUには、64bitのOSしかダメだったように記憶してたんですが、 32bitのWin 7が入った同Corei5 2300仕様のPCが売ってたりして、混乱してしまいました。 お願いいたします。

  • DELL XPS420は64bitOSでも大丈夫?

    DELL XPS420を使っています。 OS:VISTA SP1 HomeBasic(32bit OS) CPU:Core2Quad memory:4.0GB HDD:500GB 今現在windows7 ultimate(64bitOS)をHDDにインストールしようと 考えていますが、XPS420のハードウェアは64bitOSに対応 しているでしょうか? 検索して http://bbs.kakaku.com/bbs/0010X119612/ などはみたのですが もう少し情報がほしいです。 又,XPS420はメモリを8.0GBに増設できるマザーボードなのでしょうか? 初歩的ですみませんがよろしくおねがいします。