翻來覆去看了好多遍的記憶體管理 還是沒有弄明白 先把想明白的記下來好了
首先 是開啟分頁管理 一共三步 1 準備好頁目錄表 頁表 2 將頁目錄表的實體地址寫入到cr3暫存器中 3 開啟cr0的31位 即pg位
先說說準備頁目錄表和頁表 頁目錄表被放在了低端1mb記憶體之內 具體位置是0x100000 佔據一頁大小 4k
其中包括了1024個一級頁表 這1024個一級頁表只有256個是被使用的 就是第0個和768-1023個 其中 最後乙個頁目錄項指向了頁目錄項的起始位址
第0個和第768個指向了同乙個頁表項 第乙個 也就是處在0x101000位置上的頁表項
頁目錄項中有1024個pte 每個pte中有1k個頁 每個頁大小為4k 也就是說 每個pte指向的空間為4m 所以這乙個pde 中,核心實際的大小是255個pdt × 4 也就是1gb - 4mb的記憶體
從0xc009a000到0xc009e000的四個頁框就是點陣圖的位置 通過點陣圖來對頁框進行分配
首先 記憶體池分為 核心記憶體池和使用者記憶體池 顧名思義 核心記憶體池就是對核心的高1gb空間進行分配 此外 還有乙個虛擬位址池 virtual_addr用於給核心分配虛擬位址
目前使用的位址有低端1mb記憶體和頁表項占用的記憶體 剩下的就是剩餘記憶體
然後是分配頁記憶體 主要是通過先分配乙個虛擬位址 然後在物理記憶體池中分配乙個物理記憶體 然後進行對映
《作業系統 真象還原》書評
首先我對這本書的評價是正面的,這是一本還算不錯的書。請以這個基調閱讀本文。我也從來沒寫過書評,只不過這本書實在是讓人忍不住要寫一下,因為各種各樣的原因。這本書大致就是在bochs虛擬機器上面,實現乙個簡單的作業系統,實現的內容包括 mbr,loader,記憶體管理,中斷管理,檔案管理,系統呼叫,多程...
《作業系統真象還原》 閱讀筆記(上)
配置bochs,進入bochs simulator後一直是黑屏,原來預設是除錯模式,需要輸入c continue 來讓除錯繼續。主講mbr及進入mbr前的步驟 1.實模式只能訪問1mb的記憶體空間。2.bios在rom中。3.開機上電後cs ip指向記憶體0xfff0,這裡有個跳轉語句,轉到fe05...
《作業系統真象還原》 1 5 執行bochs
終於安裝完成了,雖然這過程中有可能會出現各種各樣的問題,但還是值得慶祝的,對linux不熟的朋友第一次就搞定了這麼個硬貨,我理解您此時的喜大普奔之情,哈哈,給大家點讚。順便說一句,其實平時我們的運維人員為開發環境付出了遠比這更多的努力,所有奮戰在一線的系統工程師和運維工程師,您們辛苦了。不過好奇心讓...