首页 > 解决方案 > XV6 内核中的动态内存分配

问题描述

我想在文件中实现一个结构Queue(使用Node结构,类似于这里C的代码)并将进程存储在内核中。Queue.cQueue.hproc.cXV6

我不知道该怎么做,因为它需要使用malloc,但我不能在从内核调用的方法中使用它。

为了实现和使用Queue?

标签: kernelmallocxv6

解决方案


您可能必须为内核实现类似于用户 malloc 代码 ( user/malloc.c ) 的内容。例如,查看文件kernel/string.c它的内容与user/ulib.c非常相似。这样,内核和用户空间就有了自己的函数版本,比如memset.

来自user/umalloc.c的代码不能只是复制粘贴到内核版本中。您必须对其进行调整才能在内核空间中工作。例如,改变分配器管理的空间的morecore 增长方式......


推荐阅读