世上有那么一些人,那些人对于感兴趣的事物绝不满足于仅仅知其然,而非得要知其所以然能够舒服。那些人上面,假如感兴趣的是计算机操作系统、特别是Windows操作系统,这么从这本书里应当能获得对于许多问题的答案。虽然,笔者本人也是这个人群中的一员,笔者阅读、分析过Linux内核的源代码,自然就也很想读一下Windows内核的源代码,把Windows内核搞搞清楚。以笔者之见red hat linux下载,对于像操作系统内核如此复杂的软件,想要搞搞清楚,就非得要深入到程序代码中去不可。事实上,笔者有这个心愿早已好多年了,但是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内核改导致一个“兼容内核(UnifiedKernel)”,一个既能支持Linux应用软件运行,也能支持Windows应用软件运行的内核。这对于Linux操作系统的普及有着莫大的用处。由于许多用户早已习惯了Windows操作系统和Windows应用软件的使用,要使那些用户改用Linux操作系统,就得为其提供一种平滑过渡的方案,最重要的是使用户可以继续使用这些早已在里面投入了种种资源,也早已习惯了的Windows应用软件。其实Wine在功能上也能起到相像或则基本相同的作用,并且在核外通过服务进程补偿内核差别的做法难免带来性能的增长,要防止性能的增长,就得在内核中补偿内核的差别。笔者的这个主张得到了复旦网新科技股份有限公司的支持,并因此成立了一个研制兼容内核的团队,后来还得到了国家发改委和江西省科技厅的项目支持。作为一个开源项目linux桌面,兼容内核的开发目前正在进行之中。笔者衷心地谢谢复旦网新科技股份有限公司的支持。据悉,无论是兼容内核的开发还是本书的写作,笔者都得到了中国开源软件推动会陆首群主席和倪光南教授的鼓励和支持,在此一并致谢。
所以linux内核源代码情景分析 下册,驱使笔者写作本书的动力不仅仅是对Windows内核的研究和介绍,更多地还来自开发兼容内核的须要。从某种意义上说,本书是兼容内核项目的副产品;假如没有兼容内核项目,估计就不会有这本书。事实上,原本电子工业出版社向笔者征稿时,笔者的准备是写一本五六百页的Windows与Linux的比较研究。而且,开始写了之后就认为不妥,由于既然有了“Linux内核源代码情境剖析”,就不宜再重复那本书中写过的内容,而应当把篇幅都集中在Windows上。另一方面,更为重要的是,出席兼容内核研制的人对于Linux内核都是比较了解的linux内核源代码情景分析 下册,而对于Windows内核则常常所知极少,因此急切须要有一本对于Windows内核的情境剖析。于是本书的写作计划一改再改,篇幅愈来愈大,时间愈拖愈长,最后长达两年才完成了本书的写作,而篇幅已然达到了一千多页。因此,笔者要非常谢谢电子工业出版社的朱沭红、白涛两位编辑,谢谢她(他)们的耐心和热情,更谢谢她(他)们对本书的悉心编辑。
下载地址
旅客,假若您要查看本帖隐藏内容请回复
感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享感谢分享谢谢分享感谢分享感谢分享感谢分享感谢分享
文章评论