GRUB的小秘密

2021-03-31 08:56:58 字數 544 閱讀 4719

我看了一下grub的源**:

主要的竅門是這樣的:

grub分兩個部分stage1,stage2(stage1.5)

stage1就是512的引導區了,它載入放在檔案系統中的stage2。而stage2完成grub的其它的事情,命令列,配罝,從檔案系統中載入kernel。。。但是stage1只能有512個位元組的**。。是不可能識別檔案系統的:(

解決的小竅門就是,stage1只裝入stage2的第乙個檔案塊(2sector=1k),然後跳到stage2執行,這1k的內容,起始是一段自載入**,將載入stage2其他部分(在檔案系統中的),而後半512位元組是資料,stage2的檔案塊表(竅門就在這^_^),這樣stage2的自載入**不用識別檔案系統,就可以直接從檔案塊表將stage2載入進來,然後執行stage2,stage2大得很,再用它識別各種檔案系統,kernel檔案格式。。配罝。。,然後載入kernel,啟動kernel。

stage2檔案塊表,是用工具將stage2拷到檔案系統後,再修改stage2填入的,同時也要將stage2的第乙個檔案塊的位置寫入stage1中,這樣就成了.

background的小秘密

background image url 預設拉伸鋪滿background size 100px 100px 背景大小有兩個引數長和寬background repeat no repeat 預設repeat,還有repeat x和repeat y常用為no repeatbackground posi...

int float double 的那點小秘密

偶編c的時候,有的時候就是因為這些float int double之間的混算錯得一塌糊塗。這位仁兄說得挺好的,不過要想在深入了解下去,可就麻煩了。如果沒那知識,就一定要注意強制型別轉換後賦值和運算,比較保險!原文如下 抱歉我用了乙個這麼 二 的題目,不過二點就二點吧,希望內容還不算太二。其實學習過程...

虛函式的小秘密

本文分析虛函式的小秘密,通過幾個case說明為了支援虛函式,應該有什麼樣的約定,生成什麼樣的 c 中虛函式用於實現多型 即方法呼叫和物件的動態型別繫結。具體地說對a 型別指標p指向a的公有派生類b的物件,a中有虛函式foo,b中給定foo的另乙份實現,p foo應該和b中的新實現繫結,而不是和a中的...