一、内核中申请内存有哪几个函数?有什么区别?1. kmalloc:分配的物理地址是连续的,一般只能分配 几百 KB void *kmalloc(size_t size, gfp_t flags) // 示例:使用 __GFP_ZERO 标志分配并清零内存 void *ptr = kmalloc(512, GFP_KERNEL | __GFP_ZERO); 2. vmalloc:虚拟地址连续,但物理地址是离散的,可以分配上 G,可以申请大块内存。 void *vmalloc(unsigned long size) 3. dma_alloc_coherent: 主要是为了在 DMA 操作中确保数据...