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

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

系統 1835 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條評論
主站蜘蛛池模板: 日日狠狠久久8888av | 图片专区亚洲 欧美 另类 | 午夜欧美精品久久久久久久久 | 综合图区亚洲白拍在线 | 99久女女精品视频在线观看 | 国产成人精品亚洲77美色 | 色婷婷亚洲十月十月色天 | 亚洲精品国产乱码在线播 | 精品视频在线视频 | 中文字幕日韩在线观看 | 亚洲经典在线中文字幕 | 青青草免费视频在线播放 | 九九99线视频在线观看 | 精品视频在线观看免费 | 中文字幕亚洲一区二区三区 | 国产一级特黄一级毛片 | 偷自拍视频区综合视频区 | 按摩毛片 | 欧美日韩亚洲国产无线码 | 久草在线中文最新视频 | 国产成人精品久久免费动漫 | 国内精品视频九九九九 | 色激情五月 | 真人毛片免费拍拍拍aa视频 | 欧产日产国产精品专区 | 奇米在线观看 | 亚洲国产欧美在线 | 日本免费高清一区 | 青青草这里只有精品 | 欧美成人爽毛片在线视频 | 欧美人与性动交α欧美精品图片 | 亚洲国产精品激情在线观看 | 亚洲精品大片 | 中文毛片| 精品视频 久久久 | 青青青爽视频在线观看入口 | 亚洲精品色一区色二区色三区 | 91资源在线播放 | 色综合激情 | 久久精品94精品久久精品 | 永久黄网站色视频免费观看99 |