Linux000深度剖析

Linux000深度剖析

ID:44290450

大?。?18.89 KB

頁(yè)數(shù):25頁(yè)

時(shí)間:2019-10-20

Linux000深度剖析_第1頁(yè)
Linux000深度剖析_第2頁(yè)
Linux000深度剖析_第3頁(yè)
Linux000深度剖析_第4頁(yè)
Linux000深度剖析_第5頁(yè)
資源描述:

《Linux000深度剖析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、LinuxO.OO深度剖析2010-08-0714:43361人閱讀評(píng)論⑴收裁舉報(bào)最近在學(xué)習(xí)Linux內(nèi)核,這0.00據(jù)說(shuō)當(dāng)年便還是學(xué)生的linus異簾興奮,只是滿屏幕的AABBBBAAA而已。本人只是寫下學(xué)習(xí)筆記,以備日后復(fù)習(xí)之用。1?01Iboot.s程帀Z?3?02!甘先利用BIOS中斷把內(nèi)核代碼(head代碼〉加桟到內(nèi)存8x10000處.熱后移動(dòng)到內(nèi)存0處.4?5?93!最后進(jìn)入保護(hù)樓式.并跳轉(zhuǎn)到內(nèi)0(head代碼〉開(kāi)始處繼續(xù)運(yùn)行.6?7?04BOOTSEG=0X07C01引導(dǎo)扇區(qū)(本程殍)被BIOS加敬御內(nèi)((0X7C00處,8?9?05SYSSEG=0x1000!內(nèi)

2、核(head)先加裁到0x10000處.燃后移動(dòng)到0滅0處?10.11?06SYSLEN=171內(nèi)孩占用的域大您盤扇區(qū)數(shù)。12.13?07entrystartId.15.08start:16.丄7?09jmpigo,ffBOOTSEG1段何跳轉(zhuǎn)至0X7“:gO處。當(dāng)本程序刖運(yùn)行時(shí)所仔段奇“器值18.19?10go:movax^cs!均為0?該跳轉(zhuǎn)語(yǔ)句會(huì)把CS寄存髀加戟為斂7c0《原為e〉?20?21?11movds4axI讓DS和SS榔指向0x7“段。22?23.12movss^ax2d.25?13movSpj#0x400!設(shè)咒臨時(shí)棧折針。其值需大于程序末劑并有一定空間即可,2

3、6?27?1428.29?15!加載內(nèi)核代碼到內(nèi)存exieeee開(kāi)jft處.30.31?16load_system:32.33.17movdx.ffexeeoe1利用Bios中Wrint0x13功能2從啟動(dòng)盤讀取had代碼.181922252728303235373839movmovmovxormovintdie:jmpCX,#0x0002ax,#SYSSEGes^axbx,bxIDH-僵頭號(hào):DL?腿動(dòng)589;CH?10位凰道號(hào)低8位;!CL?位7.6是磯迫弓高2位.位5?0起始園區(qū)號(hào)(從1計(jì))?!ES:BX-讀入級(jí)沖區(qū)位3E(0x1000:0x0000)°IAH?迷矽區(qū)功能

4、號(hào):AL?需讀的扇區(qū)數(shù)<17)?ax,#ex200*SYSLEN0x13okloaddieI若沒(méi)叼發(fā)主錯(cuò)課則跳轉(zhuǎn)繼續(xù)運(yùn)行,否則死循饑!把內(nèi)垓代碼移動(dòng)到內(nèi)存0JFWi處.共移動(dòng)8KB(內(nèi)核長(zhǎng)度不趙過(guò)8KBI?okload:climovmovxormovHOVsubsubrepax,ffSYSSEGaxaxaxCX,#0x1000si,sidi,dimovwI關(guān)中斷。!移動(dòng)開(kāi)始位XDSrSI-0x1000:8:II的位WES:DI=0:0.I設(shè)置人移動(dòng)4K次,芻次移動(dòng)一個(gè)字(word)。i執(zhí)ff?k移動(dòng)描令.!加找IDT利GDT丿人地址寄存器IDTR和GOTR,movax,ffBO

5、OTSEG40movds,ax!讓DS竝新指向0x7“段。41lidtidt_481加棧IDTR.6字節(jié)操作敵:2字節(jié)衣長(zhǎng)丿支,4字節(jié)線性基地址&42lgdtgdt>8!加載GDTR?6字節(jié)按作數(shù):2字節(jié)表長(zhǎng)度,4字節(jié)線性基地址4344!設(shè)置控制寄存器CR0(即機(jī)器狀態(tài)字〉.進(jìn)入保護(hù)棋式-段選擇符值8對(duì)應(yīng)GDT衣中第2個(gè)段描述符。45movax^#0xG001I在CR0中設(shè)童保護(hù)槐式標(biāo)志PE(位0),46lmswax!然后跳轉(zhuǎn)至段選樣符值指定的段中.値移0處。47加pi0,8!注愆此時(shí)段值已是段選擇符.該以的線性基壇址是氏4849!下面是全局描述符農(nóng)GDT的內(nèi)容。其中包含3個(gè)段

6、描述符。弟1個(gè)不用,另2個(gè)足代碼和數(shù)撫段描述符。50gdt:?word0>0>0>0!段描述符0?不川.每個(gè)描述符項(xiàng)占8字節(jié).5152?word0X07FF!段描述符1?8Mb?段限長(zhǎng)ffi-2047(2048*4096?8M6)?53?wor*ddxdeee!段叢地址=0xeeeee,54.word0X9A001繪代碼段?可讀/執(zhí)行.55?wor*d0X00C0!段屈性顆粒用>4KB?80386,5657?word0X07FF!段描述符2。8Mb?段限長(zhǎng)值-2047(2048*4096?8MB)。58?wor*ddxdeee!段it地址=0x00000.59.word0X92

7、001繪數(shù)據(jù)段.可讀寫。60?wor*d0X00C0!段屈性顆粒度?4KB?80386.61!下面分別足LIDT和LGDT指令的6宇節(jié)殊作數(shù)。63?word0,0!IDT表的線性壟地址也是鼻64gdt_48:?word0x7ff!GOT表長(zhǎng)度是2KB?可容納256個(gè)描述符項(xiàng).65?wor*d0x7cee+gdt,e!GDT農(nóng)的線性叢地址在0x7c0段的俯移gdt處。66.org51067?wor*d0xAA55!引導(dǎo)扇區(qū)有效標(biāo)志.必須處于引導(dǎo)扇區(qū)址后2字節(jié)處.!多任務(wù)內(nèi)核程用head.5!在

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

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

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