Linux.ChinaUnix.net
ChinaUnix | Linux首页 | 新闻 | 博客 | 文章 | 专栏 | 新手 | 方案 | 图书 | 下载 | 人才 | 手册 | wiki | 搜索     
Linux论坛
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

精华帖子 Linux内存:内存管理的实质
首页 » CU论坛 » Linux » 汇总贴列表 » 内核源码 »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
  本主题由 albcamus 于 2008-5-23 17:16 加入精华 
duanius
风云使者



UID:471810
注册:2006-10-1
最后登录: 2008-09-06
帖子:490
精华:1

可用积分:456 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...保密...

[资料] [站内短信] [Blog]


顶部
11楼 发表于 2008-5-20 12:53 
惭愧 有lz一半认真和毅力就好了
收藏



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
hlidea   帅哥
圣骑士




UID:332555
注册:2005-11-5
最后登录: 2008-09-04
帖子:82
精华:0

可用积分:94 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
12楼 发表于 2008-5-20 13:29 
frank_seng真是超级牛人,linuxforum上这个id也是你吧,还有个stephenseng的博客不会也是你的吧?
最喜欢这种站在一定高度概括全局的文章,要看代码的话,直接上情景分析好了
那三个zone没提到?不会2.6去掉了吧



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
zx_wing   帅哥 (骑着猪的青蛙)
大天使
学徒



UID:499746
注册:2006-12-4
最后登录: 2008-09-06
帖子:1940
精华:3

可用积分:1624 (家境小康)
信誉积分:100
专家积分:11 (本版:1)
空间积分:0
推广积分:0

来自:成都
状态:...保密...

[资料] [站内短信] [Blog]


顶部
13楼 发表于 2008-5-20 14:45 


QUOTE:
原帖由 hlidea 于 2008-5-20 13:29 发表
frank_seng真是超级牛人,linuxforum上这个id也是你吧,还有个stephenseng的博客不会也是你的吧?
最喜欢这种站在一定高度概括全局的文章,要看代码的话,直接上情景分析好了
那三个zone没提到?不会2.6去掉了吧

《情景分析》?有这么好吗,无数人奉为圣经。可能因为我比较反感源码注释的书。
个人认为除了ULK,其它讲内核的书都不如何。ULK就是概括性最好的书籍。
可惜的是,ULK站的高度太高,很难顾全很多地方,并且硬件部分讲的太少了。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________


C调 ---- C语言
都是最喜欢的
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
kewenliang   帅哥
精灵王



UID:693307
注册:2008-4-17
最后登录: 2008-09-06
帖子:274
精华:0

可用积分:483 (白手起家)
信誉积分:75
专家积分:0 (本版:0)
空间积分:882
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
14楼 发表于 2008-5-20 17:08 
确实不错  多谢楼主与大家分享



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
JoveLuo   帅哥 ( joveluo)
新手




UID:707683
注册:2008-5-20
最后登录: 2008-05-20
帖子:1
精华:0

可用积分:1 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

来自:湖南
状态:...离线...

[资料] [站内短信] [Blog]


顶部
15楼 发表于 2008-5-20 20:08 
前辈们的学习精神,和求知的毅力,让后辈感触幽深呀!
   新来的LINUX成员,在前辈们问好了。。。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
W.Z.T
精灵王



UID:365382
注册:2006-1-19
最后登录: 2008-09-03
帖子:324
精华:1

可用积分:326 (白手起家)
信誉积分:105
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
16楼 发表于 2008-5-20 21:36 
1. 内核初始化:

    * 内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系;

这个len好象不是指的物理内存大小吧



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

没学会写程序之前,我一天只吃两顿饭;现在我一天吃四顿了
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
jgq516   帅哥
侠客




UID:307408
注册:2005-8-28
最后登录: 2008-09-06
帖子:15
精华:0

可用积分:22 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
17楼 发表于 2008-5-20 22:05 
"内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系."
用户空间的虚拟地址(0——3G)和物理内存的对应关系是怎样的?内核空间和用户空间的虚拟地址在物理内存中分别映射到什么空间?最近看MMU,有点不清楚,请指点。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
frank_seng
精灵



UID:588431
注册:2007-7-17
最后登录: 2008-08-15
帖子:208
精华:2

可用积分:226 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
18楼 发表于 2008-5-20 22:41 


QUOTE:
原帖由 hlidea 于 2008-5-20 13:29 发表
frank_seng真是超级牛人,linuxforum上这个id也是你吧,还有个stephenseng的博客不会也是你的吧?
最喜欢这种站在一定高度概括全局的文章,要看代码的话,直接上情景分析好了
那三个zone没提到?不会2.6去掉了吧

hlidea兄猜的都是对的,火眼金星啊。另外zone还在,这里为了问题简单化把chap/zone/slab等统统忽略不提了。承蒙hlidea夸奖!

[ 本帖最后由 frank_seng 于 2008-5-20 22:48 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
frank_seng
精灵



UID:588431
注册:2007-7-17
最后登录: 2008-08-15
帖子:208
精华:2

可用积分:226 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
19楼 发表于 2008-5-20 22:44 


QUOTE:
原帖由 W.Z.T 于 2008-5-20 21:36 发表
1. 内核初始化:

    * 内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系;

这个len好象不是指的物理内存大小吧

该len为BIOS检测出的所有内存大小的总和,包括挂在总线上的RAM/ROM等等。BIOS检测后会以e820表项的形式存储起来,Linux内核启动后会读取这些e820表项的内容,得出系统中存在的RAM/ROM的分布及其总和,因此这里的物理内存不能仅仅理解成我们通常意义上的内存条RAM。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
frank_seng
精灵



UID:588431
注册:2007-7-17
最后登录: 2008-08-15
帖子:208
精华:2

可用积分:226 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[资料] [站内短信] [Blog]


顶部
20楼 发表于 2008-5-20 22:46 


QUOTE:
原帖由 jgq516 于 2008-5-20 22:05 发表
"内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系."
用户空间的虚拟地址(0——3G)和物理内存的对应关系是怎样的? ...

用户空间的虚拟地址是在使用时圈定的,并不是线性映射关系,请看上文中的5和6:
......
5. 用户进程申请内存vaddr = malloc(size):

    * 内存管理模块从用户进程内存空间(0--3G)中找到一块还没使用的空间vm_area_struct(start--end);
    * 随后将其插入到task->mm->mmap链表中;

6. 用户进程写入vaddr(0-3G),例如执行指令mov(eax, vaddr):

    * CPU获得vaddr这个虚地址,该虚地址应该已经由glibc库设置好了,一定在3G一下的某个区域,根据CR3寄存器指向的current->pgd查当前进程的页目录页表数据库,发现该vaddr对应的页目录表项为0,故产生异常;
    * 在异常处理中,发现该vaddr对应的vm_area_struct已经存在,为vaddr对应的页目录表项分配一个页表;
    * 随后从free_list找到一个page,将该page对应的物理页面物理首地址赋给vaddr对应的页表表项,很明显,此时的vaddr和paddr不是线性对应关系了;
    * 将page从free_list中脱离;
    * 异常处理返回;
    * CPU重新执行刚刚发生异常的指令mov(eax, vaddr);
    * CPU获得vaddr这个虚地址,根据CR3寄存器指向的current->pgd,利用建立好的页目录页表数据库,找到其对应的物理内存地址;
    * 将eax的内容写入vaddr对应的物理内存地址内;  
......



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » CU论坛 » Linux » 汇总贴列表 » 内核源码 »

 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - Linux时代 - Archiver - WAP - TOP

Processed in 0.043618 second(s), 6 queries , Gzip enabled