だから私はプログラマーであり、私は完全な馬鹿者ではないので、ポインターを置くことができない場所でメモリにアクセスできない理由を正確に理解しています。しかし、私はこれを試したことは一度もありませんし、お金や時間の浪費のように思われるので、私はこれを試したことはないと思います。
ヒメムにアクセスするためのツールがあるかどうか疑問に思っています(この問題はすでに解決されていると思います)。
だから私はプログラマーであり、私は完全な馬鹿者ではないので、ポインターを置くことができない場所でメモリにアクセスできない理由を正確に理解しています。しかし、私はこれを試したことは一度もありませんし、お金や時間の浪費のように思われるので、私はこれを試したことはないと思います。
ヒメムにアクセスするためのツールがあるかどうか疑問に思っています(この問題はすでに解決されていると思います)。
回答:
物理アドレス拡張機能を備えたプロセッサー(おそらくそうするでしょう)と正しいOS(たとえば、コンシューマーバージョンのWindowsではなく、PAEを使用しますが、上限が4GBである)を使用している場合、メモリは通常どおりにマップして使用できます。さもなければ、メモリは単にアドレス指定されず、OSはチップがいくつあっても、いくつあっても、アクセスできるメモリの量に追加されないことを通知します。
4 GBは32ビットプロセッサの制限であるため、状況は適切に機能します。 ここだより深くなり、実際には32ビットOS上で非常に4GB以上をインストールして使用できることを示して記事として。
32ビットOSによって異なります!
もちろん、最新のオペレーティングシステムでは、マザーボードを問題なく使用できる限り、ほとんど差し込むことができます(ただし、すべてを使用できるわけではありません)が、少なくともWindowsでは常にそうであるとは限りませんでした。
512MBを超えるメモリがインストールされている場合、Windows 95、98、SE、およびMEのバグが発生します。
最初に理解することは、現代のコンピュータシステムは仮想メモリを使用することです。32ビットを超える物理アドレスを持つ一方で、アプリケーション用に32ビットの仮想アドレスを持つことができます。
2番目に理解する必要があるのは、物理アドレス空間がさまざまなものに使用されていることです。最も重要なのは、メインRAMとメモリにマップされた周辺領域です。特にグラフィックカードには、多くの場合、大きなメモリマップ領域があります。その結果、使用可能な物理アドレススペースが4GBしかない場合、使用可能なRAMが4GBより大幅に少なくなる可能性があります。使用可能な約3.5 GBが一般的ですが、2.5 GBと低いシステムも見ました。
4GB以上の物理アドレス空間をサポートするPCでは、PAEと呼ばれるメカニズムが使用されます。これが機能するには、いくつかのことが必要です。
CPUは古くからPAEをサポートしていますが、これは問題ではありません。
古いチップセットの多くは、4GBの物理アドレス空間に制限されていました。IIRC Intelラップトップチップセットは、2007年の "Santa Rosa"世代で4GB以上のアドレススペースをサポートしました。デスクトップチップセットについてはよくわかりませんが、ほぼ同じ時間だったと思います。ワークステーション/サーバーのチップセットは明らかにずっと以前にサポートされていました。
Afaict BIOSは、チップセットがサポートしている場合、ほとんどがサポートしています。いくつかの例外があっても私を驚かせないでしょう。
OSは厄介なものです。LinuxとWindowsはどちらも年齢を問わずPAEをサポートしています。残念なことに、Windows XP Service Pack 2以降、MSは物理アドレス空間を人為的に4GBに制限しています。彼らはバグのあるドライバーのためにこれを行ったと主張し、皮肉屋は人々がサーバーエディションを購入することを強制するためにそれをしたと疑います。
Windows XPでは、これはカーネルに組み込まれており、基本的に元に戻すことはできません。しかし、それ以降のバージョンでは、カーネルへのいくつかのマイナーなハックでバイパスすることができます。詳細については、https://wj32.org/wp/を参照してください。