Linux的虛擬內存和物理內存是緊密聯系的,并呈現出一種非常復雜的交互關系,其中虛擬內存層是由操作系統實現的一種內存管理機制。
虛擬內存是一種計算機內存管理技術,它使得應用程序認為自己具有連續的可用內存(一個連續完整的內存空間),而實際上通常是被分割成多個物理內存的塊。操作系統會為每個進程分配一個虛擬地址空間,該地址空間可以映射到物理內存的任何位置。當進程需要訪問虛擬地址空間中的某個地址時,操作系統會檢查該地址是否已經被映射到物理內存,如果沒有映射,則會產生一個缺頁中斷,操作系統會從磁盤中讀取相應的頁面到物理內存中并建立映射關系。
而物理內存,是指計算機實際可用的內存。它是由 RAM 和其他可直接訪問的硬件組件構成的。物理內存存儲正在運行的程序和操作系統所需要的數據。當硬件需要訪問內存時,它會通過物理地址訪問 RAM。
總體來說,虛擬內存是一種高級的內存管理技術,它可以大大增加每個程序可以消耗的內存,因為每個程序都可以使用自己獨立的內存空間。而物理內存則是實際存在的硬件內存,通常不會超出硬件內存的限制。