しばらくの間WindowsOSを使用している場合は、このSystem32フォルダーを見たことがあるはずです。ただし、64ビットPCを使用している場合は、C:\ Windowsディレクトリに2つのフォルダがあることに注意してください。1つ目はSystem32で、2つ目はSysWOW64です。この投稿では、それらについて、およびWindows10のSystem32フォルダーとSysWOW64フォルダーの違いについて学習します。
System32フォルダーとは
System32フォルダーはすべてのシステムファイルです。これらは通常、DLLまたはライブラリファイルです。これらは、アプリケーションがWindowsの機能にアクセスするために使用する最も一般的なプログラムです。これとは別に、コンピュータにインストールするプログラムは、その中にファイルを保存することもできます。
プログラムをインストールすると、より広いレベルで2つのことが起こります。メインプログラム(EXE)はProgramsフォルダーにインストールされ、DLL(関数などにパックされている)はSystem32フォルダーに保存されます。これは一般的な方法です。
SysWOW64フォルダーとは
64ビットPCのC:\ Program Files(x86)フォルダーに気づきましたか?ここで、x86は32ビットを意味します。したがって、32ビットプログラムを64ビットマシンにインストールするには、C:\ Program Files(x86)が使用されます。一方でC:\プログラムファイルフォルダは、64ビットプログラムとそのファイルが含まれています。
これで、SysWOW64フォルダーに64ビットDLLのみが含まれている必要があるというアナロジーを描くことができます。それが実際の意図でしたが、うまくいきませんでした。手動で確認すると、System 32フォルダーには64ビットDLLが、SysWOW64フォルダーには32ビットDLLがたくさんあります。
では、なぜ32ビットのマークが付いたフォルダーに64ビットのフォルダーがあり、64ビットのマークが付いたフォルダーにすべての32ビットDLLが格納されているのでしょうか。
System32フォルダーとSysWOW64フォルダーの違い
どちらもシステムフォルダであり、システム全体のDLLまたはファイルが含まれています。ただし、ハードコードされたプログラミングのおかげで、名前に固執していません。
64ビットコンピューターでは、64ビットプログラムは-
- C:\ ProgramFilesのEXEなどのプライマリファイル。
- C:\ Windows \ System32フォルダにあるDLLなどのシステム全体のファイルには、64ビットライブラリが含まれています。
ただし、32ビットプログラムは保存します-
- C:\ Program Files(x86)のプライマリファイル
- システム全体のフォルダーはC:\ Windows \ SysWOW64です。
32ビットプログラムが32ビットDLLファイルをC:\ Windows \ System32にインストールする場合、C:\ Windows \ SysWOW64にリダイレクトされます。これにより、System32は基本的に64ビットライブラリのみを保持します。それは多くのプログラムを壊していたので、マイクロソフトはそれを取り除くことができませんでした。
何が起こったのかというと、32ビットアプリケーションを64ビットシステムで展開し、C:\ Windows \ System32をまだ使用している開発者のほとんどです。これは彼らのプログラムにハードコードされていました。マイクロソフトはプログラムを壊したくなかったので、このリダイレクトを考案しました。
これにより、開発者が多くの作業を行うことなく、すべてがバックグラウンドで行われるようになります。System32フォルダーから32ビットプログラムによって何かが要求されると、すべての32ビットDLLを保持するSysWOW64フォルダーにサイレントにリダイレクトされます。64ビットプログラムにはデフォルトのフォルダが配置されているため、リダイレクトは必要ありません。
つまり、Windows x64には、64ビットDLLを含むSystem32フォルダーがあります。2番目のSysWOW64フォルダーには、32ビットDLLが含まれています。ネイティブ64ビットプロセスは、System32フォルダー内のDLLを期待する場所で見つけます。32ビットプロセスの場合、OSは要求をリダイレクトし、SysWOW64フォルダーを表示します。
Windowsレジストリについても同じことが行われました。32ビットと64ビットのプログラムは分離されています。
SysWOW64のWOW
Microsoftは、このフォルダーにSystem64という名前を付ける代わりに、このフォルダーにSysWOW64という名前を付けました。WOWは、Windows(64ビット)上のWindows(32ビット)の略です。32ビットアプリケーションは64ビットアプリケーションで実行できたため、その名前が付けられました。
Microsoftは、それが確実に来るとは考えていませんでした。それはかなり単純だったかもしれません。ただし、フォルダの名前を変更せず、代わりにリダイレクトを使用することは優れた決定でした。これにより、消費者と開発者の両方が64ビットに移行したときにアプリを失うことがなくなりました。
32ビットシステムは徐々に段階的に廃止され、64ビットコンピューターに置き換えられていますが、しばらく時間がかかります。おそらく将来、Microsoftはそれについて何かをするかもしれません。うまくいけば、64ビットコーディングにはハードコーディングはありません。
次を読む:Windows64ビットのSysnativeフォルダーについて説明します。