Windows 95 系統程式設計大奧秘学习笔记

 

书名:  Windows 95 系統程式設計大奧秘(一)(Windows 95 SystemProgramming SECRETS)
作者:  Matt Pietrek
译者:  侯俊杰
整理者:高永庆(大连轻工业学院计982)


目錄提要
1.  Windows 95 有三個非常基礎的核心元件: 16 位元的KRNL386 、32 位元的
KERNEL32 、以及ring0 的VWIN32.VXD。如果你把它們放在一起, 就得到了
VWINKERNEL32386。
2.  如果要充份瞭解Windows 95,你就必須瞭解Portable Executable(PE) 檔案格式.

第1章  透視Windows 95
1.  這個新的可執行檔格式稱為PE(Portable Executable)格式,係從UNIX
系統的common object file format V(COFF)衍生而來.
2.  Windows NT 的主要目標在強固性與移植性(移植到其他硬體平台)。大部份碼是以C 和C++(而非組合語言)完成.
3.  NT 之所以穩定,一個主要原因是其「受保護的子系統」(protected subsystem)架構。在此子系統中,實作出API 的那些系統碼,係在與應用程式不同的位址空間中執行.
4.  NT 把16 位元程式放在所謂的WOW(Windows On Windows)行程中跑。
5.  Win32s 的限制很大。第一個同時也是最大的限制是,它不支援執行緒。第二是它把所有Win16 程式和Win32 程式都擺在同一個位址空間中。第三個缺點是Win32s 缺乏每一行程專屬的DLL 資料空間。Win32s 的另一個問題是行程的排程和訊息傳遞系統。
6.  Windows 95 的最底層是ring0 系統碼,包括虛擬機器管理器(VMM)和輔助的VxDs。在CPU ring0 執行的碼理論上是最穩定也最能夠信賴的。所以它負擔較多的系統資料和硬體的處理。
7.  不論是Win16 的NE 檔或Win32 的PE 檔,都內含一個DOS 程式,稱為DOS
stub 程式。你在Windows 3.1 之下看到的"This Program Requires Microsoft Windows" 輸出便是DOS stub 程式的傑作。

第二章 Windows 95 有些什麼新東西
1.  Windows 95 有兩個基本條件(雖然也許有點矛盾):
    (1.)  提供存在於Windows NT 上的所有Win32 API(執行緒、分離位址空間、虛擬記憶體等等等),但捨棄安全防護性(security)和unicode。
    (2.)  在4MB 機器上執行既有的MS-DOS 和16 位元Windows 程式,效率要和在相同機器上的Windows 3.1 一樣好,或甚至更好。
2.  我要聲明,Windows 95 是DOS 和Windows 3.1 的組合。
3.  WIN.COM 是把機器從真實模式(或虛擬86 模式)切換到保護模式Windows 環境的整個程序源頭。
4.  但Windows 95 對於以前的DOS/Windows3.1 組合的最大改
善就是以VxD 取代過去我們對DOS 的呼叫.
5.  在Windows 95,一旦VMM32.VXD 載入並運行,幾乎所有對DOS 的呼叫都改由VMM32 內全新的32 位元碼負責。VMM32 由Windows 95 中的一大堆ring0元件組成。VMM32 相當於Windows 3.1 的WIN386.EXE。(整理者:用vxd程序代替dos的呼叫,
这是windows95的先进之处,98应该是大大减少了dos的呼叫)
6.  Windows 95 在相容性方面有更高的標準,因此把視窗管理系統保持在16位元
所有的視窗(是的,甚至是由32 位元程式產生出來的視窗)都是由16 位元的
USER.EXE 管理。
7.  Windows95 USER 事實上是以一種不尋常的佈局,使用一個混合了16- 和32- 位元的heaps。16 位元的USER.EXE 仍舊使用16 位元DGROUP 節區,USER 產生了一個特殊的32 位元heap 用來儲存WND 結構.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 透視 Windows 95 本章溫習 Win32 作業系統Windows NT、Win32s 和 Windows 95)的歷史背景。你可 以得知每㆒個作業系統的優點與弱點,以及其他 Win32 環境如 OS/2 Warp 和 Phar Lap 公司的 TNT DOS extender。 第2章 Windows 95 有些什麼新東西 你將從這㆒章獲得廣泛的 Windows 95 架構概觀,以及為什麼 Windows 95Windows 3.1 演化而來,而不是㆒個全新系統的原因。本章也談到了高階主題如記憶體管理、執 行緒同步化控制、視窗系統的改善等等。 第3章 模組、行程、執行緒 檢驗 Windows 95 的模組、行程、執行緒之後,你就可以解開 KERNEL32 用來實現其 資料結構之謎。本章的 Win32 函式虛擬碼完全依賴這些資料結構。此外,你還會讀到 thread local storage 和structured exception handling 兩項主題。 第4章 USER 和 GDI 子系統 微軟把 Windows 3.1 的視窗系統、訊息系統、繪圖系統重新整修,放在Windows 95 之 ㆗。為了更瞭解它們,你必須學習 32 位元的 USER 和 GDI heaps,以及16 位元USER heap ㆗的新資料結構對於所謂 free system resource 的影響。 第5章 記憶體管理 Windows 95 的 32 位元記憶體管理是相當複雜的㆒個領域。在這重量級的㆒章裡,你 可以探索以分頁為基礎(paged-based)的虛擬記憶體、分離位址空間、共享記憶體。每 ㆒個 Win32 記憶體管理函式也以虛擬碼描述出來。 Windows 95 系統程式設計大奧秘Windows 95 System Programming SECRETS) xii 第6章 VWINKERNEL32386 Windows 95 有㆔個非常基礎的核心元件: 16 位元的 KRNL386 、32 位元的 KERNEL32 、以及 ring0 的 VWIN32.VXD。如果你把它們放在㆒起, 就得到了 VWINKERNEL32386。檢驗㆔者之間的關係時,你會同時發現許多有用的函式 -- 雖然 其㆗有㆒些是未公開函式。 第7章  Win16 的 Module 和 Task 千萬不要忽略了 Windows 95 的 16 位元核心資料結構。雖然 Windows 95 是㆒個 32 位元作業系統,它的許多資料結構早在 Windows 3.1 之㆗就出現了,包括 task database 以及16 位元的 module database。這也顯示了 Windows 95 內部的紛亂狀態。 第8章 PE 與 COFF OBJ 檔案格式 如果要充份瞭解 Windows 95,你就必須瞭解 Portable Executable(PE) 檔案格式 -- 那 是 Windows 95Windows NT 的可執行檔格式。本章還告訴你 COFF OBJ 和 COFF LIB -- 聯結器用它們來製造 PE 可執行檔。 第9章 尋幽訪勝靠自己 如果你真正想進入 Windows 95 的核心,第9章告訴你怎麼做。你會學到如何使用檔案 傾印(dumping)工具和 API 刺探(spying)工具,以及如何檢驗反組譯碼,找出諸如 區域變數、函式參數、if 句型...等等東西。本章最後以㆒些頗有用處的經驗提示收尾。 第10 章 寫一個 Win32 API Spy 以前數章知識為基礎,本章告訴你如何產生㆒個可擴充的 API 刺探工具(spying tool)。 這個spy 工具可以記錄API 函式的運轉過程,以及它們的參數。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值