一段内核代码,不理解.

rtm 2003-10-20 09:27:01
2.2.25内核linux\mm\page_alloc.c中的free_area_init函数:
有这样一段:

for (j = 0; j < NR_MEM_TYPES; j++) {
mask = PAGE_MASK;
for (i = 0 ; i < NR_MEM_LISTS ; i++) {
unsigned long bitmap_size;
init_mem_queue(free_area[j]+i);
mask += mask;
end_mem = (end_mem + ~mask) & mask;
bitmap_size = (end_mem - PAGE_OFFSET) >> (PAGE_SHIFT + i);
bitmap_size = (bitmap_size + 7) >> 3;
bitmap_size = LONG_ALIGN(bitmap_size);
free_area[j][i].map = (unsigned int *) start_mem;
memset((void *) start_mem, 0, bitmap_size);
start_mem += bitmap_size;
}
请教读过2.2版本的朋友,这段是想完成什么动作?
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liupengfei81 2003-10-21
  • 打赏
  • 举报
回复
是不是用位图法对内存进行管理
t0mychen 2003-10-20
  • 打赏
  • 举报
回复
建议看《读核日记》跟《内核注释》这两本书。
xfocus.net的论坛中,有人发了:)前天当完,没时间看ing:)不过上面大部分的东西已经做了注释。
其实看代码重要于理解思路,知道内核干什么,如果是研究内核心那另当别论,否则,没有必要去解读每一个版本内核,时间跟精力都跟不上。拙见而已,仅供参才:)
CoolQ 2003-10-20
  • 打赏
  • 举报
回复
还是看2.4版的源代码吧,2.2和2.4之间有很大的差异,尤其是在MM方面,现在研究2.2已经没有什么太大的意义了
rtm 2003-10-20
  • 打赏
  • 举报
回复
需要结合上下文判断,熟悉老版本内核管理器的朋友请发表见解.

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧