Linux内核分析.ppt

Linux内核分析.ppt

ID:49378798

大小:342.00 KB

页数:79页

时间:2020-02-04

Linux内核分析.ppt_第1页
Linux内核分析.ppt_第2页
Linux内核分析.ppt_第3页
Linux内核分析.ppt_第4页
Linux内核分析.ppt_第5页
资源描述:

《Linux内核分析.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux内核分析Linux引导和初始化Linux引导简述Linux初始化(head.S)0~0xfff0x1000~0x9ffff0xa0000~0xbffff0xc0000~0xc7fff0xf0000~0xfffff0xc8000~0xdffffLinux引导和初始化0~0x1000:BIOS0xa0000~0xbffff:VideoRAM0xc0000~0xc7fff:VideoROM0xc8000~0xdffff:ExtensionROM0xf0000~0xfffff:SystemROM内核映像驻存在:0x100000~Linux引

2、导和初始化段寄存器初始化CS,DS,ES,SS保护模式初始化EnableMMU映射0x0~0x8000000xc0000000~0xc0800000.根据ABI386标准,系统空间从0xc0000000开始。内存管理Linux虚拟空间结构0xc0000000~0xf7ffffff(系统空间)用户空间(低3G空间)用户空间(低3G空间)用户空间(低3G空间)内存管理0xc0000000~0xf7ffffff:系统空间,896M0xf7ffffff~0xffffffff:用于vmalloc,128M内存管理系统空间初始化E820中断获取RAM资

3、源 系统初始化物理空间0~896M构造内存页面位图,用于初始阶段的内存分配。内存管理MMU 0x0~0x380000000xc0000000~0xf8000000页面大小=4K 32位地址:22bit~31bit:页目录索引12bit~21bit:页面索引0bit~11bit:页内位移内存管理MMU01….1023….….01…..102301….1023内存管理分配页结构 系统中每个物理页面相应有一个物理页结构。 每个页结构对应物理的一个页面。内存管理Zone管理 系统空间被分为3个zone. DMA:0~16M(0xc0000000~0

4、xc0100000) NORMAL:16M~896M(0xc0100000~0xf8000000) HIGHMEMORY:896M以上内存管理Zone页面管理zone中的页面是按着buddy算法管理。 什么是buddy算法?Buddy算法管理的页面: 从1个至512个连续页面。内存管理系统空间DMA区(按buddy算法管理1~512个连续页面)NORMAL区(按buddy算法管理1~512个连续页面)HIGHMEM区(按buddy算法管理1~512个连续页面)内存管理Slab高速缓存 什么是slab? Slab和高速缓存关系。 如何利用高速缓

5、存。(染色算法) 什么是染色算法。内存管理通用slab 32字节~128k字节专用slab procslabcache.Vfsslabcache. ……内存管理系统内存管理结构DMAZONEBuddy结构slabNORMALZONEBuddy结构slabHIGHMEMZONEBuddy结构内存管理建立私有slabcachekmem_cache_create功能:建立slabcache参数: name:slabcache名字。Size:slab对象大小,对象大小小于32个页面(128k)Offset:页面偏移量。Flags:对齐属性Ctor:对

6、象创建函数Dtor:对象释放函数,为空 返回值:slabcache管理区,即kmem_cache_s结构。内存管理从私有slab管理区中分配slab对象kmem_cache_alloc功能:从slab中分配一个对象 参数:cachep:slabcache管理结构,即mem_cache_s. flag:建立slabflag返回值:slab中的对象。内存管理释放私有slab对象__kmem_cache_free功能:释放slab队列中对象。 参数:cachep:slabcache管理区objp:释放对象。内存管理从通用slabcache中分配对象

7、Kmalloc功能:从通用SLAB队列中分配空间 参数:size:空间大小(32~128K)flag:分配flag,如果为DMA,从通用SLAB的DMA队列中分配。内存管理释放通用slabcache对象Kfree功能:释放通用slab对象 参数:objp:释放的对象。内存管理从buddy管理区中分配页面__get_free_pages功能:分配页面 参数:gfp_mask:分配策略,即从DMA, NORMAL,或HIGHzone分配页面。Order:分配页面的大小,2的幂,小于10。内存管理释放分配的页面__free_pages功能:释放页面

8、 参数:page:释放的页面。Order:页面大小,2的幂。内存管理虚拟地址转换为物理地址__pa(addr)addr–0xc0000000物理地址转换为虚拟地址_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。