-1

是否可以在 Linux 内核中分配一大块内存,例如 64 MiB?

4

2 回答 2

1

您不能在单个 kmalloc() 或其他内存分配例程中分配 linux 内核代码中的 64 MB 内存。它有限且依赖于拱门。

您可以通过使用引导时内存分配技术来做到这一点。你可以参考http://www.xml.com/ldd/chapter/book/ch13.html

http://www.xml.com/ldd/chapter/book/ch07.html#t5

于 2013-03-25T10:15:42.423 回答
0

您使用的是哪种引导加载程序?我认为在引导加载程序中,可以将一些引导参数传递给 Linux Kernelm,例如“mem=1000MB”。然后您可以使用此参数在高端保留一定数量的内存。内核启动后,内核模块或用户空间进程可以使用这个保留的内存区域来实现您的简单堆管理。没有其他人会触及这个区域。但是bootmem只能在内核启动时使用,在内核启动后释放。这不是你想要的。

于 2013-03-25T10:51:46.217 回答