Board logo

标题: 本大虾免费解答内核原理问题 [打印本页]

作者: unix-linux    时间: 2011-4-30 09:47     标题: 本大虾免费解答内核原理问题

本大虾免费解答内核原理问题(很具体的代码细节问题本座客不会)


内核版也太冷清,简直是万年一贴啊,所以俺要水淹内核版!

[ 本帖最后由 unix-linux 于 2011-4-30 09:51 编辑 ]
作者: akd    时间: 2011-5-2 21:46

请教linux内存管理问题.谢谢
一, 书上说vmalloc()在3G+896M以上线性地址空间分配连续虚拟内存,3G到3G+896M线性地址被永久固定映射到了0--896M物理地址.

问题:如果计算机的物理内存小于896M,比如512M,那么vmalloc()是不是就没有用处了?


二,ULK(understanding the linux kernel)书中说:
.从0到3G的线性地址空间,无论用户态还是内核态都可以访问寻址.

.从3G到4G的线性地址空间,只有内核态可以访问寻址.

问题:既然内核态可以访问0到4G的所有线性地址,那么所谓的大于896M的高端物理内存,内核不就可以通过0到3G的线性地址来映射访问吗?
作者: unix-linux    时间: 2011-5-5 21:47

不算最终的解答,探讨

1 3G到3G+896M线性地址被永久固定映射到了0--896M,并不表明这0--896M都会被内核所用,其中部分内存是动态的,例如内存中的buffer等,不用的话进程也可以使用,或者对应的物理内存根本就没有
2 32位内核是可以且只可以访问4G的虚拟内存和物理内存的,内核中128M的虚存空洞是为了访问4G以外的内存,并非网上所传的896M/1G以上的内存。比如访问PAE中的4G到64G内存,比如访问非当前进程的内存空间。当然64位内核是不存在这个问题的
作者: muwanqing    时间: 2011-6-5 12:22

什么情况
作者: 兽医博士    时间: 2011-7-28 10:00

楼主是色狼....楼上mm小心
不过看得出楼主还是挺有技术的
作者: 兽医博士    时间: 2011-7-28 10:01

楼主能推荐一本内核的书吗?
作者: 兽医博士    时间: 2011-7-28 10:01

浅显入门的就好,我是新人
作者: 兽医博士    时间: 2011-7-28 10:02

太难的看不懂
作者: muwanqing    时间: 2011-7-28 23:46

我以前买过一本  linux0.1注解什么的   结果也没看  其实是看不懂     扔鸟了
作者: gotounix    时间: 2011-9-16 09:05

正在学习驱动……努力啊!
作者: unix-linux    时间: 2011-10-30 08:59

不要只看书和代码,要自己想,自己研究和分析
作者: sejishikong    时间: 2011-11-3 12:27

内核研究这方面的确有点儿太深了。
作者: unix-linux    时间: 2011-11-4 20:52

这玩意耗很多脑细胞的,真想把它变成自己大脑里的东西,不是仅仅看看书就可以的

不过话说回来,难得挣到钱,至少不能直接挣到钱
作者: zz_6_3    时间: 2012-6-17 21:57

LZ研究得挺深入的啊

不知道有没有什么工具可以看内核代码的呢。有些标号和变量好难找啊
不知道SourceInsight是不是可以呢,虽然这工具还没用过




欢迎光临 中国Linux公社论坛 (http://forum.linuxfans.org/) Powered by Discuz! 6.1.0F