|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;
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命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。 |
|