Windows OS をしばらく使用している場合は、この System32 フォルダーを見たことがあるはずです。ただし、64 ビット PC を使用している場合は、C:\Windows ディレクトリ。 1つ目はシステム32、そして2つ目はSysWOW64。この投稿では、それらとSystem32 フォルダーと SysWOW64 フォルダーの違いWindows 11/10の場合。
System32 フォルダーとは何ですか?
System32 フォルダーには、すべてのシステム ファイルが含まれています。これらは通常、DLL またはライブラリ ファイルであり、アプリケーションが Windows 機能にアクセスするために使用する最も一般的なプログラムです。コンピュータにインストールされるプログラムは、コンピュータ内にファイルを保存することもできます。
プログラムをインストールすると、より広いレベルで 2 つのことが起こります。メインプログラム(EXE)は次の場所にインストールされます。プログラムフォルダー、一方、その DLL (関数などをパックしたもの) は System32 フォルダーに保存されます。これは標準的な慣行です。
SysWOW64フォルダーとは何ですか?
気づいたことがありますかC:\プログラム ファイル (x86)64 ビット PC 上のフォルダーはありますか?ここで、x86 は 32 ビットを意味します。したがって、32 ビット プログラムを 64 ビット マシンにインストールするには、C:\プログラム ファイル (x86)が使用されます。その間C:\プログラム ファイルフォルダーには 64 ビット プログラムとそのファイルが含まれています。
SysWOW64 フォルダーには 64 ビット DLL のみを含める必要があるという類推をしているかもしれません。それが本当の目的だったのですが、うまくいきませんでした。手動で確認すると、System 32 フォルダーには 64 ビット DLL が、SysWOW64 フォルダーには 32 ビット DLL が大量に存在します。
では、なぜ 32 ビットのマークが付いているフォルダーには 64 ビットのフォルダーがあり、64 ビットのマークが付いているフォルダーにはすべての 32 ビット DLL が格納されているのでしょうか?
System32 フォルダーと SysWOW64 フォルダーの違い
どちらもシステム フォルダーであり、システム全体の DLL またはファイルが含まれています。ただし、ハードコーディングされたプログラミングのおかげで、その名前に忠実ではありません。
64 ビット コンピュータでは、64 ビット プログラムが保存されます。
- C:\Program Files にある EXE などのプライマリ ファイル。
- C:\Windows\System32 フォルダー内の DLL などのシステム全体のファイルには、64 ビット ライブラリが含まれています。
ただし、32 ビット プログラムには次のものが保存されます。
- C:\Program Files (x86) 内のプライマリ ファイル
- システム全体のフォルダーは C:\Windows\SysWOW64 です。
32 ビット プログラムが 32 ビット DLL ファイルをインストールしたい場合C:\Windows\システム32にリダイレクトされます。C:\Windows\SysWOW64。これにより、基本的に System32 は 64 ビット ライブラリのみを保持するようになります。多くのプログラムが壊れてしまう可能性があるため、Microsoft はこれを削除できませんでした。
何が起こったのかというと、32 ビット アプリケーションを 64 ビット システムに展開した開発者のほとんどが依然としてC:\Windows\システム32。これはプログラムにハードコーディングされていました。 Microsoft はプログラムを壊したくなかったので、このリダイレクトを考案しました。
これにより、開発者が多くの作業を行う必要がなく、すべてがバックグラウンドで実行されます。 32 ビット プログラムが System32 フォルダーに何かを要求すると、そのプログラムはすべての 32 ビット DLL を保持する SysWOW64 フォルダーに自動的にリダイレクトされます。 64 ビット プログラムにはデフォルトのフォルダーが存在するため、リダイレクトは必要ありません。
つまり、Windows x64 には、64 ビット DLL を含む System32 フォルダーと、32 ビット DLL を含む 2 番目の SysWOW64 フォルダーがあります。ネイティブ 64 ビット プロセスは、DLL が存在するはずの場所、つまり System32 フォルダー内に DLL を見つけます。 32 ビット プロセスの場合、OS はリクエストをリダイレクトし、SysWOW64 フォルダーに表示します。
Windows レジストリでも同じことが行われ、32 ビット プログラムと 64 ビット プログラムが分離されました。
関連している:System32 フォルダーが起動時に自動的に開きます。
SysWOW64 のすごいところ
Microsoft は、このフォルダーに System64 という名前を付ける代わりに、SysWOW64 という名前を付けました。 WOW は、Windows (64 ビット) 上の Windows (32 ビット) を表します。 32 ビット アプリケーションを 64 ビット アプリケーション上で実行できるため、その名前が付けられました。
マイクロソフトはそれが来るとは予想していませんでした。そうしないと、System32 フォルダーにその名前が付けられません。もっと単純なものでもよかったかもしれません。ただし、フォルダーの名前を変更せず、代わりにリダイレクトを使用したのは優れた決定でした。これにより、消費者と開発者は 64 ビットに移行してもアプリを失うことがなくなりました。
32 ビット システムは徐々に廃止され、64 ビット コンピューターに置き換えられていますが、それにはしばらく時間がかかります。 Microsoft は将来的にこれについて何らかの対応をするかもしれません。 64 ビット コーディングにハードコーディングがないことを願います。
次に読む:Windows 64 ビットの Sysnative フォルダーの説明。
System32 が System64 と呼ばれないのはなぜですか?
これは互換性のためです。当初、Microsoft はフォルダーの名前を変更することを計画していましたが、多くの開発者がアプリケーションのソース コードにシステム フォルダーへのパス (フォルダー パスに「System32」を含む) をハードコーディングしているため、変更を中止しました。
DLL は 32 ビットですか、それとも 64 ビットですか?
ダイナミック リンク ライブラリ (DLL) は、コンパイル対象のターゲット アーキテクチャに応じて、32 ビットまたは 64 ビットになります。 DLL のビット数は、それをロードするアプリケーションのビット数と一致する必要があります。