kmalloc、vmalloc 和 DMA 缓冲为什么不能互相随意替代?
kmalloc 返回物理上连续的小到中等内存并适合多数内核对象;vmalloc 只保证虚拟连续,页表映射开销更大;DMA 必须使用 DMA API 获得设备可访问地址与一致性语义,不能把 CPU 虚拟地址直接给设备。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
kmalloc 返回物理上连续的小到中等内存并适合多数内核对象;vmalloc 只保证虚拟连续,页表映射开销更大;DMA 必须使用 DMA API 获得设备可访问地址与一致性语义,不能把 CPU 虚拟地址直接给设备。