linux0.00深度剖析

linux0.00深度剖析

ID:6296973

大?。?49.50 KB

頁數(shù):18頁

時間:2018-01-09

linux0.00深度剖析_第1頁
linux0.00深度剖析_第2頁
linux0.00深度剖析_第3頁
linux0.00深度剖析_第4頁
linux0.00深度剖析_第5頁
資源描述:

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

1、Linux0.00深度剖析2010-08-0714:43?361人閱讀?評論(1)?收藏?舉報最近在學(xué)習(xí)Linux內(nèi)核,這0.00據(jù)說當(dāng)年使還是學(xué)生的linus異常興奮,只是滿屏幕的AABBBBAAA而已。本人只是寫下學(xué)習(xí)筆記,以備日后復(fù)習(xí)之用。:[c-sharp]?viewplaincopy1.01?!?boot.s?程序??2.??3.02?!?首先利用BIOS中斷把內(nèi)核代碼(head代碼)加載到內(nèi)存0x10000處,然后移動到內(nèi)存0處。??4.??5.03?!?最后進入保護模式,并跳轉(zhuǎn)到內(nèi)存0(head代碼)開始處繼續(xù)運行。??6.??7.04?BOOTSEG?=?0x07c0?????

2、???????????????????!?引導(dǎo)扇區(qū)(本程序)被BIOS加載到內(nèi)存0x7c00處。??8.??9.05?SYSSEG??=?0x1000???????????????????!?內(nèi)核(head)先加載到0x10000處,然后移動到0x0處。??10.??11.06?SYSLEN??=?17????????????????????????!?內(nèi)核占用的最大磁盤扇區(qū)數(shù)。??12.??13.07?entry?start??14.??15.08?start:??16.??17.09?????????jmpi????go,#BOOTSEG?????????!?段間跳轉(zhuǎn)至0x7c0:go處。

3、當(dāng)本程序剛運行時所有段寄存器值??18.??19.10?go:?????mov?????ax,cs???????????????!?均為0。該跳轉(zhuǎn)語句會把CS寄存器加載為0x7c0(原為0)。??20.??21.11?????????mov?????ds,ax????????????????!?讓DS和SS都指向0x7c0段。??22.??23.12?????????mov?????ss,ax??24.??25.13?????????mov?????sp,#0x400???????????!?設(shè)置臨時棧指針。其值需大于程序末端并有一定空間即可。??26.??27.14???28.??29.15

4、?!?加載內(nèi)核代碼到內(nèi)存0x10000開始處。??30.??31.16?load_system:??1.??2.17?????????mov?????dx,#0x0000??????????!?利用BIOS中斷int?0x13功能2從啟動盤讀取head代碼。??3.??4.18?????????mov?????cx,#0x0002??????????!?DH?-?磁頭號;DL?-?驅(qū)動器號;CH?-?10位磁道號低8位;??5.??6.19?????????mov?????ax,#SYSSEG??????????!?CL?-?位7、6是磁道號高2位,位5~0起始扇區(qū)號(從1計)。??7.??8

5、.20?????????mov?????es,ax????????????????!?ES:BX?-?讀入緩沖區(qū)位置(0x1000:0x0000)。??9.??10.21?????????xor?????bx,bx???????????!?AH?-?讀扇區(qū)功能號;AL?-?需讀的扇區(qū)數(shù)(17)。??11.??12.22?????????mov?????ax,#0x200+SYSLEN??13.??14.23?????????int?????0x13??15.??16.24?????????jnc?????ok_load?????????????!?若沒有發(fā)生錯誤則跳轉(zhuǎn)繼續(xù)運行,否則死循環(huán)。??

6、17.??18.25?die:????jmp?????die??19.??20.26???21.??22.27?!?把內(nèi)核代碼移動到內(nèi)存0開始處。共移動8KB(內(nèi)核長度不超過8KB)。??23.??24.28?ok_load:??25.??26.29?????????cli???????????????????????????!?關(guān)中斷。??27.??28.30?????????mov?????ax,?#SYSSEG?????????!?移動開始位置DS:SI?=?0x1000:0;目的位置ES:DI=0:0。??29.??30.31?????????mov?????ds,?ax??31.??

7、32.32?????????xor?????ax,?ax??33.??34.33?????????mov?????es,?ax??35.??36.34?????????mov?????cx,?#0x1000?????????!?設(shè)置共移動4K次,每次移動一個字(word)。??37.??38.35?????????sub?????si,si??39.??40.36?????????sub?????

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

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

當(dāng)前文檔最多預(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)系客服處理。