开篇
一直就想开一个技术博客,但是总是想不到从哪写起。从大二开始,我就接触各种各样的项目,写过大大小小的软件,带界面的、不带界面的,单机的、分布式的,手机上的、服务器上的,Windows的、Linux的,使用了各种各样的技术,踩过各种各样的坑,但是都没有把它们记录下来,这些经历有些能化成简历上的一条项目经历,有些就随着时间消逝了,后来想想多少有点可惜。我可以找各种各样的借口,但是最后都归结为一条——懒,现在的人喜欢叫拖延症。
从接触编程开始,我就一直对大型的软件架构很感兴趣,我一贯不赞同所谓快猛糙的软件开发方法,你可以敏捷,但也要保证质量和可扩展性,不择手段地实现一些丑陋的功能只是杀鸡取卵,这样不能建成软件的大厦。我加入微软写Windows,这也是其中的一条原因吧。不是每个人都有幸能看到这个人类迄今为止最大规模的软件之一的源码,虽然也不是每个人都稀罕。但是起码我自己感觉在这个极其庞大的系统中工作,了解它的运作原理,以及亲身经过它的开发、构建、测试、发布,本身是一件挺有趣的事。
这段时间刚好是stablization阶段,事情不是太多,就从公司图书馆借了一本书,Windows Internals (7th),中文译名叫深入解析Windows操作系统,目前中文译版只出到第六版。在借出成功过去一个星期后,我问图书馆我的书怎么还没有收到,图书馆说你借的书正在从美国寄过来的路上,下个星期就能到了。我顿时感叹,我司的图书馆好良心啊!于是觉得这么借来的书,不仔细看看好像对不起它长途跋涉的旅程。何奈这本书跟Windows本身一样巨厚,估计看过的东西很难记下来,就趁此机会开这个博客,把读书心得记录于此。
关于这本书
Windows Internals, Part 1: System architecture, processes, threads, memory management, and more, 7th Edition
By Pavel Yosifovich, Alex Ionescu, Mark E. Russinovich, David A. Solomon
https://www.microsoftpressstore.com/store/windows-internals-part-1-system-architecture-processes-9780735684188
目前Part 2还没有正式出版。
以下是这本书之前的版本历史以及其对应描述的Windows版本:
年代 | 版本 | 名称 | Windows版本 |
---|---|---|---|
1992 | 1 | Inside Windows NT | Windows NT 3.1 |
1998 | 2 | Inside Windows NT, Second Edition | Windows NT 4.0 |
2000 | 3 | Inside Windows 2000, Third Edition | Windows 2000 |
2004 | 4 | Windows Internals, Fourth Edition | Windows XP, Windows Server 2003 |
2009 | 5 | Windows Internals, Fifth Edition | Windows Vista, Windows Server 2008 |
2012 | 6 | Windows Internals, Sixth Edition | Windows 7, Windows Server 2008 R2 |
2017 | 7 | Windows Internals, Seventh Edition | Windows 10, Windows Server 2016 |
从这个列表以及书的版本更替多少也能看出来Windows在哪个版本经历了大的架构改变。
这本书讲的是Windows的运作原理,并不是面向使用者和应用开发者去描述如何去使用Windows或如何在Windows平台上开发应用。我应该是这本书更适合的受众之一,它上面讲到的每一个技术点我甚至都能直接从Windows源码中找到对应。因此我会尽可能地结合我工作的经历和内容,把我的理解写下来。但是受限于我的技术水平和知识储备,会有很多地方理解不到位或者有误,希望读者能包容并提醒我改正。
这本书目前的借期是3个月,我也没有雄心壮志3个月一定读完。但是前两章一定会仔细读完,在这里写下心得,以此为证。