linux核心學習筆記(2) 記憶體定址

2021-08-29 19:10:44 字數 632 閱讀 9181

硬體中的分頁 :

頁框是乙個儲存區域,頁是乙個資料塊。兩者的長度一致(乙個),每個頁框包含乙個頁。4kb

1:directory   最高10位

2:table         中間10位

3:offset        最低12位

兩級頁表 :

兩級表的第一級表稱為頁目錄,儲存在乙個4k位元組的頁中,頁目錄表共有1k個表項,每個表項為4個位元組,線性位址最高的10位(22-31)用來產生第一級表索引,由該索引得到的表項中的內容定位了二級表中的乙個表的位址,即下級頁表所在的記憶體塊號。 第二級表稱為頁表,儲存在乙個4k位元組頁中,它包含了1k位元組的表項,每個表項包含了乙個頁的實體地址。二級頁表由線性位址的中間10位(12-21)位進行索引,定位頁表表項,獲得頁的實體地址。頁實體地址的高20位與線性位址的低12位形成最後的實體地址。

使用者空間 :

在linux中,每個使用者程序都可以訪問4gb的線性虛擬記憶體空間。其中從0到3gb的虛存位址是使用者空間,使用者程序可以直接訪問。

核心空間:

從3gb到4gb的虛存位址為核心態空間,存放供核心訪問的**和資料,使用者態程序不能訪問。所有程序從3gb到4gb的虛擬空間都是一樣的,linux以此方式讓核心態程序共享**段和資料段。

linux核心學習筆記2

選擇符用來查詢段描述符的,其中有一位會標明是去全域性描述符表中查詢還是去區域性描述符表中查詢。實模式下 直接在段暫存器中存放段基位址。每乙個段暫存器 即選擇符 都有乙個高速緩衝暫存器,為了加快訪問速度。為了避免每次儲存器訪問時,都要訪問描述符表,讀取描述符並對段進行解碼得到描述符本身的各種資訊,每個...

linux 核心學習(2)

linux核心原始碼樹大體結構 由於linux的原 持續在變化,所以不可能給出太詳細的內容,只能指出乙個特殊的驅動大概會出現在什麼地方。makefile 這是整個的原始碼樹的最頂層的makefile。它定義了很多的有用的變數和規則,如預設的gcc編譯標誌。arch 所有的特殊的體系結構的 都在這個目...

linux核心學習筆記之記憶體管理

linux核心把物理頁作為記憶體管理的基本單位。每一頁的大小根據系統架構不同有所區別,32位系統下為4kb,64位系統下為8kb。記憶體管理單元 mmu 以頁為單位來管理系統中的頁表,負責虛擬位址到實體地址的轉換,使用者所使用的記憶體位址一般都是虛擬位址。核心中頁的結構體中比較重要的成員為 stru...