【徹底解説】Windows 11/10のSystem32フォルダーとSysWOW64フォルダーの違い
Windowsを長年使っている方なら、System32フォルダーを目にしたことがあるはずです。さらに、64ビット版のPCをお使いなら、C:\Windowsディレクトリの中にSystem32とSysWOW64という2つのよく似たフォルダーが存在していることにお気づきでしょう。本記事では、それぞれの役割と、Windows 11/10におけるSystem32とSysWOW64フォルダーの違いについて詳しく解説します。

System32フォルダーとは?
System32フォルダーには、Windowsの動作に不可欠なシステムファイルが格納されています。その多くはDLL(ダイナミックリンクライブラリ)やライブラリファイルで、アプリケーションがWindowsの各種機能にアクセスする際に利用される、最も基本的なプログラム群です。また、PCにインストールしたソフトウェアが、独自のファイルをこのフォルダー内に保存することもあります。
プログラムをインストールすると、大まかに言って次のようなことが起こります。メインの実行ファイル(EXE)は「Program Files」フォルダーに配置され、その機能などをまとめたDLLはSystem32フォルダーに格納されます。これがWindowsにおける標準的な慣習です。
SysWOW64フォルダーとは?
64ビット版WindowsのPCで「C:\Program Files (x86)」というフォルダーを見かけたことはありませんか?ここでの「x86」は32ビットを意味します。つまり、64ビットマシン上に32ビットアプリをインストールする際には「C:\Program Files (x86)」が使われ、「C:\Program Files」には64ビットアプリとそのファイルが格納されます。
これと同じ理屈で考えると、「SysWOW64」という名前のフォルダーには64ビットのDLLだけが入っているように思えます。実際、当初はそのような意図だったのですが、現実にはそうなりませんでした。手動で中身を確認してみると、System32フォルダーには大量の64ビットDLLが、SysWOW64フォルダーには32ビットDLLが格納されていることがわかります。
では、なぜ「64ビット」を示す名前のフォルダーに32ビットのDLLが収められているのでしょうか?
System32とSysWOW64の違い
どちらもシステムフォルダーであり、システム全体で共有されるDLLやファイルを含んでいます。しかし、両者ともその名前の通りの構成にはなっていません。その原因は、過去のプログラムにハードコーディングされたパスにあります。
64ビットコンピューターでは、64ビットアプリケーションは以下のようにファイルを保存します。
- EXEなどの主要ファイル → 「C:\Program Files」
- DLLなどのシステム共通ファイル → 64ビットライブラリを含む「C:\Windows\System32」
一方、32ビットアプリケーションは以下のように保存します。
- 主要ファイル → 「C:\Program Files (x86)」
- システム共通ファイル → 「C:\Windows\SysWOW64」
32ビットアプリが自身の32ビットDLLを「C:\Windows\System32」にインストールしようとすると、要求は自動的に「C:\Windows\SysWOW64」へリダイレクトされます。これにより、System32には64ビットライブラリのみが維持される仕組みになっています。MicrosoftがSystem32を廃止しなかったのは、廃止すれば多数の既存プログラムが動作しなくなるためです。
背景にはこんな経緯があります。64ビットシステム向けに32ビットアプリをリリースしていた開発者の多くが、依然として「C:\Windows\System32」というパスを使い続けていたのです。このパスは彼らのプログラムにハードコーディングされていました。そこでMicrosoftは、既存のソフトウェアを壊さないよう、このリダイレクト機構を考案しました。
おかげで、開発者が特別な対応を行わなくても、すべてがバックグラウンドで自動的に処理されるようになりました。32ビットアプリがSystem32フォルダーに何かを要求すると、その要求は透過的にSysWOW64フォルダー(32ビットDLLがすべて格納されている)へ振り分けられます。64ビットアプリはデフォルトのフォルダーがそのまま使えるため、リダイレクトは一切不要です。
まとめると:Windows x64には64ビットDLLを格納するSystem32フォルダーがあり、もう一つのSysWOW64フォルダーには32ビットDLLが格納されています。ネイティブな64ビットプロセスは、期待どおりSystem32フォルダーでDLLを見つけられます。一方、32ビットプロセスからの要求に対しては、OSがSysWOW64フォルダーを見せることで対応しているのです。
同様の仕組みはWindowsレジストリにも採用されており、32ビットと64ビットのプログラム用にエントリが分離されています。
SysWOW64の「WOW」とは何の略?
Microsoftはこのフォルダーを「System64」と名付ける代わりに「SysWOW64」としました。WOWとは「Windows (32-bit) on Windows (64-bit)」の略で、32ビットアプリケーションを64ビット環境上で動作させる互換レイヤーを指します。32ビットアプリが64bit環境で動かせるようになったことから、この名前が付けられたのです。
Microsoftもこの事態を完全には予見していなかったのは確かでしょう。そうでなければ、System32フォルダーにこの名前が付くことはなかったはずです。もっとシンプルな命名も可能でしたが、フォルダー名を変更せずにリダイレクト方式を採用したのは非常に優れた判断でした。おかげで、ユーザーも開発者も、64ビットへの移行時にアプリを失うことなく済んだのです。
32ビットシステムは徐々に廃れ、64ビットコンピューターへの置き換えが進んでいますが、完全な移行にはまだ時間がかかるでしょう。将来的にはMicrosoftが何らかの整理を行うかもしれません。願わくば、将来のコードにはこうしたハードコーディングが残らないことを祈るばかりです。
-
Windows 11/10で隠しファイル・隠しフォルダーが表示されない・機能しないときの対処法
Windowsオペレーティングシステムには、デフォルトで非表示に設定されているファイルやシステムファイル・フォルダーが数多く存在します。これらが隠されているのは、システムが正常に動作するために必要なファイルであるため、ユーザーが誤って削除したり内容を変更したりするのを防ぐためです。しかし、トラブルシューティングなどの目的で、これらの隠しファイルやフォルダーを表示させたい場面もあるでしょう。 隠しファイルと隠しフォルダーを表示する基本の手順 隠しファイルやフォルダーを表示するには、Windows 11/10ではスタートメニューの検索ボックスに「エクスプローラーのオプション」(File Exp
-
Windowsの32ビットと64ビットの違いを徹底解説!確認方法から選び方まで
新しいWindowsパソコンを購入する際、「Proエディションにするか、Homeエディションにするか」と悩む方は多いのではないでしょうか。これらはマシンの用途に応じて決めるものですが、それ以外にもエディションの違いに関わる重要な要素があります。そのひとつが「システムは32ビットか、それとも64ビットか」という点です。 「32ビット」「64ビット」という言葉はよく耳にしますが、その意味を詳しく説明されることは意外と少ないものです。この記事では、32ビットと64ビットの違いについてわかりやすく解説します。 パソコンが32ビット・64ビットと呼ばれる理由 パソコンのアーキテクチャが32ビットか64