HUST-OS / xv6-k210

Port XV6 to K210 board!
MIT License
131 stars 56 forks source link

在内核中加入动态分配机制 #5

Closed retrhelo closed 3 years ago

retrhelo commented 3 years ago

目前我们计划在内核中加入动态的分配机制,用于更灵活的PCB、entry(文件系统)、buf(文件系统)等的管理机制

SKTT1Ryze commented 3 years ago

可以考虑在链接脚本中添加 .heap 段(堆),用部分内存作为堆分配

luojia65 commented 3 years ago

.heap段是arm上陈旧的设计,新架构不会这样做了,riscv-rt那边也是因为里面用到riscv库的内容,鉴于asm!宏还没稳定,暂时没法改。新的设计应该寻找自己的方法,得知剩余的内存有多大。嵌入式上是写死的,如果有内存控制器,比如DDR这些,要从DDR硬件上获得。

retrhelo commented 3 years ago

所以我们现在打算基于xv6本身的物理页分配系统做这个内存分配。4K的物理页上除去最开始的管理信息,剩下的内存划分为相同大小的内存单元等待分配。具体的思路后面应该会出个文档说明一下。

luojia65 commented 3 years ago

可以可以,实现一个分配器就好说了。

retrhelo commented 3 years ago

新的用于内核的动态内存分配模块kmemalloc.c已经添加至develop分支。下一步希望利用该模块对原代码中的部分模块重新编写(如proc.c等),以在实战中验证该模块的可靠性。