閱讀時(shí)間:2015年10月26日20:00/21:40
閱讀技巧:閱讀本書(shū)的目錄與序言,細(xì)讀引導(dǎo)程序部分,了解打開(kāi)個(gè)體文件仔細(xì)了解代碼的具體意思,并且在用讀書(shū)筆記重溫一遍
讀書(shū)筆記:
? ? ? ? ? ? ? ? ? ? ? ? ? linunx文件
setup 程序的作用主要是利用 ROM BIOS 中斷讀取機(jī)器系統(tǒng)數(shù)據(jù),并將這些數(shù)據(jù)保存到 0x90000 開(kāi)始 的位置(覆蓋掉了 bootsect 程序所在的地方),所取得的參數(shù)和保留的內(nèi)存位置見(jiàn)下表 2.1 所示。這些 參數(shù)將被內(nèi)核中相關(guān)程序使用,例如字符設(shè)備驅(qū)動(dòng)程序集中的 ttyio.c 程序等。
然后 setup 程序?qū)?system 模塊從 0x10000-0x8ffff(當(dāng)時(shí)認(rèn)為內(nèi)核系統(tǒng)模塊 system 的長(zhǎng)度不會(huì)超 過(guò)此值:512KB)整塊向下移動(dòng)到內(nèi)存絕對(duì)地址 0x00000 處。接下來(lái)加載中斷描述符表寄存器(idtr)和全 局描述符表寄存器(gdtr),開(kāi)啟 A20 地址線(xiàn),重新設(shè)置兩個(gè)中斷控制芯片 8259A,將硬件中斷號(hào)重新設(shè) 置為 0x20 - 0x2f。最后設(shè)置 CPU 的控制寄存器 CR0(也稱(chēng)機(jī)器狀態(tài)字),從而進(jìn)入 32 位保護(hù)模式運(yùn)行, 并跳轉(zhuǎn)到位于 system 模塊最前面部分的 head.s 程序繼續(xù)運(yùn)行。
? ? ? ? ? ? ? ? ? ? ? ? setup打開(kāi)
讀書(shū)心得:這本書(shū)比較難讀,需要了解每個(gè)概念知識(shí),實(shí)踐打開(kāi)電腦文件有的的地方會(huì)有些不一樣,運(yùn)用地點(diǎn)樁的記憶方法會(huì)記住一些概念類(lèi)的內(nèi)容,整體上可以了解,需要在加強(qiáng)讀書(shū)的聯(lián)接。