1.1 cpu啟動後,它會先載入bios模組**到記憶體中執行。
1.2 bios會初始化硬體裝置,初始化初始中斷描述符表,這個中斷描述符表叫「初始」是因為它是供記憶體描述符表初始化之前使用的,核心描述符表初始化後就會被清除。
1.3 bios會從啟動盤中讀取第一塊內容並載入到記憶體的0x7c00,之後就跳轉到0x7c00出執行。到這裡,bios使命就完成了,boot loader模組開始執行。
2.1 首先,看一下jos的磁碟布局:boot loader存在第一扇區,而核心**從第二扇區開始儲存。
2.2 到目前為止,處理器還處於實模式狀態,所以boot loader的第乙個工作就是重置資料段暫存器ds,es,ss為0
2.3 開啟a20位址線,為進入保護模式做準備
2.4 載入全域性描述符表,置位cr0暫存器的pe位,通過ljmp指令正式進入保護模式
2.5 進入保護模式後,先設定資料段描述符暫存器,然後設定棧指標初始化核心棧,這裡值得一提的是jos把boot loader的這段空間復用為了棧空間。最後call 到bootmain中從磁碟載入核心**到記憶體。
mit 6 828學習筆記0 搭建環境
注 由於實驗室的同學用的18年的課,我也就用的18年 ubuntu 18.04.5 使用的是清華園的映象 qemu 參見官網教程 這一步參考的部落格 如果不成功的話,參考官方文件即可 即可如果直接 sudo apt get install python2.7會出現依賴問題 解決辦法為 sudo ap...
關於學習MIT6 828作業系統課程的記錄
課程描述 6.828傳授關於作業系統的基本知識。下面的主題將會在本課程中具體學到 virtual memory,kernel and user mode,system calls,threads,context switches,interrupts,interprocess communicati...
MIT 6 828 xv6學習筆記 0
vx6是mit開發的教學用的小型作業系統,是unix version 6 v6 的重新實現,這個筆記會摘抄xv6中文文件 以下簡稱 文件 的內容,同時結合一些自己的看法,文章遵循文件中的順序。1 在文件中,這樣定義作業系統的作用 作業系統的工作是 1 將計算機的資源在多個程式間共享,並且給程式提供一...