加密與解密(第四版)第7章 Windows核心基礎

2021-10-11 16:17:52 字數 2581 閱讀 4504

1. 許可權級別

系統核心層:ring0,應用層:ring3

cpu存在4個級別由高到底:r0(核心)、r1(驅動)、r2(驅動)、r3(應用)

作業系統的設計者為了簡單,並未使用r1,r2

xp系統體系結構圖:

2. 記憶體空間布局

x86系統記憶體布局圖:

x86系統上最大定址空間為4gb

windows記憶體共包含4個部分:null空間,應用層空間,非法區域,核心空間

x64系統記憶體布局圖:

x64系統上最大定址空間理論上為16pb(2^64次方),但根本用不完

windows最多支援2^44次方定址空間,16tb

linux最多支援2^64次方定址空間,256tb

3. windows與核心啟動過程

包含以下階段:

cpu啟動自檢階段

開啟電源時,cpu從bios中載入自檢指令,執行這些指令進行自檢操作,同時在螢幕上顯示資訊

初始化啟動階段

自檢完成後,根據cmos的設定,bios載入啟動盤,將主引導記錄mbr中的引導**載入記憶體,並執行。mbr中的引導**搜尋mbr中的分割槽表,找出活動分割槽,將第乙個扇區的中的引導**載入記憶體,第乙個扇區的中的引導**檢測當前使用的檔案系統,查詢ntldr檔案,找到之後啟動它,此後bios將控制權交給ntldr,由ntldr完成作業系統的啟動工作(windows 7使用的是bootmgr)

boot載入階段

對ntldr進行如下設定

①設定記憶體模式。如果是x86處理器,並且是32位系統,則設定「32-bit flat memory mode」;如果是x64處理器,並且是64位作業系統,則設定為64位記憶體模式

②啟動乙個簡單的檔案系統,以定位boot.ini、ntoskrnl、hal等啟動檔案

③讀取boot.ini檔案

檢測和配置硬體階段

這個階段會檢查和配置一些硬體裝置,如系統韌體、匯流排和介面卡、顯示介面卡、鍵盤、通訊埠、磁碟、輸入裝置、並口、isa匯流排上執行的裝置等

核心載入階段

ntldr將首先載入windows核心ntoskrnl.exe和硬體抽象層hal。hal會對硬體底層的特徵進行隔離,並為作業系統提供統一的呼叫介面。接下來ntldr從登錄檔的

hkey_local_machine\system\currentcontrolset

鍵下讀取這台機器安裝的驅動程式,然後依次載入驅動程式。初始化底層裝置驅動,在登錄檔的

hkey_local_machine\system\currentcontrolset\services

鍵下查詢」start「鍵的值為0和1的裝置驅動

strat鍵的值可以為0、1、2、3、4數值越小,啟動越早

0:核心剛剛初始化,此時載入的都是和系統核心有關的重要驅動程式

1:稍微晚一點

2:從登入介面出現時開始載入

3:在需要的時候手動載入

4:禁止架子啊

windows會話管理啟動

當驅動程式載入完成後,核心會啟動會話管理器(smss.exe),是作業系統第乙個建立的使用者模式程序,作用如下:

登入階段

windows子系統啟動的winlogon.exe系統服務提供對windows使用者的登入和登出的支援

tips:windows 7和windows xp啟動過程的區別?

tips:bios+mbr與uefi+gpt的區別?

bios+mbr是傳統的啟動方式,磁碟邏輯位址lea是32位的,最多支援2tb的磁碟。

uefi是bios的替換方案,本身相當於乙個微型的作業系統,磁碟邏輯位址lea是64位的。uefi具有檔案系統的能力,能夠直接讀取fat分割槽中的檔案。uefi下不需要主引導記錄,不需要活動分割槽,不需要任何工具,只要將安裝檔案複製到乙個fat32分割槽或u盤中,通過這個分割槽或u盤即可安裝和啟動windows

直接在uefi環境下執行的程式以.efi結尾

4. windows r0與r3通訊本章後面的部分目前無法看懂,需要看完《windows核心程式設計》才能看懂

加密與解密(第四版)第1章 基礎知識

unicode 使用2位元組對文字進行編碼,也稱為寬位元組 小端序 高位位元組放入低位址,低位位元組放入高位址 x86架構cpu採用 大端序 低位位元組放入低位址,高位位元組放入高位址 網路協議傳輸採用 win16 用於16位的windows的api windows 1.0 windows 3.0 ...

VC 技術內幕(第四版)筆記(第14章)

第十四章 可重用框架視窗類 1,可重用基類的設計 為某個工程所設計的類應該能夠被提取出來 使它進一步一般化後被應用於其他的應用程式。2,一些重要函式 1 cframewnd activateframe virtual void activateframe int ncmdshow 1 以ncmdsh...

VC 技術內幕(第四版)筆記(第14章)

第十四章 可重用框架視窗類 1,可重用基類的設計 為某個工程所設計的類應該能夠被提取出來 使它進一步一般化後被應用於其他的應用程式。2,一些重要函式 1 cframewnd activateframe virtual void activateframe int ncmdshow 1 以ncmdsh...