Win32基礎知識1
讓編程改變世界
Change the world by program
必須瞭解的基礎知識
80×86處理器的工作模式
實模式
保護模式
虛擬8086模式
Windows的內存管理機制
Dos操作系統的內存安排情況
80386的內存尋址機制
80386的內存分頁機制
Windows的內存安排
從Win32彙編的角度看內存尋址
Windows的特權保護機制
80386的中斷和異常
80386的保護機制
Windows的保護機制
這是我們需要了解的一些基礎知識,無論學習哪門編程語言,只要在Windows下編程,這些不能不知 ^_^
80×86處理器的工作模式
80386以後的處理器有 3 種工作模式:實模式、保護模式和虛擬8086模式。
其實,實模式和虛擬8086模式是爲了向下兼容而設置的。
而保護模式是我們的主角,是我們現代系統實際上的工作模式。
只有在保護模式下,32位CPU的尋址才能達到4GB的地址空間,同時,也能實現多任務、內存分頁管理和優先級保護等先進的機制。
Windows7的啓動過程
1、開啓電源
計算機系統將進行加電自檢(POST)。
如果通過,之後BIOS會讀取主引導記錄(MBR)——被標記爲啓動設備的硬盤的首扇區,並傳送被Windows 7建立的控制編碼給MBR。
注:硬盤的0磁道的第一個扇區稱爲MBR,它的大小是512字節,而這個區域可以分爲兩個部分。
第一部分爲pre-boot區(預啓動區),佔446字節;
第二部分是Partition table區(分區表),佔66個字節,該區相當於一個小程序,作用是判斷哪個分區被標記爲活動分區,然後去讀取那個分區的啓動區,並運行該區中的代碼。
MBR他是不屬於任何一個操作系統,也不能用操作系統提供的磁盤操作命令來讀取它。
但我們可以用ROM-BIOS中提供的INT13H中斷的2號功能來讀出該扇區的內容。(介紹BIOS指令)
2、啓動菜單生成
Windows啓動管理器讀取“啓動配置數據存儲(Boot Confi guration Data store)中的信息。
此信息包含已被安裝在計算機上的所有操作系統的配置信息。並且用以生成啓動菜單。
當您在啓動菜單中選擇下列動作時:
如果您選擇的是Windows 7,Windows 啓動管理器(Windows Boot Manager)運行%SystemRoot%System32文件夾中的OS loader —— Winload.exe。
如果您選擇的是自休眠狀態恢復Windows 7,那麼啓動管理器將裝載Winresume.exe並恢復您先前的使用環境。
如果您在啓動菜單中選擇的是早期的Windows版本,啓動管理器將定位系統安裝所在的卷,並且加載Windows NT風格的早期OS loader(Ntldr.exe)——生成一個由boot.ini內容決定的啓動菜單。
3、核心文件加載及登錄
Windows7啓動時,加載其核心文件 Ntoskrnl.exe和 hal.dll —— 從註冊表中讀取設置並加載驅動程序。
接下來將運行Windows會話管理器(smss.exe)並且啓動 Windows啓動程序(Wininit exe),本地安全驗證(Lsass.exe)與服務(services.exe)進程,完成後,您就可以登錄您的系統了。