内存页初始化方法探讨.pdfVIP

  • 0
  • 0
  • 约2.7万字
  • 约 16页
  • 2026-09-14 发布于北京
  • 举报

17-划分⼟地(中):如何实现内存⻚⾯初始化?

你好,我是LMOS。

上节课,我们确定了⽤分⻚⽅式管理内存,并且⼀起动⼿设计了表⽰内存⻚、内存区相关的内存管理数据结

构。不过,虽然内存管理相关的数据结构已经定义好了,但是我们还没有在内存中建⽴对应的实例变量。

我们都知道,在代码中实际操作的数据结构必须在内存中有相应的变量,这节课我们就去建⽴对应的实例变

量,并初始化它们。

初始化

前⾯的课⾥,我们在hal层初始化中,初始化了从⼆级器中获取的内存布局信息,也就是那个

e820map_t数组,并把这个数组转换成了phymmarge_t结构数组,还对它做了排序。

但是,我们Cosmos内存管理器剩下的部分还没有完成初始化,下⾯我们就去实现它。

Cosmos的内存管理器,我们依然要放在Cosmos的hal层。

因为内存还和硬件平台相关,所以我们要在cosmos/hal/x86/⽬录下建⽴⼀个memmgrinit.c⽂件,在

这个⽂件中写⼊⼀个Cosmos内存管理器初始化的⼤总管⸺init_memmgr函数,并在init_halmm函数

中调⽤它,代码如下所⽰。

//cosmos/hal/x86/halmm.c中

//hal层的内存

文档评论(0)

1亿VIP精品文档

相关文档