内核地址空间
内核线性地址空间范围:3GB-4GB (0xc0000000-0xffffffff)
内核线性地址空间[3GB,3GB+896MB]-----(线性映射)----------物理地址空间[0,896M]
内核线性地址空间[3GB+896MB,4GB]用来实现“非连续内存分配”和“固定映射”
固定映射
固定映射的线性地址以“任意方式”(与前896MB线性映射方式相比)映射任何物理地址空间
固定映射使用的线性地址位于线性地址第4个GB末端
每个固定映射的线性地址都由定义在enum fixed_addresses数据结构中的整型索引来表示
enum fixed_addresses {
#ifdef CONFIG_X86_32
FIX_HOLE,
#else
#ifdef CONFIG_X86_VSYSCALL_EMULATION
VSYSCALL_PAGE = (FIXADDR_TOP - VSYSCALL_ADDR) >> PAGE_SHIFT