DragonOS icon indicating copy to clipboard operation
DragonOS copied to clipboard

【重构】内存管理模块

Open fslongjin opened this issue 2 years ago • 2 comments

简介

由于之前的内存管理模块是C写的,并且代码比较emm难以描述的丑,以及没有考虑到处理器架构可移植性的问题,因此我们从4月开始对它进行重构。

重构的代码在patch-refactor-mm分支。可以在代码搜索引擎中查看:https://opengrok.ringotek.cn/xref/DragonOS-patch-refactor-mm/

内存管理重构目前已经接近尾声,主要是在调试各种bug.

工作计划

内容 开发 测试 合并dev分支 负责人
bump分配器 @kkkkkong mailto: [email protected]
buddy分配器 @kkkkkong mailto: [email protected] @fslongjin mailto: [email protected]
slab分配器 @kkkkkong mailto: [email protected]
硬件抽象层 @fslongjin mailto: [email protected]
内核空间映射管理 @fslongjin mailto: [email protected]
用户空间映射管理 @fslongjin mailto: [email protected]
系统调用层 @fslongjin mailto: [email protected]
新的二进制程序加载器 @fslongjin mailto: [email protected]
C兼容层 @fslongjin mailto: [email protected]

涉及的帖子

  • 内存管理模块重构方案 https://bbs.dragonos.org/forum.php?mod=viewthread&tid=72&extra=page%3D1
  • 地址映射管理及VMA机制设计 https://bbs.dragonos.org/forum.php?mod=viewthread&tid=76&extra=page%3D1

fslongjin avatar Jul 09 '23 06:07 fslongjin

目前还有以下的地方没有改好/测好/添加到relibc.

  • slab分配器
  • mremap还没接上
  • mmap系统调用
  • munmap系统调用
  • procfs对mm的处理: hiwater_vm
  • buddy的usage统计功能

fslongjin avatar Jul 21 '23 13:07 fslongjin

经过测试,以下系统调用正常:

  • mmap(暂时不支持文件映射)
  • munmap
  • mprotect

fslongjin avatar Aug 02 '23 10:08 fslongjin

原先重构的时候写了slab,但是未经测试,可以考虑移植开源的slab

https://github.com/DragonOS-Community/DragonOS/issues/523

fslongjin avatar Feb 19 '24 03:02 fslongjin