一段内核代码,不理解.

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版本的朋友,这段是想完成什么动作?
...全文
52 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
  • 打赏
  • 举报
回复
需要结合上下文判断,熟悉老版本内核管理器的朋友请发表见解.
Linux内核一直是学习的难点:将近3000万行代码,5万多个源文件,代码庞大繁杂、代码很难看懂。《Linux内核编程》将突破以往传统的学习方式,采取更有效和科学的学习方法,多角度地对内核进行多层次分析,不局限于形式,不拘泥细节,目的只有一个:更轻松、更高效地去理解内核、学习内核。为了更好地让学员掌握内核编程技能,更好地理解内核,本课程将采用并不局限于以下学习方法进行课程的录制:降维分析,化简为繁,将复杂的系统简单化用软件工程的方法分析内核:软件分层、模块化分解、框架迭代多角度立体分析Linux内核,目的只有一个:更好地理解内核利用Linux内核中的面向对象编程思想去分析复杂的子系统、子系统交互利用多任务编程的思想去分析Linux内核本套课程预计分为20个左右的小模块,每个模块一个专题,每个专题会陆续发布。拟录制的模块包括但不限于:模块机制、内核裁剪与配置、内核编译与启动、系统调用、中断、文件系统、调度、内存管理、内核同步、设备模型、字符驱动、块驱动、定时器、input、platform设备驱动、device tree、proc、sysfs、I/O...  本课程是《Linux内核编程》的入门篇,主要给大家介绍一下Linux内核开发、Linux驱动开发的就业行情、行业生态、需要掌握哪些技能、Linux内核的学习方法、如何搭建Linux内核的学习开发环境。 

23,110

社区成员

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

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