0
我試圖啓動一個定製的內核。 QEMU是GDT地址的頁面錯誤。爲什麼是這樣?我認爲使用lgdt
指令加載後,GDT的地址就不再需要了。如果仍然需要,我該如何保持它? (我不能簡單地將PTE指向GDT地址,因爲我只有2048個指針,它們都是指向內核代碼所需的。)GDT與尋呼
我試圖啓動一個定製的內核。 QEMU是GDT地址的頁面錯誤。爲什麼是這樣?我認爲使用lgdt
指令加載後,GDT的地址就不再需要了。如果仍然需要,我該如何保持它? (我不能簡單地將PTE指向GDT地址,因爲我只有2048個指針,它們都是指向內核代碼所需的。)GDT與尋呼
看起來你很容易誤解x86中的MMU。
爲了確定數據的物理地址,處理器取邏輯地址(訪問存儲器時使用的一個)和一個段選擇,把它通過分割單元以產生線性地址,並且然後地圖如果啓用了分頁單元,則將其轉換爲物理地址。
現在來看看lgdt
instruction description:
他們是直接加載線性地址 唯一的指令(即,不是段相對地址),並在保護 模式的限制。
未啓用分頁,線性地址直接映射到物理地址,所以你可能會說,你是在一個物理空間。但是,當您啓用分頁,多蘿西離開堪薩斯州:任何地址(除了頁目錄CR3寄存器的物理地址)現在處於線性空間,並通過尋呼轉型去。
至於你的問題:它看起來像你只用了兩頁目錄條目。爲什麼?試試另一個,鮑勃是你的叔叔。
我很抱歉,但你已經使用了這麼多的程序員的俚語,我不是很瞭解你說的話。你能否編輯你的答案來澄清?謝謝。 – wjk