出版時(shí)間:2009年5月 出版社:電子工業(yè)出版社 作者:毛德操 頁數(shù):1465
Tag標(biāo)簽:無
前言
多年來,Windows壟斷了中國(guó)桌面操作系統(tǒng),中國(guó)學(xué)校中也開設(shè)了很多Windows課程,但令人遺憾的是,由于Windows的源代碼不開放,這些課程往往只能使學(xué)生了解Windows的外特性和操作方法,卻不能使學(xué)生了解和掌握Windows的內(nèi)核。有人會(huì)問:難道中國(guó)人真的需要深入到操作系統(tǒng)的內(nèi)核,去掌握它的核心技術(shù)嗎?有人說:微軟花了上千億美元開發(fā)出Windows操作系統(tǒng),中國(guó)人花1000元人民幣就能買到,為什么還要自己去研究和開發(fā)呢?一些外國(guó)咨詢公司也為中國(guó)政府支招,如麥肯錫公司在2002年所做的《中國(guó)軟件產(chǎn)業(yè)發(fā)展戰(zhàn)略研究報(bào)告》就主張中國(guó)不必發(fā)展操作系統(tǒng),而應(yīng)像印度那樣,主要發(fā)展面向出口的離岸外包業(yè)務(wù)。這樣的觀點(diǎn)前些年在中國(guó)相當(dāng)流行,影響了不少人。2008年10月,有一個(gè)事件震驚了中國(guó):微軟宣稱將對(duì)其認(rèn)為是使用盜版Windows和Office的電腦實(shí)行了“黑屏”。用戶面對(duì)“黑屏”束手無策,這才意識(shí)到,自己的電腦被微軟操控了!中國(guó)信息安全的軟肋由此暴露無遺。事實(shí)上,在信息安全方面我國(guó)歷來要求使用“自主可控”的軟件和硬件,“黑屏”事件更使廣大用戶有了切膚之痛,認(rèn)識(shí)到自主可控的重要性。現(xiàn)在,世界上許多國(guó)家也有了這種共識(shí),如俄國(guó)、歐洲和拉丁美洲的一些國(guó)家都在發(fā)展基于開源軟件Linux的自主操作系統(tǒng)。在這方面,目前中國(guó)的重大進(jìn)展是起動(dòng)了“核高基”重大專項(xiàng),這是按照《國(guó)家中長(zhǎng)期科學(xué)和技術(shù)發(fā)展規(guī)劃綱要(2006-2020年)》所部署的,旨在發(fā)展“核心電子器件、高端通用芯片及基礎(chǔ)軟件產(chǎn)品”。其中的“基礎(chǔ)軟件產(chǎn)品”中最重要的就是操作系統(tǒng)。這樣,持續(xù)多年的中國(guó)要不要發(fā)展自主操作系統(tǒng)的爭(zhēng)議終于有了定論。通過“核高基”專項(xiàng),中國(guó)有望在今后三個(gè)五年計(jì)劃內(nèi)實(shí)現(xiàn)自主操作系統(tǒng)的產(chǎn)業(yè)化,將來中國(guó)的信息系統(tǒng)再不會(huì)被人“黑屏”了。
內(nèi)容概要
本書通過分析ReactOS的源代碼介紹了Windows內(nèi)核各個(gè)方面的結(jié)構(gòu)、功能、算法與具體實(shí)現(xiàn)。全書從“內(nèi)存管理”、“進(jìn)程”、“進(jìn)程間通信”、“設(shè)備驅(qū)動(dòng)”等多個(gè)方面進(jìn)行分析介紹,所有的分析都有ReactOS的源代碼(以及部分由微軟公開的源代碼)作為依據(jù),使讀者能深入理解Windows內(nèi)核的方方面面,也可以使讀者的軟件開發(fā)能力和水平得到提高?! ”緯晒┐髮W(xué)有關(guān)專業(yè)的高年級(jí)學(xué)生和研究生用做教學(xué)參考,也可供廣大的軟件工程師,特別是從事系統(tǒng)軟件研發(fā)的工程師用于工作參考或用做進(jìn)修教材。
書籍目錄
上冊(cè) 第1章 概述 1.1 Windows操作系統(tǒng)發(fā)展簡(jiǎn)史 1.2 用戶空間和系統(tǒng)空間 1.3 Windows內(nèi)核 1.4 開源項(xiàng)目ReactOS及其代碼 1.5 Windows內(nèi)核函數(shù)的命名 第2章 系統(tǒng)調(diào)用 2.1 內(nèi)核與系統(tǒng)調(diào)用 2.2 系統(tǒng)調(diào)用的內(nèi)核入口KiSystemService() 2.3 系統(tǒng)調(diào)用的函數(shù)跳轉(zhuǎn) 2.4 系統(tǒng)調(diào)用的返回 2.5 快速系統(tǒng)調(diào)用 2.6 從內(nèi)核中發(fā)起系統(tǒng)調(diào)用 第3章 內(nèi)存管理 3.1 內(nèi)存區(qū)間的動(dòng)態(tài)分配 3.2 頁面異常 3.3 頁面的換出 3.4 共享映射區(qū)(Section) 3.5 系統(tǒng)空間的緩沖區(qū)管理 第4章 對(duì)象管理 4.1 對(duì)象與對(duì)象目錄 4.2 對(duì)象類型 4.3 句柄和句柄表 4.4 對(duì)象的創(chuàng)建 4.5 幾個(gè)常用的內(nèi)核函數(shù) 4.6 對(duì)象的訪問控制 4.7 句柄的遺傳和繼承 4.8 系統(tǒng)調(diào)用NtDuplicateObject() 4.9 系統(tǒng)調(diào)用NtClose() 第5章 進(jìn)程與線程 5.1 概述 5.2 Windows進(jìn)程的用戶空間 5.3 系統(tǒng)調(diào)用NtCreateProcess() 5.4 系統(tǒng)調(diào)用NtCreateThread() 5.5 Windows的可執(zhí)行程序映像 5.6 Windows的進(jìn)程創(chuàng)建和映像裝入 5.7 Windows DLL的裝入和連接 5.8 Windows的APC機(jī)制 5.9 Windows線程的調(diào)度和切換 5.10 線程和進(jìn)程的優(yōu)先級(jí) 5.11 線程本地存儲(chǔ)TLS 5.12 進(jìn)程掛靠 5.13 Windows的跨進(jìn)程操作 5.14 Windows線程間的相互作用 第6章 進(jìn)程間通信 6.1 概述 6.2 共享內(nèi)存區(qū)(Section) 6.3 線程的等待/喚醒機(jī)制 6.4 信號(hào)量(Semaphore) 6.5 互斥門(Mutant) 6.6 事件(Event) 6.7 命名管道(Named Pipe)和信插(Mailslot) 6.8 本地過程調(diào)用(LPC) 6.9 視窗報(bào)文(Message) 第7章 視窗報(bào)文 7.1 視窗線程與Win32k擴(kuò)充系統(tǒng)調(diào)用 7.2 視窗報(bào)文的接收 7.3 Win32k的用戶空間回調(diào)機(jī)制 7.4 用戶空間的外掛函數(shù) 7.5 視窗報(bào)文的發(fā)送 7.6 鍵盤輸入線程 7.7 鼠標(biāo)器輸入線程 7.8 默認(rèn)的報(bào)文處理 第8章 結(jié)構(gòu)化異常處理 8.1 結(jié)構(gòu)化異常處理的程序框架 8.2 系統(tǒng)空間的結(jié)構(gòu)化異常處理 8.3 用戶空間的結(jié)構(gòu)化異常處理 8.4 軟異常 下冊(cè) 第9章 設(shè)備驅(qū)動(dòng) 第10章 網(wǎng)絡(luò)操作 第11章 文件操作 第12章 操作系統(tǒng)的安全性 第13章 注冊(cè)表 第14章 系統(tǒng)管理進(jìn)程與服務(wù)進(jìn)程 跋 參考文獻(xiàn)
章節(jié)摘錄
插圖:上冊(cè)第2章系統(tǒng)調(diào)用2.1內(nèi)核與系統(tǒng)調(diào)用對(duì)于應(yīng)用程序的運(yùn)行即應(yīng)用進(jìn)程而言,操作系統(tǒng)內(nèi)核的作用體現(xiàn)在一組可以供其調(diào)用的函數(shù),稱為“系統(tǒng)調(diào)用(System Call)”,正是這些系統(tǒng)調(diào)用加上一些輔助的手段構(gòu)成了應(yīng)用軟件的運(yùn)行環(huán)境,即日常所說的“運(yùn)行平臺(tái)”。從應(yīng)用軟件的角度看,這些系統(tǒng)調(diào)用都是操作系統(tǒng)為其提供的服務(wù),所以也稱“系統(tǒng)服務(wù)(System Service)”。在本書中,“系統(tǒng)調(diào)用”與“系統(tǒng)服務(wù)”是可以互換的同義詞。從程序運(yùn)行的角度看,進(jìn)程是主動(dòng)的、“活性(Active)”的,是發(fā)出調(diào)用請(qǐng)求的一方;而內(nèi)核是被動(dòng)(Passive)的,只是應(yīng)進(jìn)程的要求而提供服務(wù)。但是,從整個(gè)系統(tǒng)的角度看,則內(nèi)核也有活性的一面,諸多應(yīng)用進(jìn)程就是在內(nèi)核的調(diào)度下運(yùn)行,所以內(nèi)核有其兩面性。離開進(jìn)程調(diào)度,內(nèi)核就只剩下了被動(dòng)的一面,那就類似于一個(gè)運(yùn)行時(shí)程序庫了。而系統(tǒng)調(diào)用即系統(tǒng)服務(wù),就體現(xiàn)了內(nèi)核被動(dòng)的一面。內(nèi)核活性的一面即進(jìn)程調(diào)度,對(duì)于應(yīng)用程序而言是無形的,其目的就在于為應(yīng)用軟件創(chuàng)造一種似乎獨(dú)占著CPU的假象;相比之下內(nèi)核被動(dòng)的一面即系統(tǒng)調(diào)用則是有形的,要不然應(yīng)用程序就無法調(diào)用這些服務(wù)。系統(tǒng)調(diào)用所提供的服務(wù)是在內(nèi)核中,一般是在“系統(tǒng)空間”實(shí)現(xiàn)的,而應(yīng)用軟件則都在用戶空間運(yùn)行,二者之間有著空間的間隔,實(shí)質(zhì)上是CPU運(yùn)行模式的不同。所以,在應(yīng)用軟件與內(nèi)核之間必定存在著一個(gè)明確定義的“系統(tǒng)調(diào)用界面”。 不過要由應(yīng)用軟件直接按規(guī)定的形式進(jìn)行系統(tǒng)調(diào)用是不方便的,所以一般都要在外面包上一層,提供一套便于調(diào)用的(用戶空間)庫函數(shù)作為中介。在UNIX/Linux系統(tǒng)及后來的POSIX標(biāo)準(zhǔn)中,這就是c語言運(yùn)行庫的一部分。就調(diào)用的參數(shù)、返回值、作用而言,由標(biāo)準(zhǔn)C語言運(yùn)行庫提供的“系統(tǒng)調(diào)用”函數(shù)與實(shí)際的系統(tǒng)調(diào)用一一對(duì)應(yīng)并基本相同。例如,read()是個(gè)系統(tǒng)調(diào)用,而用戶程序引用的read()實(shí)際上是庫函數(shù),二者是對(duì)應(yīng)的,并且參數(shù)的數(shù)量、類型、次序等基本相同,功能則完全相同。標(biāo)準(zhǔn)C語言運(yùn)行庫也提供一些建立在系統(tǒng)調(diào)用基礎(chǔ)上功能有所擴(kuò)充的高層庫函數(shù),例如fread0是建立在read()基礎(chǔ)上的,但是用起來更加方便,可是那就不叫系統(tǒng)調(diào)用。
編輯推薦
?市面上唯一一本講述Windows內(nèi)核分析的圖書。?歷時(shí)三年,近1500頁篇幅,毛德操老師最新力作!《Windows內(nèi)核情景分析:采用開源代碼ReactOS》:歷時(shí)3年,近1500頁篇幅,毛德操老師重磅著作
名人推薦
操作系統(tǒng)是最基礎(chǔ)、最核心的計(jì)算機(jī)軟件。長(zhǎng)期處于技術(shù)壟斷地位的Windows操作系統(tǒng),其源程序代碼是不公開的,可看成一個(gè)“黑盒子”。毛德操先生這本書,通過分析ReactOS的源程序代碼,介紹了Windows操作系統(tǒng)內(nèi)核的結(jié)構(gòu)及其各種機(jī)制,使讀者能深入理解Windows操作系統(tǒng)內(nèi)核這個(gè)“黑盒子”的各個(gè)方面,這對(duì)于打破Windows的技術(shù)壟斷,開發(fā)具有自主知識(shí)產(chǎn)權(quán)的新型操作系統(tǒng),實(shí)現(xiàn)Windows與Linux操作系統(tǒng)的高度互操作,具有重大的實(shí)際價(jià)值。毛德操先生在剖析Windows、Linux等操作系統(tǒng)內(nèi)核的結(jié)構(gòu)與機(jī)制方面,走在了國(guó)際學(xué)術(shù)界的前列?! 袊?guó)開源軟件推進(jìn)聯(lián)盟主席 陸首群 雖然當(dāng)前以Linux為代表的開源軟件為中國(guó)發(fā)展自主操作系統(tǒng)提供了很好的支撐,但學(xué)習(xí)和借鑒Windows也有重要價(jià)值。在這個(gè)時(shí)候,毛德操先生所著的《Windows 內(nèi)核情景分析》出版了,它為廣大讀者打開了通向Windows內(nèi)核的大門。與其說本書是一部單純的學(xué)術(shù)著作,不如說這更是一篇實(shí)踐經(jīng)驗(yàn)的總結(jié)。本書正是毛德操先生近年來領(lǐng)導(dǎo)開發(fā)“兼容內(nèi)核(Unified Kernel)”項(xiàng)目的一篇經(jīng)驗(yàn)總結(jié)。早在2004年毛先生就提出了開發(fā)“兼容內(nèi)核”的倡議,他提出開發(fā)一個(gè)既能支持Linux應(yīng)用軟件運(yùn)行、也能支持Windows應(yīng)用軟件運(yùn)行的內(nèi)核,這與開源項(xiàng)目Wine有異曲同工之妙?! 袊?guó)工程院院士 倪光南
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載