DragonOS提供了一些用于内存分配的api。您可以使用*kmalloc*来分配小的内存块,也可以使用*alloc_pages*分配连续的2MB大小的内存页面。
在内核中,最直接、最简单的分配内存的方式就是,使用kmalloc()
函数进行分配。并且,出于安全起见,在得到内存块后,我们强烈建议您使用memset()
函数将该内存区域清零。
您可以通过kmalloc()
函数分配得到32bytes到1MBytes之间的内存对象。并且,这些内存对象具有以下的性质:
对于需要大量连续内存的分配,可以使用alloc_pages()
向页面分配器申请连续的内存页。
当内存空间不再被使用时,那么必须释放他们。若您使用的是kmalloc()
分配的内存,那么您需要使用kfree()
释放它。若是使用alloc_pages()
分配的内存,则需要使用free_pages()
来释放它们。