前置知識: 分段的概念(當然手寫過肯定是墜吼的 為什么要分頁 當我們寫程序的時候,總是傾向於把一個完整的程序分成最基本的數據段,代碼段,棧段。並且普通的分段機制就是在進程所屬的LDT中把每一個段給標識出來。但是在實際運用中,大多數進程不會無限地運行下去。當進程結束之后它占有的內存空間也會被 ...
通過前四章的努力,我們成功將控制權轉交給了 loader.asm 這個程序,並且從實模式跨越到了保護模式。第四章講保護模式的時候我說過,這是我們操作系統的第一個精彩之處。但其實這只是針對之前我們進行的只是無意義的輸出,以及硬盤的加載等工作。但到了這一章,之前一步步的努力進入到了保護模式,也只能說是做了很多苦力,其實很多代碼都是固定的,給我們發揮的空間也不大。 但是到了本章,可以說終於有能體現出我們 ...
2020-01-26 20:57 4 1596 推薦指數:
前置知識: 分段的概念(當然手寫過肯定是墜吼的 為什么要分頁 當我們寫程序的時候,總是傾向於把一個完整的程序分成最基本的數據段,代碼段,棧段。並且普通的分段機制就是在進程所屬的LDT中把每一個段給標識出來。但是在實際運用中,大多數進程不會無限地運行下去。當進程結束之后它占有的內存空間也會被 ...
操作系統是一個非常深層次的領域,想學好的話可以說是一個非常困難的事情,不過操作系統涉及的范圍很廣,我們可以研究一些我們感興趣、或者說離我們近一些的部分。比如:內存管理,明白了內存管理,可以對整個操作系統的工作會有一個初步的輪廓。 虛擬內存 如果你是電子相關專業的,肯定在大學里 ...
自制操作系統Antz day09——實現內核 (下) 實現圖形化界面 https://www.cnblogs.com/LexMoon/p/antz09.html Antz系統更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html ...
目錄 一、前景回顧 二、位圖bitmap及函數實現 三、內存池划分 四、運行 一、前景回顧 前面我們已經花了一個回合來完善了一下我們的系統,包括增加了makefile,ASSERT以及一些常見的字符串操作函數。關於makefile,還是我以前學習Linux系統編程的時候學了一點點 ...
本章我們要完成初步的內存管理系統,最終簡單實現一個從內核內存池中獲取 3 頁的內存這樣一個函數實現。 一、到目前為止的程序流程圖 為了讓大家清楚目前的程序進度,畫了到目前為止的程序流程圖,如下。 圖中紅色部分就是我們本章的代碼在全局流程中的位置,下面藍色部分是將 malloc_page ...
目錄 1.分頁機制介紹 2.頁表結構 3.頁表項格式 4.虛擬存儲 5.直達底部 一、分頁機制介紹 1. 什么是分頁機制 分頁機制是 80x86 內存管理機制的第二部分。它在分段機制的基礎上完成虛擬地址到物理地址的轉換過程。分段機制把邏輯地址轉換成線性地址,而分頁機制 ...
|| 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 一、前言 在我們進行程序開發的時候,一般情況下,是不需要管理內存的,也不需要操心內存夠不夠用,其實,這就是分頁機制給我們帶來的好處。它是實現虛擬存儲的關鍵,位於線性地址與物理地址之間,在使用這種內存分頁管理方法時,每個執行中 ...
《30天自制操作系統》筆記(07)——內存管理 進度回顧 上一篇中處理掉了絕大部分與CPU配置相關的東西。本篇介紹內存管理的思路和算法。 現在想想,從軟件工程師的角度看,CPU也只是一個軟件而已:它的功能就是加載指令、執行指令和響應中斷,而響應中斷也是在加載指令、執行指令。就像火車沿着一條 ...