0.11linux讀核日記(1)
之所以要讀linux核心是因為自己想完全弄懂計算機從載入電源到正常執行程式的過程。而選定0.11版本是因為手頭上有一本趙炯博士寫的《linux完全注釋》。呵呵,閒話少說,還是轉到讀碼中。。。。
計算機在加電後,bios啟動乙個程式進行主機自檢,自檢結束後,自檢程式將控制權還給bios,bios讀取bios設定,得到引導驅動器的的順序,然後依次檢查,得到可以用來引導的驅動器(往往指得是硬碟),bios將所檢查的磁碟的第一扇區(512b)放入記憶體,放在0x0000:0x7c00處。如果發現這個扇區的511,512位是0x55aa,就確定這是乙個引導扇區。在linux0.11中,bootsect。s就是寫在第一扇區內,並且最後的511,512位是0x55aa,所以確定它是引導程式。
bootsect。s程式裝入記憶體0x0000:0x7c00處後,執行這段匯程式設計序。下面我畫出這段程式的流程圖
[bootsect。s先把自身移到了0x9000處]------》[然後呼叫bios0x13中斷來讀區setup。s程式,把setup。s放在0x9200處]-----》[得到磁碟驅動器的引數]-----》[然後輸出system loading資訊]-----》[載入system模組到0x1000處]-----》[關閉磁碟驅動器]-----》[檢查引導驅動器型別]-----》[執行setup程式]
參考書籍《linux完全注釋》,《作業系統引導**》,《linux0.11原始碼分析》
讀核日記 三
讀核日記 三 在linux 中每乙個程序都由 task struct 資料結構來定義 task struct 就是我們通常所說的 pcb.她是對程序控制的唯一手段也是最有效的手段.當我們呼叫 fork 時,系統會為我們產生乙個 task struct結構.然後從父程序 那裡繼承一些資料 並把新的程序...
讀核日記 五
讀核日記 五 進來忙得不得了,這時才體會出工作和在學校真的不同.有時候自己想做的事,很難如願.不過我這一段時間沒有太偷懶.對於linux 的386 保護模式,記憶體管理,作了乙個初步的學習.當初學習作業系統課時老覺得理論沒用.如今,真的時間了,才知道理論知識是多麼的缺乏.也許是書到用時方恨少 閒話少...
讀核日記 七
讀核日記 七 linux的記憶體管理機制 1 記憶體管理是乙個作業系統必不可少.並且.非常重要的一環.linux的成功.和它優秀的記憶體管理聯絡非常密切.因為乙個系統的高效性慾穩定性往往決定於它的記憶體管理機制.我項很多人吃過dos下640k 的苦吧.前面我們介紹了386保護模式.從今天起我們將在此...