Linux 操作系统17 内核态内存映射On this page17 内核态内存映射内核页表 vmalloc 和 kmap_atomic 原理 用户态通过 malloc 函数分配内存,malloc 分配比较大的内存的时,底层调用 mmap,也可以直接通过 mmap 做内存映射,在内核里面有相应的函数。 内核态缺页异常 kmap_atomic 发现没有页表的时候直接创建页表进行映射。vmalloc 只分配了内核的虚拟地址。所以访问它时候会产生缺页异常,从而调用 do_page_fault。