0
我想知道爲什麼應用程序不能在32位操作系統上使用4GB內存,因爲我們使用了虛擬內存技術。我知道一些應該使用某些內存的程序,例如操作系統,是否意味着每個應用程序都必須將這些程序作爲其中的一部分從4 GB可尋址虛擬內存的角度處理。由於我們有虛擬內存技術,爲什麼應用程序不能在32位操作系統上使用4GB內存?
我想知道爲什麼應用程序不能在32位操作系統上使用4GB內存,因爲我們使用了虛擬內存技術。我知道一些應該使用某些內存的程序,例如操作系統,是否意味着每個應用程序都必須將這些程序作爲其中的一部分從4 GB可尋址虛擬內存的角度處理。由於我們有虛擬內存技術,爲什麼應用程序不能在32位操作系統上使用4GB內存?
操作系統或硬件將地址空間劃分爲特殊用途。例如,內核和用戶。分配給這些其他用途的邏輯地址範圍不能被應用程序使用。
系統參數可以限制地址空間的大小。
配額可以限制特定用戶或進程的邏輯地址空間。
頁面文件空間可以限制每個人的邏輯地址空間。
改進:可尋址範圍仍爲「僅」32位。現在,如果操作系統需要爲諸如內存映射I/O設備之類的東西保留該可尋址範圍的某些部分,則根據定義,應用程序不能訪問完整的32位地址範圍,因爲該範圍的一部分被保留爲操作系統。 有硬件技巧來增加可尋址範圍,例如[Physical Address Extension](https://en.wikipedia.org/wiki/X86#Physical_Address_Extension_.28PAE.29),儘管我不知道它們是否廣泛由操作系統使用。 – RuiFig
在16位處理器的時代,這種硬件技巧很常見。 – user3344003