\r\n\r\n

Windowsの「system32」フォルダと「syswow64」フォルダの違いは何ですか?

64ビット版のWindowsでは、プログラムファイル用のフォルダが2つに分かれています。しかし、それで終わりではありません。また、DLLライブラリや実行ファイルを格納するために、system32とsyswow64という2つの独立したシステムディレクトリがあります。 この名前にもかかわらず、system32は64ビットファイル、syswow64は32ビットファイルでいっぱいになっています。では、その理由は何なのか...。

64ビット版のWindowsでは、プログラムファイルのフォルダが2つに分かれています。しかし、それで終わりではありません。また、DLLライブラリや実行ファイルを格納するために、System32とSysWOW64という2つの独立したシステムディレクトリがあります。 この名前にもかかわらず、System32は64ビットファイルだらけ、SysWOW64は32ビットファイルだらけになっています。では、その理由は何でしょうか?

システム32(system32)は何ですか?

関連:DLLファイルとは何ですか、なぜ私のコンピュータで1つ見つからないのですか?

System32ディレクトリには、Windowsのシステムファイル(プログラムで使用される.DLLライブラリファイルやWindowsの一部である.EXEプログラムユーティリティを含む)が含まれています。ここにあるファイルのほとんどはWindowsオペレーティングシステムの一部ですが、サードパーティのソフトウェアプログラムが独自のDLLファイルをこのフォルダーにインストールすることがあります。

システム上で動作するアプリケーションは、ProgramFilesフォルダなどにインストールされている場合がありますが、通常はSystem32フォルダからシステム全体のライブラリを読み込みます。

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

関連:Windowsの「Program Files (x86)」と「Program Files」フォルダの違いとは?

64ビット版のWindowsでは、64ビットのプログラムとそのファイルが入ったC:㎤Program Filesフォルダと、32ビットのプログラムとそのファイルが入ったC:㎤Program Files (x86)フォルダが存在します。64ビットプログラムには64ビットDLLファイルが必要で、32ビットプログラムには32ビットDLLファイルが必要なので、これらのファイルを分けておくと便利です。

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

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

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㊦WindowsGroupに格納されます。SysWOW64です。

これは確かに直感に反していますね。名前に "32 "が付いていますが、System32フォルダには64ビットのライブラリが含まれています。また、64ビットという名前ですが、少なくとも64ビット版のWindowsでは、SysWOW64フォルダに32ビットのライブラリが格納されています。

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

wow64、説明

関連:64ビット版Windowsで、ほとんどのプログラムが32ビットのままなのはなぜですか?

ここでいう「WOW64」の部分は、マイクロソフト社の「windows 32-bit on windows 64-bit」という、OSの一部であるソフトウェアのことです。WoW64は、64ビット版のWindowsで32ビットプログラムを実行できるようにします。 WoW64は、プログラムが正しく動作するようにファイルアクセスをリダイレクトします。

例えば、64ビット版のWindowsに32ビット版のプログラムをインストールし、そのプログラムがC:⽚プログラムファイルフォルダーに書き込もうとすると、WoW64はC:⽚プログラムファイル(x86)を指し示します。Windowsはファイルシステムのリダイレクタを使用して、この処理を行います。

これはすべてバックグラウンドで自動的かつ透過的に行われます。また、WOW64はレジストリのアクセスをリダイレクトし、レジストリに64ビットと32ビットのプログラム用の別々の領域が存在することを保証します。

では、なぜsystem32は64ビットで、syswow64は32ビットなのでしょうか?

なぜ、「System32」フォルダは64ビットで、「SysWOW64」フォルダは32ビットなのか?

その答えは、多くの32ビットアプリケーションがC: \WindowsSystem32ディレクトリを使用するようにハードコーディングされているためと思われます。これらのアプリケーションを64ビット版Windows用に再コンパイルする場合、C: \WindowsSystem32ディレクトリを引き続き使用します。

マイクロソフトは、ディレクトリ名を変更して開発者に新しいディレクトリへの移行を強制し、その過程で多くのアプリケーションを破壊する代わりに、「System32」を標準のシステムライブラリディレクトリとして使用した。WoW64層で動作するアプリケーション用のライブラリディレクトリを新たに作成し、「SysWOW64」と命名したのだ。そう考えると、ネーミングにも意味がある。

たしかに、名前に「32」と入っているディレクトリが64bitになったのは、今となってはちょっとバカバカしいですね。マイクロソフトは90年代にC: \WindowsSystem32 と名付けたときに、この事態を予測すべきだったのかもしれない。しかし、ネーミングがシンプルになるのは良いことですが、そのためだけに多くのプログラムを壊し、開発者の仕事を増やすのは勿体ないです。つまり、当面はSystem32とSysWOW64を使い続けることになります。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ