
我想知道... 64 位元作業系統可以運行 32 位元應用程序,對嗎? Windows使用WoW64來實現這個吧?
我的問題是,當這些應用程式運行時,它們使用64位元還是32位元位址?我想知道這個是因為記憶體使用情況...
答案1
在內部,每個程式都會看到大約 2GB 的記憶體空間(可以設定標誌以獲得 3GB),因此永遠不需要 64 位元指標(32 位元指標可以正常工作)。作業系統可以在背景處理所有 64 位元實記憶體管理。
不太確定這與記憶體使用有什麼關係。
答案2
32 位元應用程式只能看到 32 位元位址。 WoW64 為 32 位元應用程式模擬 64 位元記憶體空間內的 32 位元環境。
答案3
您的問題不是很具體,因為您不區分虛擬記憶體位址和實體記憶體位址。
是的,x86 程式將使用更多的記憶體和資源。它們將具有 32 位元虛擬位址空間,但在底層,記憶體管理器(MM 或 MMM)將使用 x64 指標。不過,這並不需要付出很大的努力。
到目前為止,最大的資源成本是司機。有一些重大的核心更改,其中許多是出於安全原因,需要重寫大部分驅動程式。
在內部,每個程式都會看到大約 2GB 的記憶體空間(可以設定標誌以獲得 3GB),因此永遠不需要 64 位元指標(32 位元指標可以正常工作)。作業系統可以在背景處理所有 64 位元實記憶體管理。
我相信這是不真實的。每個程式看到 4GB(32 位元虛擬位址空間),但核心將實體位址空間分成兩半。你所熟悉的兩個2GB指的是實體記憶體位址。