搬运工

导航

2011年11月3日 #

内核总结之内存管理api (转)

摘要: 1. kmalloc(),主要用于字节大小的内存分配,物理地址连续,从按大小组冲的缓冲数组里分配数据,也是通过slab分配2. vmalloc(),仅仅在地址空间连续,物理空间的连续性不做保证。其分配的过程需要进行页表的修复。因为硬件设备并不通过MMU,也谈不少用空空间地址的概念,所以需要物理空间连续的内存。而对纯软件部分来说,vmalloc()亦可,但vmalloc需要额外的页表开销,会引起TLB 抖动,所以一般用kmalloc. vmalloc仅在需要大块内存时才需要,如加载模块.3. get_free_pages(),page一级的内存分配,采用伙伴算法4. kmem_cache_cre 阅读全文

posted @ 2011-11-03 19:28 hackergodness 阅读(196) 评论(0) 推荐(0) 编辑

linux启动过程详解(转)

摘要: 转自http://linux.chinaitlab.com/administer/827442.html这几天看了很多文档,算是对linux的启动过程有了比较细致的了解. 网上有很多文章谈到这方面的内容,但总觉得没有一篇完全的解析linux启动的细节,下面是我小弟在学习的过程中总结出来的一些东东.这个是完整的linux启动过程,不涉及内核,但是我觉得比较详细哦. (由于本人比较懒,这一段是从网上抄的) 机器加电启动后,BIOS开始检测系统参数,如内存的大小,日期和时间,磁盘设备以及这些磁盘设备用来引导的顺序,通常情况下,BIOS都是被 配置成首先检查软驱或者光驱(或两者都检查),然后再尝... 阅读全文

posted @ 2011-11-03 19:10 hackergodness 阅读(370) 评论(0) 推荐(0) 编辑

Linux中 diff与patch的深入分析(转)

摘要: 本文转自http://linux.chinaitlab.com/c/805820.html1) diff的传统格式输出. ############################################ cat before.txt 输出: This is a line to be deleted This is a line that will be changed This is a line that will be unchanged cat after.txt 输出: This is a line that has been changed This is... 阅读全文

posted @ 2011-11-03 18:49 hackergodness 阅读(302) 评论(0) 推荐(0) 编辑