Closed retrhelo closed 3 years ago
可以考虑在链接脚本中添加 .heap 段(堆),用部分内存作为堆分配
.heap段是arm上陈旧的设计,新架构不会这样做了,riscv-rt那边也是因为里面用到riscv库的内容,鉴于asm!宏还没稳定,暂时没法改。新的设计应该寻找自己的方法,得知剩余的内存有多大。嵌入式上是写死的,如果有内存控制器,比如DDR这些,要从DDR硬件上获得。
所以我们现在打算基于xv6本身的物理页分配系统做这个内存分配。4K的物理页上除去最开始的管理信息,剩下的内存划分为相同大小的内存单元等待分配。具体的思路后面应该会出个文档说明一下。
可以可以,实现一个分配器就好说了。
新的用于内核的动态内存分配模块kmemalloc.c
已经添加至develop
分支。下一步希望利用该模块对原代码中的部分模块重新编写(如proc.c
等),以在实战中验证该模块的可靠性。
目前我们计划在内核中加入动态的分配机制,用于更灵活的PCB、entry(文件系统)、buf(文件系统)等的管理机制