64bitへのWindowsの流れ。そして、32bit版Windowsの終焉

64bitへのWindowsの流れ。そして、32bit版Windowsの終焉

alexlmx / PIXTA(ピクスタ)

◆Microsoft「Visual Studio 2022」を発表、待望の64bit化

 4月の下旬に、Microsoft から、アプリケーションの統合開発環境 Visual Studio の時期バージョン Visual Studio 2022 が発表された(Visual Studio Blog、窓の杜)。

 この発表で話題になったことの1つに、Visual Studio の64bitアプリケーション化がある(作成したアプリケーションの出力は、これまでどおり32bit、64bitの両方をおこなえる)。

 これまで32bitアプリケーションだった Visual Studio は、64bitアプリケーションになる。そのことでメモリ不足などの発生が起きなくなり、大規模なソリューションをあつかえるようになる。

 もう1つアプリケーションの64bit化の話題がある。こちらは開発者だけでなく、一般の人にも関係することだ。Microsoft の OneDrive である(窓の杜)。

 これまでは32bitアプリケーションしかなく、64bitの Windows でも、32bitアプリケーションを使わざるを得なかった。OneDrive で64bitアプリケーションが使えるようになれば、サイズの大きなファイルを大量に送る場合などにパフォーマンスが向上する。

 Microsoft は去年の5月に、メーカーへのOEM用の Windows は、64bit版 Windows 10 のみにすると発表した(マイナビニュース)。Microsoft は段階的に、32bit版の Windows を終了させようとしている。

 32bitと64bit。この数字の違いは何なのか。Widows 上で動作する際に、どのような違いがあるのか。Windows の歴史とともに見ていこう。

◆32bit版と64bit版のWindowsの違い

 まず、32bitと64bitの話題で出てくるbitとは何かについて話す。

 普段我々は、10で桁が上がる10進数という数え方を使っている。対してコンピューターでは、2で桁が上がる2進数という数え方を使っている。bitは、この2進数の1桁のことを指す。

 2進数では、0、1の次は、桁が上がって10になる。10、11の次も、桁が上がって100になる。以降、101、110、111となり、1000の時点で桁が上がる。

 なぜこんな奇妙な数字を使うのか。2進数は、機械で表現するのが簡単だからだ。2進数の1をスイッチON、0をスイッチOFFと置き換えてみる。2進数の桁は、ON/OFF のあるスイッチを並べることで簡単に実現できる。

 たとえば、101、110、111は、ON-OFF-ON、ON-ON-OFF、ON-ON-ONで表現できる。

 ONとOFFしか状態がなければエラーが発生しにくい。10段階のスイッチが並んでいれば、ちょっとしたことで壊れたり、値がずれたりしてしまう。

 実際のコンピューターは、物理的な機械ではなく電子的な機械だ。電子的な装置でも、10段階より2段階の方がエラーが起きにくい。

 2進数は単純な機構で数字をあつかえる。人間には分かり難いが、機械を作る上では便利な数え方なのだ。

 さて、このbitなのだが、1bitでは0〜1の2つの値を表現できる。2bitでは、2×2で0〜3の4つの値を表現できる。3bitでは、2×2×2で0〜7の8つの値を表現できる。以降、1bit増えるごに、2倍ずつあつかえる数が増える。

 32bitの世界では、2を32回掛ける。そして0〜4,294,967,295の整数をあつかえる。この数値を使って、メモリーを管理すると、4GBのメモリー空間をあつかえる。

 32bit版の Windows では、基本的に4GBまでしかメモリーを使えない。こうした制約は、32bitという数値の範囲によって発生する。

 次に64bitの世界では、2を64回掛ける。そして0〜18,446,744,073,709,551,616の整数をあつかえる。大幅に範囲が増えるために、4GBのメモリーの制限がなくなる。32bitと64bitでは、このように、あつかえるリソースの範囲が大きく変わる。

 Windows 10 であつかえる物理メモリーの制限を見ていこう(Microsoft Docs)。32bit版(X86)では、いずれも4GBになっている。64bit版(X64)では、Windows 10 Home が128GB。Windows 10 Pro 、Windows 10 Education が2TB。Windows 10 Enterprise と Windows 10 Pro for Workstations が6TBになっている。

 また、32bit版と64bit版のWindowsには、あつかえるHDDの容量にも違いがある。32bit版では2TBまでの制限がある。動画が主流になり、大きなデータを保存するようになった現在では、64bit版のWindowsの方が使い勝手がよいということになる。

◆16bit、32bit、64bit Windowsの変遷

 このような違いがあるのならば、最初から全て64bitにすればよいではないかという声が聞こえてきそうだ。しかし、ハードウェアの進化に歩調を合わせてOSも改良されてきた。

 現在の視覚的な Winodws の流れを決定づけた Windows 95。このOSは、16bitから32bitへの移行期だった。そのため、完全に32bit化することができず、16bitのコードと、32bitのコードが混在していた(Win32サブルーチンズ)。

 家庭用パソコンの32bitから64bitへの流れは、Windows XP の頃から始まる。環境が整い、本格的に移行が始まったのは、おそらく Windows 7 の頃だろう。64bit対応CPUの普及やメモリーの低価格化により、64bit版製品が増えていった(ASCII.jp)。

 現在では、購入できる Windows 10 パソコンでは、特別な理由がない限り、64bit版となる。ハードウェアは一時期に全てを交換することはできない。そのため、移行は緩やかに進んでいく。

◆32bit、64bitの実行ファイル

 さて、少し開発者側の話をする。32bit版のアプリケーションと、64bit版のアプリケーションは、実行ファイルのバイナリ(中身のデータ)が異なる。

 プログラミング言語の多くは、出力ターゲットを指定してコンパイル(実行用ファイルを出力)することができる。その際には、同じ Windows であっても、32bit版を出力するか、64bit版を出力するか指定する必要がある。

 32bit版のアプリケーションと、64bit版のアプリケーションでは、実行ファイルの互換性はない。32bitのCPU、64bitのCPUに合わせた、実行ファイルを作成する必要があるからだ。そのため、本来は、64bit版の Windows で、32bit版のアプリケーションを動かすことはできない。

 しかし、現実には、64bit版の Windows で、32bit版のアプリケーションは動いている。これはOS側で、32bit版のアプリケーションをエミュレートして動作する仕掛けを用意しているからだ。

 この仕組みのことを WOW64 と言う。WOW64 は、Microsoft Windows-32-on-Windows-64 の略だ(Microsoft Docs)。

 32bit用の命令をエミュレートして、さらに32bit用のOSと同じような仮想のメモリー空間を用意する。そうすることで、64bitの Windows 上で、32bitアプリケーションを動作させる。

 そうした処理が入るために、64bit版の Windows で、32bit版のアプリケーションを使うと、少しだけもっさりとした動きになる。そのため、64bit版の Windows を利用しているのならば、素直に64bit版のアプリケーションを使った方がよい。

◆32bit、64bitのシェア

 私は昔からオンラインソフトを配布している。最近、32bit版と64bit版を同梱して配布しているアプリケーションがあり、ファイルサイズが大きくなり困っている。2年ほど前、64bit版のみを配布してみたら「32bit版の Windows で動かなかった」と言われてしまった。

 Windows の32bit版と64bit版のシェアを集計している所は少ない。Steamハードウェア&ソフトウェア 調査において比率が出ているが、Steam はゲーム用のマシンを積極的に購入する層なので、実態を反映しているとは考え難い。

 OSのシェアは、NetMarketShare で見ることができる。2021年のシェアを見ると、Windows 10 が66.64%、Windows 7 が18.49%、Windows 8.1 が2.57%、Windows 8 が0.50%となっている。

 32bit版から64bit版への移行は、Windows 7 の頃に起きている。Window 7 は2009年秋に出た。このOSを搭載したパソコンの2010年夏モデルでは、64bit版が7割に迫る状態になっている(週刊BCN+)。これ以降、64bit版が主流になったと思われる。

 仮に Windows 7 の半数が32bit版、それ以外が64bit版と推定すると、32bit版のシェアは約10%程度となる。少なくとも1%を切っているとは思えない。まだまだ32bit版のパソコンが稼働していると見てよいだろう。

 あとどれぐらい経てば、64bit版アプリケーションのみの配布で大丈夫になるのだろうか。Microsoft ではないが、いつぐらいに移行が終わるのだろうかと思っている。

<文/柳井政和>

【柳井政和】

やない まさかず。クロノス・クラウン合同会社の代表社員。ゲームやアプリの開発、プログラミング系技術書や記事、マンガの執筆をおこなう。2001年オンラインソフト大賞に入賞した『めもりーくりーなー』は、累計500万ダウンロード以上。2016年、第23回松本清張賞応募作『バックドア』が最終候補となり、改題した『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』にて文藝春秋から小説家デビュー。近著は新潮社『レトロゲームファクトリー』。2019年12月に Nintendo Switch で、個人で開発した『Little Bit War(リトルビットウォー)』を出した。2021年2月には、SBクリエイティブから『JavaScript[完全]入門』、4月にはエムディエヌコーポレーションから『プロフェッショナルWebプログラミング JavaScript』が出版された。

関連記事(外部サイト)

×