本大虾免费解答内核原理问题
本大虾免费解答内核原理问题(很具体的代码细节问题本座客不会)内核版也太冷清,简直是万年一贴啊,所以俺要水淹内核版!
[ 本帖最后由 unix-linux 于 2011-4-30 09:51 编辑 ] 请教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的线性地址来映射访问吗? 不算最终的解答,探讨
1 3G到3G+896M线性地址被永久固定映射到了0--896M,并不表明这0--896M都会被内核所用,其中部分内存是动态的,例如内存中的buffer等,不用的话进程也可以使用,或者对应的物理内存根本就没有
2 32位内核是可以且只可以访问4G的虚拟内存和物理内存的,内核中128M的虚存空洞是为了访问4G以外的内存,并非网上所传的896M/1G以上的内存。比如访问PAE中的4G到64G内存,比如访问非当前进程的内存空间。当然64位内核是不存在这个问题的 什么情况 楼主是色狼....楼上mm小心
不过看得出楼主还是挺有技术的 楼主能推荐一本内核的书吗? 浅显入门的就好,我是新人:oops: 太难的看不懂 我以前买过一本linux0.1注解什么的 结果也没看其实是看不懂 扔鸟了 正在学习驱动……努力啊! 不要只看书和代码,要自己想,自己研究和分析 内核研究这方面的确有点儿太深了。 这玩意耗很多脑细胞的,真想把它变成自己大脑里的东西,不是仅仅看看书就可以的
不过话说回来,难得挣到钱,至少不能直接挣到钱 LZ研究得挺深入的啊
不知道有没有什么工具可以看内核代码的呢。有些标号和变量好难找啊
不知道SourceInsight是不是可以呢,虽然这工具还没用过
页:
[1]