Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
谁能告诉我是否有任何Linux内核API可以给我免费的连续页面列表,起始页面地址是8字节对齐的?
我需要获得连续的物理内存,而不是虚拟内存。
正如 Paul R 所说,使用kmalloc. 如果您分配的页面少于一个页面,那么您的分配将按其大小对齐,向上取整为 2 的幂(即分配 40 个字节将为您提供一个按 64 个字节对齐的地址)。如果分配一页或更多页,则地址在页上对齐,即 4096 字节。 您获得的内存是虚拟的,但被 1-1 映射到物理内存,因此您获得了连续的物理页面。 请注意,在 Linux 2.6.22 之前,它被限制为 128KB(取决于架构和配置)。从 2.6.22 开始,限制为 4MB(同样,取决于架构和配置)。
kmalloc