先說一個自己以前碰到的問題吧,我的pc有8G的內存,我裝了32bit的操作系統,當然,只能查看到不到4G的內存。
對我們的應用程序來說,操作系統會給每個進程分配內存等資源。
假如說,我們在32位機器上定義了一個 int *pi; 指針,它的訪存範圍是4G-1G { linux系統下},也就是說32位linux系統的虛擬地址空間爲:4G-1G。
問題也就隨之而來,這裏的內存和虛擬地址空間究竟是什麼關係呢???
這裏收錄《程序員的自我修養筆記》的解釋:
先說一個自己以前碰到的問題吧,我的pc有8G的內存,我裝了32bit的操作系統,當然,只能查看到不到4G的內存。
對我們的應用程序來說,操作系統會給每個進程分配內存等資源。
假如說,我們在32位機器上定義了一個 int *pi; 指針,它的訪存範圍是4G-1G { linux系統下},也就是說32位linux系統的虛擬地址空間爲:4G-1G。
問題也就隨之而來,這裏的內存和虛擬地址空間究竟是什麼關係呢???
這裏收錄《程序員的自我修養筆記》的解釋: