NT的设计文档
开发软件应该写文档么?如果是应该写成什么样?是拿个template然后填充些不痛不痒的废话么?
先看一下下面这幅图:
这是NT团队开发NT时使用的文档。仔细看那个标签,NT OS/2 Design Workbook。我首先留下深刻印象的是Workbook这个名字,非常的平实,工作手册——帮助设计的手册,备忘和方便查阅。而后,对于这个厚度,有人可能吃惊有这么厚!对于NT这样复杂的系统,这么厚应该都是非常精练的语言了。如果像今天的很多文档那样,翻了几页还没看到正文,那么不知要有这样的多少册。
再看看它到底包含那些内容吧?
每个标签应该标注着NT某个组件的名字,但是似乎看不清,那就看一下下面的目录吧(来自Dave Probert关于WRK的介绍)。
上面的每一行都值得认真端详一下,第一列是文件名,也是对应的NT组件的代号,比如ob是对象管理器的代号,内核中的所有对象有关函数也是以这两个字符开头的。第二列是文档的完整标题,第三列是作者的名字。Cutler是NT团队的领队,被称为NT内核之父。Lou Perazzoli内存管理器的主要设计者,在开发Windows 2000时,也就是在Windows NT内幕第二版的前言中,他署名的title是Windows NT核心操作系统主管。在Showstopper一书中,他被喻为缓解Cutler之“盐”的“糖”。
Gary Kimura是NTFS文件系统的主要设计者之一。Darryl Havens是IO系统的主要设计者,他也是NT团队中年龄较大的一个,开发Vista时,他被返聘回微软。差点忘了Mark Lucovsky,他是Win32 API的主要设计者,有人说Windows的成功是因为它的API,很多开发者学会了这套API,使用它开发出太多的应用......另外,Mark还是用户态调试模型和内核调试引擎的主要设计者。Mark目前在Google。
下图是第二部分:
第四行中的Helen Cutler是NT团队技术作家(Technical Writer),她是经典的Windows内幕一书的第一版的作者。
以上目录来自Dave Probert关于WRK(Windows Research Kernel)的介绍,这些文档也包含在WRK中,很多人认为这也是WRK中最有价值的一个部分。是啊,删减过的源代码对于大多数人来说都是摆设。阅读一下这些文档,也许能领悟到更多珍贵的东西。