Windows内核情景分析

出版时间:2009年5月  出版社:电子工业出版社  作者:毛德操  页数:1465  
Tag标签:无  

前言

多年来,Windows垄断了中国桌面操作系统,中国学校中也开设了很多Windows课程,但令人遗憾的是,由于Windows的源代码不开放,这些课程往往只能使学生了解Windows的外特性和操作方法,却不能使学生了解和掌握Windows的内核。有人会问:难道中国人真的需要深入到操作系统的内核,去掌握它的核心技术吗?有人说:微软花了上千亿美元开发出Windows操作系统,中国人花1000元人民币就能买到,为什么还要自己去研究和开发呢?一些外国咨询公司也为中国政府支招,如麦肯锡公司在2002年所做的《中国软件产业发展战略研究报告》就主张中国不必发展操作系统,而应像印度那样,主要发展面向出口的离岸外包业务。这样的观点前些年在中国相当流行,影响了不少人。2008年10月,有一个事件震惊了中国:微软宣称将对其认为是使用盗版Windows和Office的电脑实行了“黑屏”。用户面对“黑屏”束手无策,这才意识到,自己的电脑被微软操控了!中国信息安全的软肋由此暴露无遗。事实上,在信息安全方面我国历来要求使用“自主可控”的软件和硬件,“黑屏”事件更使广大用户有了切肤之痛,认识到自主可控的重要性。现在,世界上许多国家也有了这种共识,如俄国、欧洲和拉丁美洲的一些国家都在发展基于开源软件Linux的自主操作系统。在这方面,目前中国的重大进展是起动了“核高基”重大专项,这是按照《国家中长期科学和技术发展规划纲要(2006-2020年)》所部署的,旨在发展“核心电子器件、高端通用芯片及基础软件产品”。其中的“基础软件产品”中最重要的就是操作系统。这样,持续多年的中国要不要发展自主操作系统的争议终于有了定论。通过“核高基”专项,中国有望在今后三个五年计划内实现自主操作系统的产业化,将来中国的信息系统再不会被人“黑屏”了。

内容概要

本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构、功能、算法与具体实现。全书从“内存管理”、“进程”、“进程间通信”、“设备驱动”等多个方面进行分析介绍,所有的分析都有ReactOS的源代码(以及部分由微软公开的源代码)作为依据,使读者能深入理解Windows内核的方方面面,也可以使读者的软件开发能力和水平得到提高。  本书可供大学有关专业的高年级学生和研究生用做教学参考,也可供广大的软件工程师,特别是从事系统软件研发的工程师用于工作参考或用做进修教材。

书籍目录

上册 第1章 概述   1.1 Windows操作系统发展简史   1.2 用户空间和系统空间   1.3 Windows内核   1.4 开源项目ReactOS及其代码   1.5 Windows内核函数的命名  第2章 系统调用   2.1 内核与系统调用   2.2 系统调用的内核入口KiSystemService()   2.3 系统调用的函数跳转   2.4 系统调用的返回   2.5 快速系统调用   2.6 从内核中发起系统调用  第3章 内存管理   3.1 内存区间的动态分配   3.2 页面异常   3.3 页面的换出   3.4 共享映射区(Section)   3.5 系统空间的缓冲区管理  第4章 对象管理   4.1 对象与对象目录   4.2 对象类型   4.3 句柄和句柄表   4.4 对象的创建   4.5 几个常用的内核函数   4.6 对象的访问控制   4.7 句柄的遗传和继承   4.8 系统调用NtDuplicateObject()   4.9 系统调用NtClose()  第5章 进程与线程   5.1 概述   5.2 Windows进程的用户空间   5.3 系统调用NtCreateProcess()   5.4 系统调用NtCreateThread()   5.5 Windows的可执行程序映像   5.6 Windows的进程创建和映像装入   5.7 Windows DLL的装入和连接   5.8 Windows的APC机制   5.9 Windows线程的调度和切换   5.10 线程和进程的优先级   5.11 线程本地存储TLS   5.12 进程挂靠   5.13 Windows的跨进程操作   5.14 Windows线程间的相互作用  第6章 进程间通信   6.1 概述   6.2 共享内存区(Section)   6.3 线程的等待/唤醒机制   6.4 信号量(Semaphore)   6.5 互斥门(Mutant)   6.6 事件(Event)   6.7 命名管道(Named Pipe)和信插(Mailslot)   6.8 本地过程调用(LPC)   6.9 视窗报文(Message)  第7章 视窗报文   7.1 视窗线程与Win32k扩充系统调用   7.2 视窗报文的接收   7.3 Win32k的用户空间回调机制   7.4 用户空间的外挂函数   7.5 视窗报文的发送   7.6 键盘输入线程   7.7 鼠标器输入线程   7.8 默认的报文处理  第8章 结构化异常处理   8.1 结构化异常处理的程序框架   8.2 系统空间的结构化异常处理   8.3 用户空间的结构化异常处理   8.4 软异常 下册 第9章 设备驱动  第10章 网络操作  第11章 文件操作  第12章 操作系统的安全性  第13章 注册表 第14章 系统管理进程与服务进程 跋 参考文献

章节摘录

插图:上册第2章系统调用2.1内核与系统调用对于应用程序的运行即应用进程而言,操作系统内核的作用体现在一组可以供其调用的函数,称为“系统调用(System Call)”,正是这些系统调用加上一些辅助的手段构成了应用软件的运行环境,即日常所说的“运行平台”。从应用软件的角度看,这些系统调用都是操作系统为其提供的服务,所以也称“系统服务(System Service)”。在本书中,“系统调用”与“系统服务”是可以互换的同义词。从程序运行的角度看,进程是主动的、“活性(Active)”的,是发出调用请求的一方;而内核是被动(Passive)的,只是应进程的要求而提供服务。但是,从整个系统的角度看,则内核也有活性的一面,诸多应用进程就是在内核的调度下运行,所以内核有其两面性。离开进程调度,内核就只剩下了被动的一面,那就类似于一个运行时程序库了。而系统调用即系统服务,就体现了内核被动的一面。内核活性的一面即进程调度,对于应用程序而言是无形的,其目的就在于为应用软件创造一种似乎独占着CPU的假象;相比之下内核被动的一面即系统调用则是有形的,要不然应用程序就无法调用这些服务。系统调用所提供的服务是在内核中,一般是在“系统空间”实现的,而应用软件则都在用户空间运行,二者之间有着空间的间隔,实质上是CPU运行模式的不同。所以,在应用软件与内核之间必定存在着一个明确定义的“系统调用界面”。 不过要由应用软件直接按规定的形式进行系统调用是不方便的,所以一般都要在外面包上一层,提供一套便于调用的(用户空间)库函数作为中介。在UNIX/Linux系统及后来的POSIX标准中,这就是c语言运行库的一部分。就调用的参数、返回值、作用而言,由标准C语言运行库提供的“系统调用”函数与实际的系统调用一一对应并基本相同。例如,read()是个系统调用,而用户程序引用的read()实际上是库函数,二者是对应的,并且参数的数量、类型、次序等基本相同,功能则完全相同。标准C语言运行库也提供一些建立在系统调用基础上功能有所扩充的高层库函数,例如fread0是建立在read()基础上的,但是用起来更加方便,可是那就不叫系统调用。

编辑推荐

•市面上唯一一本讲述Windows内核分析的图书。•历时三年,近1500页篇幅,毛德操老师最新力作!《Windows内核情景分析:采用开源代码ReactOS》:历时3年,近1500页篇幅,毛德操老师重磅著作

名人推荐

操作系统是最基础、最核心的计算机软件。长期处于技术垄断地位的Windows操作系统,其源程序代码是不公开的,可看成一个“黑盒子”。毛德操先生这本书,通过分析ReactOS的源程序代码,介绍了Windows操作系统内核的结构及其各种机制,使读者能深入理解Windows操作系统内核这个“黑盒子”的各个方面,这对于打破Windows的技术垄断,开发具有自主知识产权的新型操作系统,实现Windows与Linux操作系统的高度互操作,具有重大的实际价值。毛德操先生在剖析Windows、Linux等操作系统内核的结构与机制方面,走在了国际学术界的前列。  ——中国开源软件推进联盟主席 陆首群   虽然当前以Linux为代表的开源软件为中国发展自主操作系统提供了很好的支撑,但学习和借鉴Windows也有重要价值。在这个时候,毛德操先生所著的《Windows 内核情景分析》出版了,它为广大读者打开了通向Windows内核的大门。与其说本书是一部单纯的学术著作,不如说这更是一篇实践经验的总结。本书正是毛德操先生近年来领导开发“兼容内核(Unified Kernel)”项目的一篇经验总结。早在2004年毛先生就提出了开发“兼容内核”的倡议,他提出开发一个既能支持Linux应用软件运行、也能支持Windows应用软件运行的内核,这与开源项目Wine有异曲同工之妙。  ——中国工程院院士 倪光南

图书封面

图书标签Tags

评论、评分、阅读与下载


    Windows内核情景分析 PDF格式下载


用户评论 (总计66条)

 
 

  •   Windows内核情景分析这本书是采用ReactOS开源的代码进行分析,由于Windows源代码不开源,通过阅读开源的代码,对深入Windows内核研究很有价值,结合WRK,对提高Windows内核编程很有帮助。
  •   刚刚收到书,先看了前言和序,有感于毛先生的第一句话:“世上有这么一些人,这些人对于感兴趣的事物绝不满足于仅仅知其然,而非得要知其所以然才能舒服。”。这句话,足以说明毛先生治学严禁、本书内容的深度足以信任。国内操作系统类书籍很多,但是多数是在空洞的理论上泛泛而谈,缺乏代码佐证。科班的课程里面也有操作系统的课程,可惜大多数学生也只是知道“实时、信号、互斥...”这样的名称解释,考试固然足矣,可惜,他们没看过代码。况且国内软件行业大多数公司、团体和培训机构缺乏研究态度,提倡所谓的“黑盒”,不理会被封装的内部原理,只用知晓接口即可,如此以来技术人员固然可以从事开发工作,但是对自己的产品在根本上就是不甚了解的。所以,喜欢这本书的人,不会是所谓的“软件蓝领”。但是这是一本软件逆向分析者、内核开发人员、安全行业者们期待的好书。等我读完了,再来发表技术细节方面的讨论。感谢毛先生。
  •   正如作者说开发一个linux和windows互相融合的内核,使windows和linux平台的软件能完美的运行。我要努力的学习,希望加入这个伟大的工作中。
  •   本人对计算机安全领域很感兴趣,现在发现很多问题在应用层上是不可能解决的,只有深入内核,而如果你不知道Windows内核是如何工作的,内核编程是不可能的。
    这两本书很详细的解读了Windows内核是如何工作的,写的非常详细,解释的非常清楚,赞一个。
  •   作者非常踏实,严谨,用源代码来解说操作系统的原理,且文笔流畅易懂。虽然不是引用真正的Windows源代码,但对于研究Windows的某些核心机制仍然很有参考价值。个人认为比某些只说大道理而完全脱离源代码的Windows书籍更值得一看。
  •   虽然感觉不如Linux那本分析的好,但也还是非常不错的。十分受益。只是很可惜,微软在其新系统中的变化太大了。尤其是驱动这一块。



    无论如何,想深入的了解Windows的内部原理,此书必备。
  •   对windows的源码进行了较详细的剖析,对了解windows内核运行原理有很大帮助,但正因为如此,想要看下去也需要有点毅力喔~~
  •   一本非常不错的书,国人写的,对Windows内核的了解及其有帮助
  •   对于没开源的WINDOWS来说,这是最系统全面的讲解WINDOWS系统的中文书了。
  •   毛老师的书, 对于我来说实在是高深了一点.
    所以斗胆给预备买书的读者建议便是: 你最少得是中级的windows程序员~~

    否则 你会看着很吃力~

    当然, 如果是是有远见的程序员, 我想这本书绝对是得买的. 因为这是你迟早得看懂的书.
  •   很是鄙视国内出书的所谓技术“牛人”,但是借看过作者另外一本关于Linux内核的书,觉得很是用心,所以该书也得买来收藏,支持一下。
  •   很经典的书,深入学习WINDOWS必备。
  •   本书非常的好,对于了解windows非常的好。
  •   前一阵子一直研究有关windows线程调度的问题,不过是用WRK研究的。。。
  •   这本书有深度,讲得很具体。
  •   很喜欢看毛德操老师写的书,讲得很深入,不错.
  •   这本书应该一一强行记录,私下慢慢研究
  •   这本书相当的不错,写的很详细
  •   感谢!感叹!读到第2章便感觉到190元不贵;看了一晚上也没有感觉到疲惫,确实过瘾."用一件东西部不明白它的道理是十分不高明的"感谢毛先生的治学严谨,行文流畅,用词考究.............一本好书,如果这本书能再早点出来有多好.....
  •   这两本书确实写得通俗易懂,但是篇幅太大,一般人是看不过来的。建议出一个精简版,再挖挖深度,可能效果会更好。
  •   很多,很详细
  •   买回来两天了,刚看了前两章,真是废寝忘食。以前只了解理论知识,而且似懂非懂,看了源码后一切豁然开朗

    唯一的不足就是书送到的时候两本背面全都有刮痕,真不知道是怎么搞的。
  •   书是帮老公买的,内容是网上调查后才来挑的这本,应该没问题。纸张还不错
  •   还要慢慢的啃
  •   nice 过阵子再看,储备
  •   这种书籍是自己的典藏书籍,以后功力深厚的再看。
  •   运送挺快,服务挺好。
  •   没有时间看,看了一点点,个人感觉很喜欢
  •   终于拿到书了!
  •   书写的不错,希望能出window764位的就更好了
  •   刚收到书,刚看了第一章,感觉很不错,算是对本人以往所学知识的总结吧!等看完后再评论吧.另外,书的装订有点小问题,不知道看完全书后会不会散掉,呵呵!
  •   看过PDF,一直想买一套正版,可惜早就缺货了,而其他地方不是正版贵得离谱就是复印版,以为当当的缺书登记也只是摆设,但居然它真的起作用了,厚厚的两大本,正版的质量,毛SIR深入浅出的解说。。要真心感谢当当。
  •   师傅领进门,修行在个人。以前读过毛先生的Linux内核情景源代码情景分析,虽说不是面面俱到,但对初学者是绝对的有益,让人少走弯路,把主要作用,原理给指点出来了,要多细就根据个人的口味去读代码了。就是书的装订质量不佳呀,我翻了一下就开缝裂了哦。最后祝福大家能得到想要的。
  •   作者的水平值得肯定!行文非常出色。该书内容适合有一定Windows内核基础的读者,但总体来讲,在深度方面还是有所欠缺,也没有涉及到HAL的内容,对硬件方面的阐述还不够。最可惜的是,缺乏对操作系统启动方面的内容。
  •   想这类代码解读书的意义是什么呢?节约读者实验和思考的时间。这本书基本做到了这点。不过书中有些地方不实际看看源代码还是不能明白,果然还是得实践一下的
  •   是学习操作系统的好书
  •   不错,值得一看,书很厚,要花很长的时间来看啦!
  •   不知什么时候还有活动
  •   想看完比较难了,当作字典查阅的。
  •   其实没必要买的。
  •   加上国际化章节就很好
  •   操作系统是最基础、最核心的计算机软件。长期处于技术垄断地位的Windows操作系统,其源程序代码是不公开的,可看成一个“黑盒子”。毛德操先生这本书,通过分析ReactOS的源程序代码,介绍了Windows操作系统内核的结构及其各种机制,使读者能深入理解Windows操作系统内核这个“黑盒子”的各个方面,这对于打破Windows的技术垄断,开发具有自主知识产权的新型操作系统,实现Windows与Linux操作系统的高度互操作,具有重大的实际价值。毛德操先生在剖析Windows、Linux等操作系统内核的结构与机制方面,走在了国际学术界的前列。
  •   还没有看!等看完之后回给详细评论
  •   感觉有点难看不懂,只能先放着以后再看了
  •   定价太高,内容却不咋的。
  •   老子才看了2个月,就开裂了
  •   如果买了这本书就一定要认真的耐心的读一遍,以前认为理所应当的事情原来是因为这样或那样的原因;剖析内部的实现会发现不论是WINDOWS还是LINUX都是非常了不起的杰作;经常看到网上的开发人员之间争论是在WINDOWS平台上还是在LINUX,真的没有必要;底层的实现从宏观上说是相通的;谁劣谁优没有必要争论,他们的事先都是在为了实现自己的目标而做出来的,只是两者的目标和侧重点不一样而已;
  •   我是《Windows内核情景分析:采用开源代码ReactOS(上、下册)》这套书的编辑,在这里首先非常感谢大家对此书的支持与评价。 在《Windows内核情景分析——采用开源代码ReactOS》一书出版后,立刻有很多人对其给予了各种不同的评价,褒贬不一。虽然直到此刻除作者外,我大约是唯一一位从头到尾阅读本书不止一遍的人,可是我无法给出类似的评价——因为我自觉站得不够高。可是,我可以与大家分享我的一些感受。  这是怎样的一本书?看完这样一本书,我竟丝毫不觉得疲惫!虽然是一本纯技术类图书,可是从头到尾读了两遍,却丝毫没有感觉到所阐释内容的艰深。作者的行文之流畅,以及用语之通俗易懂,令我叹服。  这是怎样的一本书?虽然在校时也读过很多的书,可是关于Windows内核方面的书这却是我读过的第一本,本以为会像看天书一般痛苦煎熬,没想到竟然在轻松阅读中学到了不少知识,比如关于映像劫持等。  这是怎样的一本书?它也许不是一本Windows内核分析的圣经,但对于Windows内核研究入门来说绝对可称得上是一部佳作,可以帮助你轻松入门。  此外,还不得不提到本书的作者,他是一位极为认真的作者,认真得让我几近惭愧,他是一位谦逊的长者,对于书中的一些疏漏或者笔误毫不避讳。所谓“观文如人,观人知文”,您觉得这本书会是怎样的呢?
  •   书本身很好,但包括身边的人在内有许多人纠结于这不是基于windows的书,在大致看完的这本书之后,逐渐意识到这本书的写作目的并不是要叫我们重现windows,而是以这样一个我们最熟悉的操作系统为场景来展示操作系统的核心功能的实现原理,出于这样的目的,操作系统的内核实现的书看这本足矣,然后看书其实只需看一些本书未涉及的网络编程图形编程等等,至于Linux情景分析等等,终归大同小异,自己领悟就可以了,看多了反而浪费银两和时间。
  •   纸质可以和我去书城睇到的一样,内容写的都通俗易懂,我是一个初中毕业的人都可以睇懂!!!!!!!!!!!!
  •   虽然是基于ReactOS的一本书,但确实很接近Windows,内核中许多实现可以说和Windows一模一样.很值得购买的一本书.
  •   reactos就是reactos,是一个想要做到和windows nt完全兼容的操作系统,但并不是windows。设计思想,kernel api和windows一样,实现则完全不同(靠reverse engineering实现相同就要吃官司了)。所以,这个书名误导性比较大。书还没看,但是卓越逼我打分才可以发表评论,无语。
  •   毛老师大胆的提出很多好的比喻,让人更简单,更深刻的认识了windows内部的一些机制。。
  •   操作系统是一名真正的程序员必须了解的基础,每天所编写的代码最终都要运行在操作系统之上,如果你不了解操作系统,就会对程序的运行机制不明就里,出现问题的时候也只能隔靴挠痒,不得要领。了解操作系统的最佳方法就是去看源代码,但是如果有一本带你入门的书,那将会是事半功倍,等你了解了操作系统的面目,你再编写程序的时候将会有种左右逢源、胸有丘壑的感觉。毛德操老师的《Windows内核情景分析:采用开源代码ReactOS(上、下册)》、《Linux内核源代码情景分析(上下册)》是该领域内当之无愧的首选。这才是真正的做学问的楷模。如果能够对Linux内核源码中关于Socket网络编程再进行一次剖析,将会更加完美,不过,在你了解了其内核的关键内容之后,自己看这些代码也不是很困难了。这两套书值得一读,而且要反复地读,使自己真正了解计算机。
  •   此书整体价格不菲,但算算页码就不算太贵了,最重要的是内容很值。国内原创的东西越来越少了。 所以不管是吃Windows软件开发这碗饭的,还是研究Linux的,都值得一读,很多知识可以借荐。有人帮我们分析了,自己可以省多少时间,时间成本很重要的。
  •   买了好几年了都还没翻过,罪过罪过
  •   好书不过自己水平有限,看起来挺吃力
  •   写的比较详细,比较适合初学者,或者当做windows的内核的字典使用
  •   放放放放.......还得等技术提升一段才能看懂吧。
  •   只见数不见森林。
  •   以我目前水平,还不太能看懂,现收藏。
  •   不太懂的时候会感觉写得乱
  •   对于windows下的程序员,学习到一定程度。读它是很有益处的。但是读它之前你要清楚。他不是编程的参考手册。他不是基础课程。他是作料,他是提高一个层次的一种手段。所以如果你是来吃主食的。你选错了对象。他是提供你编程水平的营养餐
  •   很好 看了 正在学习中还是可以的哦
  •   毛德操老师出品,必属精品!
  •   还不错 配送速度比想象中快
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7