Windows における 32bit アプリと 64bit アプリの違い
いまいちピンと来てなかったので、順を追って調べてまとめてみることに。
- そもそも bit とは
- 64bit の必要性
- 64bit を使う
- でも 64bit Windows でも 32bit アプリは動くよ?
- Program Files と Program Files(x86)
- おわりに
そもそも bit とは
bit とは CPU が一度に扱える情報量。32bit だと 2^32=4294967296
おおよそ43億という数字を扱うことができる。この数字はコンピュータの性能にモロに絡んでくる。コンピュータの戦闘力と呼んでもいいだろう。
詳細は省くが、32bit Windows だとメモリは最大4GBまで、HDDは最大2TBまでという制約がある。これらは43億という戦闘力の限界である。
64bit の必要性
32bit、つまりは43億という戦闘力は、現代ではいささか力不足である。4GB 以上のメモリや、2TB 以上のディスク容量を要する場面などいくらでもあるからだ。
しかし 43億の限界は越えられない。どうするか。
そこで 64bit の登場だ。64bit とは、2^64=18446744073709551616
おおよそ 1844京という数字になる。
4294967296 18446744073709551616 | | | | 京 兆 億 万
桁違いの戦闘力だ。ピンと来ない?桁を変えてみよう。
4 1844674407 | | | | 京 兆 億 万
32bitを 4 とすると、64bitは18億だ。4億倍以上もの開きがある。もっとも数字だけ言われてもピンと来ないかもしれないが、とにかく桁違いなのだ。メモリやディスクの制限は天文学的に伸びる。実質制限など無いようなものだ。
64bit を使う
さて、その64bitを使うためには、どうしたらよいのだろうか。
64bit Windows を使えばいい?そのとおりだ。だが、まだ足りない。正確に言うなら 64bit Windows が持つ 「64bitの仕組み」に従ったアプリを作ればよい と言える。
ところがそうも簡単にいかない。というのも、
- 今までのアプリは32bitの仕組みがベースとなっている(32bitアプリ)
- 32bitアプリは「64bitの仕組み」では動かない、つまり 64bit Windows では動かない
だからだ。
でも 64bit Windows でも 32bit アプリは動くよ?
しかしながら実際は 32bit アプリでも動いている。WinXP, Win7 で使っていたフリーソフトが、64bit の Win7 や Win10 でも動作したりする。これはどういうことか。
答えを言うと、64bit Windows に 「32bit アプリも何とかして動かせるようにする仕組み(WoW64)」 が備わっているからだ。
ただし、何とか動かせるようにするために色々と頑張る分、処理速度が遅い。64bit Windows で動かす 32bit アプリの動作がもっさりしがちなのはそのためだ。
Program Files と Program Files(x86)
64bit Windows ではインストール先として Program Files と Program Files(x86) が存在する。どっちがどっちだか意味不明だが、ここまでの内容を踏まえればわかってくる。つまり、
- Program Files → 64bit アプリを格納するところ
- Program Files(x86) → 32bit アプリを格納するところ
このようになっている。
※x86 とは 32bit の意である。ちなみに 64bit は x86_64(あるいは略してx64)と書く。
おわりに
うん、イメージ掴めたと思う。