看流星社区

 找回密码
 注册账号
查看: 36084|回复: 107

Windows内核情景分析 上下册 高清 完整PDF 【115】

[复制链接]

该用户从未签到

发表于 2012-2-22 15:29:53 | 显示全部楼层 |阅读模式
世上有这么一些人,这些人对于感兴趣的事物绝不满足于仅仅知其然,而非得要知其所以然才能舒服。这些人里面,如果感兴趣的是计算机操作系统、特别是Windows操作系统,那么从这本书里应该能获得对于许多问题的答案。其实,笔者本人也是这个人群中的一员,笔者阅读、分析过Linux内核的源代码,自然就也很想读一下Windows内核的源代码,把Windows内核搞搞清楚。以笔者之见,对于像操作系统内核这么复杂的软件,想要搞搞清楚,就非得要深入到程序代码中去不可。事实上,笔者有这个愿望已经很多年了,可是Windows内核的代码是不公开的,即便是退而求其次,要找一些深入介绍Windows内核的书籍,也是寥寥无几,而且看了以后也往往不得要领,觉得实在是语焉不详甚至模棱两可。确实,与程序代码相比,任何自然语言都只能说是模糊而不确切的。幸而现在有了ReactOS这个开源项目,这个项目的目标是要研发出一个开源的Windows内核。该项目的参与者们想必对Windows内核下了很深的功夫,在代码中极力模仿Windows,力求忠实于Windows,然而却又是自己的实现。读着ReactOS的代码,笔者常常回想起一些著作中的有关章节或片段,以前看的时候只好不求甚解,现在看到代码才真的明白了。由此又生出感慨,对于操作系统内核这么复杂的软件,是一定要结合具体的代码(哪怕只是用来描述算法的伪代码)才能说清楚的。把内核的代码封锁起来不让人研究,实际上是对于人类的“知的权利”的蔑视。而对于ReactOS代码的作者们,笔者则一来是感激,二来是佩服和尊敬,进而觉得应该把自己的理解和体会写出来与读者分享。本书所引的代码基本上都出自ReactOS的0.3.3版,读者可以自行下载一份代码,结合本书加以阅读。

  与ReactOS密切相关的另一个开源项目是Wine,这个项目的宗旨是在Linux内核的外面做上一个适配层,由一个服务进程和一些动态连接库相结合构成的适配层,使得Windows应用软件的二进制代码可以直接(不经过移植和重新编译就)在Linux内核上运行。一言以蔽之,就是“核内差异核外补”。Windows应用软件本来是要在Windows内核上运行的,而Windows内核与Linux内核显然有着不小的差异,Wine的目的就是在核外(用户空间)加以补偿和虚拟,使Windows应用软件得以在Linux内核上运行。在某种意义上,这甚至比ReactOS要做的更难,因为这是要在一个不同的基础上、不同的环境中重构一个虚拟的Windows内核,没有对于Windows内核的真正深刻的理解,这显然是不可能的。笔者曾听到(看到)一些对ReactOS有所怀疑的说法,说是ReactOS的人怎么能对Windows内核理解得那么深刻?是不是他们拿到了Windows内核的源代码,而只是在依样重画一遍葫芦?Wine的存在和成功(也许是部分的成功)正好回答了这个问题,正好可以作为佐证。要说对于Windows内核的理解,Wine的作者们丝毫不比ReactOS的作者们差,而Wine的代码与Windows内核却相去甚远、泾渭分明。既然Wine可以一行行代码从头写来,ReactOS又有何不可?

  不过,笔者以为,与其研发一个开源的Windows内核,还不如把Linux内核改造成一个“兼容内核(Unified Kernel)”,一个既能支持Linux应用软件运行,也能支持Windows应用软件运行的内核。这对于Linux操作系统的普及有着莫大的好处。因为许多用户已经习惯了Windows操作系统和Windows应用软件的使用,要使这些用户改用Linux操作系统,就得为其提供一种平滑过渡的方案,最重要的是使用户可以继续使用那些已经在上面投入了种种资源,也已经习惯了的Windows应用软件。虽然Wine在功能上也能起到相似或者基本相同的作用,但是在核外通过服务进程补偿内核差异的做法难免带来性能的下降,要避免性能的下降,就得在内核中补偿内核的差异。笔者的这个主张得到了浙大网新科技股份有限公司的支持,并为此组建了一个研发兼容内核的团队,后来还得到了国家发改委和浙江省科技厅的项目支持。作为一个开源项目,兼容内核的开发目前正在进行之中。笔者由衷地感谢浙大网新科技股份有限公司的支持。此外,无论是兼容内核的开发还是本书的写作,笔者都得到了中国开源软件促进会陆首群主席和倪光南院士的鼓励和支持,在此一并致谢。

  所以,驱使笔者写作本书的动力不仅仅是对Windows内核的研究和介绍,更多地还来自开发兼容内核的需要。从某种意义上说,本书是兼容内核项目的副产品;如果没有兼容内核项目,恐怕就不会有这本书。事实上,起初电子工业出版社向笔者约稿时,笔者的打算是写一本五六百页的Windows与Linux的比较研究。可是,开始写了以后就觉得不妥,因为既然有了“Linux内核源代码情景分析”,就不宜再重复那本书中写过的内容,而应该把篇幅都集中在Windows上。另一方面,更为重要的是,参加兼容内核研发的人对于Linux内核都是比较了解的,而对于Windows内核则往往所知甚少,因而迫切需要有一本对于Windows内核的情景分析。于是本书的写作计划一改再改,篇幅愈来愈大,时间愈拖愈长,最后历时三年才完成了本书的写作,而篇幅已经达到了一千多页。为此,笔者要特别感谢电子工业出版社的朱沭红、白涛两位编辑,感谢她(他)们的耐心和热情,更感谢她(他)们对本书的精心编辑。

下载地址

游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1流星币 +1 收起 理由
18814384577 + 1

查看全部评分

该用户从未签到

发表于 2012-2-22 19:23:19 | 显示全部楼层
第二个下不了请亲重新上传一下

该用户从未签到

发表于 2012-3-9 20:39:24 | 显示全部楼层
非常感谢楼主的分享精神!!!!

该用户从未签到

发表于 2012-3-9 23:08:12 | 显示全部楼层
回复 1# zsqin


    来学习驱动的

该用户从未签到

发表于 2012-3-11 22:13:01 | 显示全部楼层
非常感谢楼主的分享精神!!!!

该用户从未签到

发表于 2012-5-10 12:01:13 | 显示全部楼层
非常感谢楼主的分享精神!!!!

该用户从未签到

发表于 2012-5-15 22:07:56 | 显示全部楼层
支持一下楼主。

该用户从未签到

发表于 2012-5-20 16:49:32 | 显示全部楼层
非常感谢楼主的分享精神!!!!

该用户从未签到

发表于 2012-6-2 20:28:47 | 显示全部楼层
非常感谢楼主的分享精神!!!!

该用户从未签到

发表于 2012-12-20 14:34:37 | 显示全部楼层
回复 1# zsqin


    tjgjhhghjhgjhjggh回复 1# zsqin


    tjgjhhghjhgjhjggh
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-29 02:09

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表