逍遥一派 发表于 2015-1-16 15:13:38

带来一篇Linux体系下内存请求使用的办法道理总结

对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;
1.地点空间的办理
物理地点都是有内核办理的,node-->zone-->mem_map-->page,一切的物理页面都在mem_map数组中的页帧对应,然后分歧的page有分为DMA,normal,highmem三个zone。
内核线性地点空间,实践上只是低端内存才有线性地点,0---896MB部分。
内核假造地点,低端内存的假造地点与线性地点是一样的。高端内存只要在映照了今后才有假造地点
用户空间地点,tast_struct--->mmap-->mm_struct--->vm_area_struct
2.内存的请求或利用
物理内存的分派,在内核中终极都要挪用__alloc_pages().它是最中心的分派函数,请求巨细最年夜不凌驾2的MAX_ORDER次幂,在如今仿佛最年夜界说为4MB。
线性地点,kmalloc和get_free_pages,线性地点,对应的物理内存就是低端内存,kmalloc是基于slab的分派手艺,最年夜不克不及凌驾128KB。
假造地点,vmalloc请求,他只是在内核中创建相似与用户空间的vm_area的一个假造内存空间到vmlist中,终极的物理内存分派仍是基于缺页的。
用户空间的假造内存,malloc之类的,终极在内核中都是do_map()和do_brk()。实践上也只是创建了一块假造空间,终极的物理内存仍是在缺页非常时分派的。
3.内存的互换成绩
在page布局和用户层的vm_area_struct布局中,都包括locked和reserved标记。经由过程符合的路子设置这些标记,能够是页面锁存在物理内存中,不被互换进来。
4.设备内存能够经由过程ioremap映照到内核假造地点空间,也能够经由过程mmap办法映照到用户空间

</p>
功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。

再现理想 发表于 2015-1-18 15:44:10

用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。

第二个灵魂 发表于 2015-1-23 10:34:26

Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。

若天明 发表于 2015-1-31 15:51:17

目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。

山那边是海 发表于 2015-2-6 21:12:07

这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?

变相怪杰 发表于 2015-2-18 19:48:38

感谢老师和同学们在学习上对我的帮助。

小魔女 发表于 2015-3-6 10:04:27

我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。

若相依 发表于 2015-3-13 00:09:44

在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。

透明 发表于 2015-3-20 07:45:56

Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
页: [1]
查看完整版本: 带来一篇Linux体系下内存请求使用的办法道理总结