感受到LDT的好處

2022-08-30 00:03:21 字數 1068 閱讀 1438

1)首先從乙個異常開始的:

2)從trace裡可以看到 "init_main" 被呼叫了, 而該函式是kernel的函式,也就是說問題不是出現boot和load的階段。

3)接下來看產生 #pf的**,eip 是 0x7b7b,這個位址看起來很詭異。首先kernel開始的指令的位址是0x30400,而這個 0x7b7b 看起來非常迷惑, 不像是kernel中初始化函式的位址,也不像是中斷服務程式的位址,更不像task的位址。-- 沒有頭緒

4)重啟,在0x7b7b打斷點,看看這個是什麼。

08: 0003 0729,這個是kernel的函式。因為這裡的8表示的是kernel**段對應的選擇子。

05: 0000 7b7b,這裡的 05 是段選擇子,這個是任務的cs,任務的cs指向ldt的第0項,因為:

所以這裡的5表示的是任務**段對應的選擇子。(而且**中ldt[0] = 5)

05:00007b7b出的問題,說明是該任務導致了異常。

5)因為每個任務對應乙個ldt段,所以看看哪個任務出了問題:

看看ldtr暫存器,值是 0x28 確定是第乙個任務。

6)看一下第乙個任務

該任務退出,但是退出的時候沒有好的退出機制(比如跟windows一樣,進行任務切換),而是直接eip++++,一直執行下去,這就導致了問題。

7)至此,發現每個任務使用單獨的區域性描述符表ldt是非常好的設計,使各個任務隔離,出了問題也更好定位。

可以感受到的好領導

對於程式設計師 我相信很多現代企業的員工也適合此標準 講,好的領導的標準是什麼?有人講技術能力要高,有人講德行要高。要我說,這些都是廢話 空話。好的領導,一定是可以感受到的!我接觸過很多態別的領導,很多領導都給我留下很深刻的印象。好領導之所以給你好的感受,往往就是因為他帶給你你所需要的。而且有一點,...

感受到程式設計師的艱辛了

參加工作快一年了,從剛剛初出茅廬,到現在初長成,確實感受到了程式設計師的艱辛了。我參加這行完全是憑著自己的興趣,愛好。其實我的iq也許並不適合幹這行。有時候乙個簡單的問題會鬱悶上一整天,但隨著專案經理的一點撥,原來如此的簡單。分分鐘就能搞定。我們全公司,加班加點,天天搞到深夜,終於一周後出了個模型,...

HDU 3488 Tour 再次感受到KM的強大

題意 這題自己yy了下,沒想到結論還是對的。題目告訴我們乙個有向圖,現在問將圖中的每乙個點都劃分到乙個環中的最少代價是多少?每條邊都有乙個代價。解法 由於要成環,那麼將這個圖進行拆點,就變成了單向的二分圖了,此時乙個完備匹配就是一種連線策略,只要保證沒有邊是和自己相連,就能夠滿足題目中要求的每個點至...