我的工作環境在ubuntu下,所以搭建環境比較方便
這個借鑑了《乙個作業系統的實現》
我把詳細的過程記下了.
修改 bochsrc
floppya: 1_44=freedos.img, status=inserted
floppyb: 1_44=a.img, status=inserted
boot: a
格式化剛才建立的軟盤映象
編譯原始碼
注意:將org 07c00h改為0100h
編譯為com檔案在dos下執行
將com檔案放入a.img
sudo mount a.img /mnt/floppy
sudo cp a.com /mnt/floppy
sudo umount /mnt/floppy
啟動bochs,在dos環境中執行程式
進入保護模式
本文為 每個描述符佔8位元組,下圖中,上面位高32位,下面為低32位 disk boot ata channel 0 first hd cd on channel 0 type of disk image這個選項是vpc,我用2.6.2配置時選vpc無法啟動,得選flat才可以,2.6.0貌似選vp...
進入保護模式
以下圖2,圖4和圖5截自intel手冊 每個描述符佔8位元組,下圖中,上面位高32位,下面為低32位 disk boot ata channel 0 first hd cd on channel 0 type of disk image這個選項是vpc,我用2.6.2配置時選vpc無法啟動,得選fl...
保護模式小結
在gdt ldt以及idt中,每乙個描述符都有自己的界限和屬性等內容,是對描述符所描述物件的一種限定和保護 分頁機制中的pde和pte都含有r w以及u s位,提供了頁級保護 頁式儲存的使用使應用程式使用的是線性空間而不是實體地址,於是物理記憶體被保護起來 中斷不再像是模式下一樣使用,也提供特權檢驗...