亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux0.11內核--idt(中斷描述符表的初始化)he

系統 2183 0

head.s被編譯成system模塊的最前面部分,故而稱為頭部。

這段程序處于地址的絕對0處,首先是加載各個數據段寄存器,重新設置中斷描述符表 idt,共 256 項,并使各個表項均指向一個只報錯誤的啞中斷

程序。然后重新設置全局描述符表 gdt。接著使用物理地址 0 與 1M 開始處的內容相比較的方法,檢測 A20 地址線是否已真的開啟(如果沒有開

啟,則在訪問高于 1Mb 物理內存地址時 CPU 實際只會訪問(IP MOD,如果檢測下來發現沒有開啟,則進入死循環。然后程序測試 PC 機是否含有數

學1Mb)地址處的內容)協處理器芯片(80287、80387 或其兼容芯片),并在控制寄存器 CR0 中設置相應的標志位。接著設置管理內存的分頁處

理機制,將頁目錄表放在絕對物理地址 0 開始處(也是本程序所處的物理內存位置,因此這段程序將被覆蓋掉),緊隨后面放置共可尋址 16MB 內存

的 4 個頁表,并分別設置它們的表項。最后利用返回指令將預先放置在堆棧中的/init/main.c 程序的入口地址彈出,去運行 main()程序。

下面看一下idt表的初始化。
首先設置ds,es,fs,gs選擇符為setup.s中設置的數據段
然后設置系統的堆棧
lss stack_start,%esp #表示_stack_start ss:esp
其中stack_start在/kernel/sched.c中定義了
然后進入setup_idt子程序
idt表項的結構如下圖
這段子程序就是循環設置了256項idt描述符,全部指向ignore_int中斷門,以后使用的時候再重新設置
其中idt標號的地址就是idt表的其實地址 位于head.s的233行
定義如下
其中.align n 偽指令的含義
在x86 ELF格式中,要在8字節處對齊,應該用 .align 8
而在 a.out格式中,要在8字節處對齊,應該用 .align 3 (2^n),現在一般用elf格式。

Linux0.11內核--idt(中斷描述符表的初始化)head.s分析


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎最新网址入口 | 九天玄帝诀王凡小说免费阅读 | 欧美日韩一区二区高清视 | 99久热在线精品视频播放6 | 就要爱综合 | 亚洲精品一区二区久久这里 | 国产精品伦理久久久久久 | 亚洲视频黄色 | 免费爱爱网站 | 国产伦久视频免费观看视频 | 久久久夜 | 成人亚洲欧美日韩在线观看 | 免费人成黄页网站在线观看 | 在线播放ww| 久久这里是精品 | 男人的天堂久久香蕉国产 | 特级毛片免费视频 | 国产一区二区免费在线 | 四虎精品永久在线网址 | 欧美xxx网站 | 狠狠色丁香久久婷婷 | 久草在线免费资源 | 四虎永久免费影院在线 | 午夜毛片在线观看 | 欧美成人激情视频 | 国产国产成人精品久久 | 91精品91久久久久久 | 在线欧美69v免费观看视频 | 欧美成人禁片在线www | 免费性视频 | 色综合久久综合网 | 奇米久久 | 日韩波多野结衣 | 乱色美www女麻豆 | 午夜视频福利 | 国产啪爱视频精品免视 | 在线成人国产 | 国产免费精彩视频 | 久久久久久久综合日本亚洲 | 高清不卡视频 | 看大片全色黄大色黄 |