Linux內(nèi)核分析.ppt

Linux內(nèi)核分析.ppt

ID:49378798

大小:342.00 KB

頁數(shù):79頁

時間:2020-02-04

Linux內(nèi)核分析.ppt_第1頁
Linux內(nèi)核分析.ppt_第2頁
Linux內(nèi)核分析.ppt_第3頁
Linux內(nèi)核分析.ppt_第4頁
Linux內(nèi)核分析.ppt_第5頁
資源描述:

《Linux內(nèi)核分析.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、Linux內(nèi)核分析Linux引導(dǎo)和初始化Linux引導(dǎo)簡述Linux初始化(head.S)0~0xfff0x1000~0x9ffff0xa0000~0xbffff0xc0000~0xc7fff0xf0000~0xfffff0xc8000~0xdffffLinux引導(dǎo)和初始化0~0x1000:BIOS0xa0000~0xbffff:VideoRAM0xc0000~0xc7fff:VideoROM0xc8000~0xdffff:ExtensionROM0xf0000~0xfffff:SystemROM內(nèi)核映像駐存在:0x100000~Linux引

2、導(dǎo)和初始化段寄存器初始化CS,DS,ES,SS保護模式初始化EnableMMU映射0x0~0x800000?0xc0000000~0xc0800000.根據(jù)ABI386標準,系統(tǒng)空間從0xc0000000開始。內(nèi)存管理Linux虛擬空間結(jié)構(gòu)0xc0000000~0xf7ffffff(系統(tǒng)空間)用戶空間(低3G空間)用戶空間(低3G空間)用戶空間(低3G空間)內(nèi)存管理0xc0000000~0xf7ffffff:系統(tǒng)空間,896M0xf7ffffff~0xffffffff:用于vmalloc,128M內(nèi)存管理系統(tǒng)空間初始化E820中斷獲取RAM資

3、源 系統(tǒng)初始化物理空間0~896M構(gòu)造內(nèi)存頁面位圖,用于初始階段的內(nèi)存分配。內(nèi)存管理MMU 0x0~0x38000000?0xc0000000~0xf8000000頁面大?。?K 32位地址:22bit~31bit:頁目錄索引12bit~21bit:頁面索引0bit~11bit:頁內(nèi)位移內(nèi)存管理MMU01….1023….….01…..102301….1023內(nèi)存管理分配頁結(jié)構(gòu) 系統(tǒng)中每個物理頁面相應(yīng)有一個物理頁結(jié)構(gòu)。 每個頁結(jié)構(gòu)對應(yīng)物理的一個頁面。內(nèi)存管理Zone管理 系統(tǒng)空間被分為3個zone. DMA:0~16M(0xc0000000~0

4、xc0100000) NORMAL:16M~896M(0xc0100000~0xf8000000) HIGHMEMORY:896M以上內(nèi)存管理Zone頁面管理zone中的頁面是按著buddy算法管理。 什么是buddy算法?Buddy算法管理的頁面: 從1個至512個連續(xù)頁面。內(nèi)存管理系統(tǒng)空間DMA區(qū)(按buddy算法管理1~512個連續(xù)頁面)NORMAL區(qū)(按buddy算法管理1~512個連續(xù)頁面)HIGHMEM區(qū)(按buddy算法管理1~512個連續(xù)頁面)內(nèi)存管理Slab高速緩存 什么是slab? Slab和高速緩存關(guān)系。 如何利用高速緩

5、存。(染色算法) 什么是染色算法。內(nèi)存管理通用slab 32字節(jié)~128k字節(jié)專用slab procslabcache.Vfsslabcache. ……內(nèi)存管理系統(tǒng)內(nèi)存管理結(jié)構(gòu)DMAZONEBuddy結(jié)構(gòu)slabNORMALZONEBuddy結(jié)構(gòu)slabHIGHMEMZONEBuddy結(jié)構(gòu)內(nèi)存管理建立私有slabcachekmem_cache_create功能:建立slabcache參數(shù): name:slabcache名字。Size:slab對象大小,對象大小小于32個頁面(128k)Offset:頁面偏移量。Flags:對齊屬性Ctor:對

6、象創(chuàng)建函數(shù)Dtor:對象釋放函數(shù),為空 返回值:slabcache管理區(qū),即kmem_cache_s結(jié)構(gòu)。內(nèi)存管理從私有slab管理區(qū)中分配slab對象kmem_cache_alloc功能:從slab中分配一個對象 參數(shù):cachep:slabcache管理結(jié)構(gòu),即mem_cache_s. flag:建立slabflag返回值:slab中的對象。內(nèi)存管理釋放私有slab對象__kmem_cache_free功能:釋放slab隊列中對象。 參數(shù):cachep:slabcache管理區(qū)objp:釋放對象。內(nèi)存管理從通用slabcache中分配對象

7、Kmalloc功能:從通用SLAB隊列中分配空間 參數(shù):size:空間大小(32~128K)flag:分配flag,如果為DMA,從通用SLAB的DMA隊列中分配。內(nèi)存管理釋放通用slabcache對象Kfree功能:釋放通用slab對象 參數(shù):objp:釋放的對象。內(nèi)存管理從buddy管理區(qū)中分配頁面__get_free_pages功能:分配頁面 參數(shù):gfp_mask:分配策略,即從DMA, NORMAL,或HIGHzone分配頁面。Order:分配頁面的大小,2的冪,小于10。內(nèi)存管理釋放分配的頁面__free_pages功能:釋放頁面

8、 參數(shù):page:釋放的頁面。Order:頁面大小,2的冪。內(nèi)存管理虛擬地址轉(zhuǎn)換為物理地址__pa(addr)addr–0xc0000000物理地址轉(zhuǎn)換為虛擬地址_

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。