内存管理的几点疑惑,请指教。
都说linux内核占用0xc0000000以上的空间,即3G~4G处,而且0xc0000000处开始是物理内存的影射,比如物理内存大小是64M,那么0xc0000000到0xc0000000+64M处是影射的物理内存,而且内核中确实也有全局变量high_memory来保存物理内存上限所对应的虚地址。那么有两个疑惑了:
(1)对于物理内存大于1G的怎么办?你一共才1G的虚地址空间,怎么影射超过1G的内存?
(2)对于booter中启动参数带mem=..的来说,high_memory包含保留内存吗?比如,物理内存大小是128M,启动的时候用选项mem=64M,那么high_memory为多少?