核心情景分析筆記 記憶體

2021-06-06 16:20:22 字數 976 閱讀 2151

每個程序有4g記憶體空間,其中2g核心空間是共享的。另外2g記憶體是每個程序私有。但是程序這麼多,每個程序2g,系統怎麼也變不出來。於是有了記憶體對映一說,使用到的才進入記憶體,平時為空或者在倒換檔案中。這個頁式儲存機制對於現代作業系統比段式記憶體機制更重要。

每個程序對於自己的空間使用vadroot記錄。結構如下:

typedef struct _maddress_space

pmemory_area memoryarearoot便是記錄程序的空間,使用二叉樹結構。memoryarearoot為該程序空間的二叉樹的根節點。至此,便可推知有相應的查詢,插入等函式。

以上是對虛擬空間的管理,只有對應相對的物理記憶體才能使用。系統對於整個物理記憶體有個記錄,記錄多少記憶體多少物理記憶體頁面,使用pfn(頁面幀計數)。在windowsx86下是4k乙個頁面大小。

見結構 struct _physical_page .此結構通過pfn聯絡物理記憶體。同時結構中表明該頁面的性質,有free\used\bios。還有佇列元素表明此時頁面處於何種佇列中。比如待清零頁面佇列,已清零可使用佇列,bios佇列,使用中佇列等。使用中佇列又分cache\user\ppool\nppool,即分頁池,非分頁池,使用者,緩衝說明他們的用途。

下面將兩者聯絡起來,不過pte什麼的比較麻煩,而從實用出發,一般沒有涉及這麼深,大概了解了下。(嚴格來說,整個記憶體管理在實際使用中都是深埋幕後)。

但是物理記憶體與虛擬記憶體對映在實用中有個很重要的應用,共享對映區section.一般來講,乙個物理頁面都是對映到乙個程序的虛擬空間。但是乙個物理記憶體頁面也可以對映到不同空間的虛擬記憶體的不同位置。

進行記憶體共享或者將檔案對映到記憶體,訪問檔案就和訪問記憶體一樣,快捷很多。

然後情景分析分析了ntcreatesection函式,對於函式最後乙個引數filehandle,可有可無,區別只是在於,倒換的頁面是存放指定檔案還是倒換檔案中。之後的對映還是檔案 記憶體頁 以及相應的記錄的資料**的變換。

以上為個人索引累筆記,恐對其他人沒有什麼幫助。自用。

windows 核心情景分析 說明

說明本文結合 windows核心情景分析 毛德操著 軟體除錯 張銀奎著 windows核心程式設計 寒江獨釣 windows核心安全程式設計 windows pe權威指南 c 反彙編與逆向分析揭秘 以及reactos作業系統 v0.3.12 原始碼,以 windows核心情景分析 為藍本,對wind...

Windows核心情景分析 概述

現在的windows 現在的windows核心包含了兩大部分,一部分是本來意面上的作業系統核心,另一部分則是移到了核心中的視窗服務,前者對應ntoskrnl.exe後者win32k.sys 後者部分為了保證效率。windows作業系統包含多個子系統,最常用就是windows子系統 貌似現在的wind...

《Windows核心情景分析》物件管理

物件的資料結構都是由物件頭和具體物件型別的資料結構兩部分組成。物件頭object header在下,它的上方是具體物件型別的資料結構本身。nt object header 0x000 pointercount int4b 0x004 handlecount int4b 0x004 nexttofre...