メモリ – 何がWindows 7 x64マシンを<=192GB RAMに制限するのか?

comparison memory restrictions windows-7

マザーボードやBIOSなどは、個々のマシンにインストールしたり、使用したりできるRAMの量に上限を設けることがあると思いますが、Windows 7 x64のRAMの最大値はどのように定義されていますか?しかし、Windows 7 x64の最大RAMは何を定義していますか?

OSの根本的なアーキテクチャ上の制限なのでしょうか?Windows 7のバージョンによってRAMの最大値が異なります(Starter edition <= 2GB、Professional <= 192GB)。実際に変更される可能性があるものなのでしょうか?

比較対象として、Ubuntu 64xでは、1024GBものRAMを搭載することができます

  117  Lucas Fortini  2014-02-03


ベストアンサー

簡潔な答えは、ライセンスです

式からハードウェアを除くと、ほとんどが人為的なソフトウェアの制限です

制限値はレジストリから ZwQueryLicenseValue という名前の関数を呼び出すことで取得されますが、この関数はそれ自体が内部プロシージャから呼び出されます

ソース。32ビットWindows Vistaのライセンスメモリ

Additional information­

もちろん、文書化されていない形式であってもレジストリに保存されているライセンスデータは、ユーザーによって簡単に変更される可能性があります。そのため、マイクロソフトでは、ライセンスデータがマイクロソフトの思い通りになっているかどうかをチェックするための精巧なスキームを用意しています。カーネルはライセンスデータが改ざんされているかどうかのリポジトリであり、そのためにExGetLicenseTamperStateExSetLicenseTamperStateの2つの関数をエクスポートしています

ソース。ソフトウェア ライセンス

­

ExGetLicenseTamperState

この [文書化されていない] 関数は、ライセンスデータが改ざんされたかどうかをカーネルに問い合わせます

内部での使用は、約1時間ごとに再帰するタイマーにあります。改ざん状態が 4 であることがわかれば、Windows は停止します。バグチェックのコードはSYSTEM_LICENSE_VIOLATION(0x9A)で、0x1Bを第一引数としています

ソース。ExGetLicenseTamperState

実践例

32 GiB の RAM を搭載したコンピュータを持っていて、Windows 7 Home Premium x64 (64 ビット) をインストールしているとしましょう。その場合、16GiBに制限されます。Windows Anytime Upgradeを使用し、より高価なエディションにアップグレードした場合、突然制限は192GiBに設定されます

Conclusion

Windows 7 のすべてのエディションは同じソースコードを共有しています。主な違いは、有効または無効になっている機能/制限の数です。プロフェッショナル版とそれ以上のクライアント版には、処理できる RAM の量に上限はなく、Microsoft がサポートすることを保証しているものだけがライセンスされています

さらに、Windows 7 の EULA には、明示的に「商用ソフトウェア ホスティング サービスにソフトウェアを使用してはならない」と書かれており、Microsoft は、最高のクライアント版がライセンスされている以上の RAM が必要な場合、本当に欲しいのはサーバー ライセンスであると仮定していることをほのめかしています。Windows 7 のサーバーの対応するもの (つまり、Windows Server 2008 R2) Enterprise と Datacenter エディションでは、最大 2 TiB の RAM を使用することができます

技術の進歩が速いので、昨日は受け入れられたものでも明日には十分ではないかもしれません。それに追いつくために、Windows 8 は Core エディションでは 128GiB、Pro/Enterprise エディションでは 512GiB に制限を上げました。しかし、これは64ビット版にのみ適用されます:32ビット版はまだ4GiBに制限されています。サーバー版のWindows Server 2012では、上位エディションで最大4TiBのRAMに対応している

Further reading

185  community wiki  2014-02-06


マイクロソフトはそのようにライセンスを与えています。おそらく、より大きなリソースで動作するようにライセンスされたWindows Server製品にお金を払って欲しいと思っているのでしょう。これはSQL Serverのような他の製品でも同じです。SQL Server Expressには制限があるので、より多くのリソースが必要な場合は、それを許可する製品を購入しなければなりません

53  Dave Lucre  2014-02-03


タイトルとURLをコピーしました