免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chenrvmldd

也谈谈这四年来对内核的研究 [复制链接]

论坛徽章:
0
发表于 2012-04-07 12:08 |显示全部楼层
有个小问题,如果我的内存512MB,那一定是全部直接映射到3G~(3G+896MB)的线性地址空间,那如果vmalloc分配内存就要重新建立页表,会不会出现多个线性地址对应同一块物理内存的情况,如果这样那不就出错了吗?
还有用户空间程序也要分配内存,会不会与内核使用同一块物理内存。记得有个数组叫mem_map吧,描述了所有的物理页,是不是和这个有关系。初学者,比较迷茫,可能比较弱。

论坛徽章:
0
发表于 2012-04-07 17:29 |显示全部楼层
LZ是《程序员的自我修养》一书的作者吗?挺喜欢这本书的。

这场讨论太难得,自己虽然看过ULK,但看到这些问题,才知道有很多细节不清楚。
个人觉得要是能明白linux kernel内核实现中个部分的设计和实现思想,再去读代码,才能看透它。
而实际情况往往需要我们自己看代码,自己琢磨他的思想,特费劲。
在中国, 能将自己看代码得到的思想,传播出去,是很是难人可贵。
我觉得在中国应该组织一些人把linux各个部分的设计和实现思想总结出来。
让将来的中国人,将时间和经历用在优化linux和开发新内核技术上该是多么美好的事。。。。
站在巨人的肩膀上才能走的更远。。。

论坛徽章:
0
发表于 2012-04-08 09:00 |显示全部楼层
mark下,希望以后能有用到的一天

论坛徽章:
0
发表于 2012-04-08 09:01 |显示全部楼层
mark下,希望以后能有用到的一天

论坛徽章:
0
发表于 2012-04-12 08:53 |显示全部楼层
回复 181# 源方

有个小问题,如果我的内存512MB,那一定是全部直接映射到3G~(3G+896MB)的线性地址空间,那如果vmalloc分配内存就要重新建立页表,会不会出现多个线性地址对应同一块物理内存的情况,如果这样那不就出错了吗?
还有用户空间程序也要分配内存,会不会与内核使用同一块物理内存。记得有个数组叫mem_map吧,描述了所有的物理页,是不是和这个有关系。初学者,比较迷茫,可能比较弱。

第一个问题:内存如果是512M的话,处理的方法就不是这样了,你去看一下源码,你会发现在内核初始化的时候,内核在建立内核页表的时候,会根据内存的大小去建立的,而不是做死的。
第二个问题:vmalloc分配的线性地址空间范围是固定的,不会出现多个线性地址对应同一块物理地址的现象,你要明白为什么会出现使用vmalloc,vmalloc和kmalloc之间的区别,内核将线性地址映射成物理地址的时候,不会出现多个现象地址对应同一块物理地址的现象的,除非存在一种情况,那是共享内存的时候,
第三个问题:不知道怎么回答你了,建议你先看一下ULK这本书,估计看完关于内存这几章的内容,你就会懂了
   

论坛徽章:
0
发表于 2012-04-12 08:55 |显示全部楼层
回复 182# jzwxh77


    呵呵,我没有写过书,虽然曾经有人邀请过,自我感觉还是水平没有到位

论坛徽章:
0
发表于 2012-04-12 22:26 |显示全部楼层
我一直认为小与896MB的内存是直接映射的,也就是直接映射到3G~(3G+896MB)的线性地址空间,大于896MB的内存才会动态的映射,看来我理解错了

论坛徽章:
0
发表于 2012-04-14 00:15 |显示全部楼层
上次看这个贴我还没有看SLAB,这次已经看的差不多了,SLAB的面向对象的思想真好。

论坛徽章:
0
发表于 2012-04-30 16:09 |显示全部楼层
学习了

论坛徽章:
0
发表于 2012-05-07 20:54 |显示全部楼层
这个贴看到14页了,感觉真不错,楼主写的太好了。
国内能有这样具有分享精神的大牛,实属不易。顶!
另外,既然大家都喜欢研究linux内核,我想问下大家是不是都支持开源!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP