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