ホームページ » の仕方 » Windowsの“ System32”フォルダと“ SysWOW64”フォルダの違いは何ですか?

    Windowsの“ System32”フォルダと“ SysWOW64”フォルダの違いは何ですか?

    64ビットバージョンのWindowsでは、2つの別々のProgram Filesフォルダがあります。しかしそれだけではありません。 DLLライブラリと実行可能ファイルが格納されている2つの別々のシステムディレクトリ、System32とSysWOW64もあります。名前にもかかわらず、System32は64ビットファイルでいっぱいで、SysWOW64は32ビットファイルでいっぱいです。だから何が与えます?

    System32とは何ですか?

    System32ディレクトリには、Windowsシステムファイル、プログラムで使用される.DLLライブラリファイル、およびWindowsの一部である.EXEプログラムユーティリティの両方が含まれています。こちらで見つけるファイルの大部分はWindowsオペレーティングシステムの一部ですが、サードパーティーソフトウェアプログラムは時々このフォルダーにも独自のDLLファイルをインストールします。.

    システムで実行されているアプリケーションは、Program Filesフォルダまたは他の場所にインストールされていますが、System32フォルダからシステム全体のライブラリを読み込むことがよくあります。.

    32ビットライブラリと64ビットライブラリの分離

    64ビットバージョンのWindowsでは、64ビットプログラムとそのファイルを含むC:\ Program Filesフォルダと、32ビットプログラムとそのファイルを含むC:\ Program Files(x86)フォルダがあります。 64ビットプログラムは64ビットDLLファイルを必要とし、32ビットプログラムは32ビットDLLファイルを必要とするため、これらのファイルを分離することは有用です。.

    32ビットプログラムが必要なDLLファイルをロードし、64ビットバージョンを見つけてそれをロードしようとすると、クラッシュします。 64ビットと32ビットのソフトウェアを2つの異なるProgram Filesフォルダに分けることで、Windowsはそれらが混乱して問題を引き起こさないようにします.

    ただし、すべてのDLLファイルがProgram Filesに格納されているわけではありません。 Windowsに含まれるシステム全体のライブラリの多くはC:\ System32に格納されています。また、プログラムによっては独自のライブラリファイルをここにダンプするものもあります。したがって、Windowsに32ビットと64ビットのProgram Filesフォルダが別々にあるように、32ビットバージョンと64ビットバージョンのSystem32フォルダも別々にあります。.

    System32とSysWOW64

    32ビットコンピューターでは、すべての32ビットプログラムはファイルをC:\ Program Filesに格納し、システム全体のライブラリの場所はC:\ System32です。.

    64ビットコンピュータでは、64ビットプログラムはファイルをC:\ Program Filesに格納し、システム全体のC:\ Windows \ System32フォルダには64ビットライブラリが含まれています。 32ビットプログラムはファイルをC:\ Program Files(x86)に格納し、システム全体のフォルダはC:\ Windows \ SysWOW64です。.

    これは絶対に直感に反することです。 「32」という名前にもかかわらず、System32フォルダには64ビットライブラリが含まれています。そして、名前に64があるにもかかわらず、SysWOW64フォルダには32ビットライブラリが含まれています - 少なくとも64ビットバージョンのWindowsでは.

    一般に、これを知る必要はありません。使用するWindowsオペレーティングシステムとプログラムは、それらのファイルを正しい場所に自動的に配置し、正しいフォルダを使用します。ただし、DLLファイルを正しい場所に手動でインストールする必要がある場合、またはインストールされている場所を見つける必要がある場合は非常に稀ですが、どれがどれであるかを知る必要があります。.

    WOW64、説明済み

    ここでの名前の「WOW64」の部分は、オペレーティングシステムの一部であるMicrosoftの「Windows 32-bit on Windows 64-bit」ソフトウェアを表します。これにより、Windowsは64ビットバージョンのWindows上で32ビットプログラムを実行できます。 WoW64はファイルアクセスをリダイレクトしてプログラムが正しく動作することを確認します.

    たとえば、64ビットバージョンのWindowsに32ビットプログラムをインストールしてC:\ Program Filesフォルダに書き込もうとすると、WoW64はそれをC:\ Program Files(x86)に指定します。また、C:\ Windows \ System32フォルダにアクセスする場合、WoW64はそれをC:\ Windows \ SysWOW64に指定します。 Windowsはファイルシステムリダイレクタを使用してこれを行います.

    これはすべてバックグラウンドで自動的かつ透過的に行われます。このプログラムは、64ビット版のWindows上で変更なしで古い32ビットプログラムを実行できるようにするために、64ビットオペレーティングシステム上で実行されていることを知る必要さえありません。 WOW64はレジストリアクセスもリダイレクトし、64ビットプログラムと32ビットプログラム用に別々のレジストリ領域があることを確認します。.

    だから、なぜSystem32は64ビット、そしてSysWOW64は32ビットなのか?

    これで、何百万ドルもの質問に戻ります。「System32」フォルダは64ビット、SysWOW64は32ビットなのです。?

    その答えは、多くの32ビットアプリケーションがC:\ Windows \ System32ディレクトリを使用するようにハードコードされていることにあります。開発者が64ビットバージョンのWindows用にこれらのアプリケーションを再コンパイルしたとき、C:\ Windows \ System32ディレクトリを引き続き使用しました。.

    ディレクトリの名前を変更して開発者に新しいディレクトリに移動させ、その過程で多くのアプリケーションを中断させるのではなく、Microsoftは標準のシステムライブラリディレクトリとして "System32"を残しました。彼らは、WoW64レイヤーの下で実行されるアプリケーション用の新しいライブラリー・ディレクトリーを作成しました。それらを「SysWOW64」と名付けました。このように考えると、名前はもっと理にかなっている.

    はい、名前に「32」が含まれているディレクトリが64ビットになったのは少し愚かです。おそらくMicrosoftは、90年代にC:\ Windows \ System32と命名したときにこの問題が発生したはずです。しかし、もっと直接的な命名体系は良いでしょうが、たくさんのプログラムを壊してそこにたどり着くために開発者のためにより多くの作業を作成する価値はありません。つまり、当面はSystem32とSysWOW64を使用しています。.