窥视 DOS 和 Windows 的隐私

>>>  名人論史——近當代作家的史學觀點  >>> 簡體     傳統

发表日期 : 1993.03

如果你要语出惊人,
一定要有惊人的证据。

电脑界有一个人专门挖一些不为人知的资料,
此人大名鼎鼎并极受推崇,
他就是 Undocumented DOS 以及 Undocumented Windows 的作者
Andrew Schulman。

现在我们就来看看这个人
以及这两本享誉软体界的书籍。


有一种小道媒体,专门窥人隐私,扬恶隐善,唯恐天下不乱,无所不用其极。这种媒体我们称之为「扒粪媒体」(啧啧! 好恶心)。这在英国很多,不少人靠此维生,甚至以此致富 (拍摄佛度王妃上空裸照的人酬劳每张以七位数计,视精采程度而定。不要问我怎麽知道的,不告诉你)。扒粪媒体的存在有什麽值得奇怪的呢 ? 你我不都是它的读者 (或希望私下成为它的读者) 吗 ? 吃饱了饭没事干窥人隐私、茶馀饭後嚼舌根论人长短真是人生最快乐的事,万物之灵就是还存留着这麽一丁点儿劣根性。扒粪媒体国内也有,报导的东西当然称得上是垃圾,垃圾人人讨厌,制造垃圾的人也不会受人尊敬 (注一)。

然而在电脑界也有一个人专门挖一些不为人知的资料,此人大名鼎鼎并极受推崇,他就是 Undocumented DOS 以及 Undocumented Windows 的作者 : Andrew Schulman。这一期我们就来看看这个人以及这两本享誉软体界的书籍。

在台湾也许知道 DOS Extender 这种产品的人并不太多。要发展 DOS Extender 这种产品,必须获得许多 DOS 内部的、保留的、不为外人知的资料。因此如果说发展 DOS Extender 的人拥有许多未公开的 DOS 秘密,我想你一定不会太惊讶。如果你是少数 DOS Extender 使用者中的一位,一定知道 DOS Extender 最有名的厂商之一,Phar Lap 公司。而 Andrew Schulman --- Undocumented DOS 一书的作者 --- 正是 Phar Lap 的工程师。

Andrew Schulman 在着名期刊上发表过许多非常好的文章。我最喜欢看他的作品,因为他的研究领域和我自己的很近。你在 Dr. Dobb's Journal、PC Magazine、Microsoft Systems Journal 上不时可以看到 Schulman 才情横溢的小品。他似乎是 Addison Wesley 出版公司的专属作家,目前 Addison Wesley 就有一个The Andrew Schulman Programming Series 系列书籍。我想这是不管文学类或非文学类每一位作家最大的梦想吧。高阳着作等身,也不过在临终前才推出高阳作品集,而且还来不及等到出版他人就去了。

注一 本文完成之後,我在报纸上看到英国小报对其王储与王妃穷凶恶极的丑闻报导。怎麽样,看得很过瘾吧 ? 至少我佩服的一点是,他们的私家侦探肯花时间花金钱想办法取一些颇具真实意义的证据取信於读者 (照片啦,录音带啦),国内的扒粪媒体大概只要编辑一支笔一杯咖啡,在房间里瞎掰两个小时就 OK 了。

Images/JJhou/carton-secrets.jpg (14772 bytes)

唔,你是说,真的有什麽
惊人的内幕消息吗?

背景资料 :
书名 Undocumented DOS
作者 Andrew Schulman, Raymond J. Michels, Jim Kyle
Tim Paterson, David Maxey, Ralf Brown
出版 Addison Wesley
页数 8 章,694 页
售价 US$ 44.95
磁片 Yes

1. Regarding the Use of Undocumented DOS
2. Programming for Documented and Undocumented DOS : A Comparison
3. MS-DOS Resource Management : Memory, Processes, Devices
4. The DOS File System and Network Redirector
5. Memory Resident Software : Pop-ups and Multitasking
6. Command Interpreters
7. The MS-DOS Debugger Interface
8. INTRSPY : A Program for Exploring DOS

undocdos.jpg (21546 bytes)


这本书鼎鼎有名,在此之前并没有类似书籍。汽车界每年有一个"Car of the Year" 选拨,推选年度风云汽车;本书也一再荣获各界书评的赞美,誉为 "DOS Book of the Year"。以产品评论极为着称的 PC Magazine 杂志对此书评价极高,它说每一年只有少数一两本书是真正有价值、对我们有经常性助益的好书,Undocumented DOS 就是其中之一。它又说 DOS 领域的严谨工作者每一个人都应该拥有一本。

其实市面上也并不是没有流传这些未公开资料,作者在前言提到他为什麽写此书时,也说从 PC Magazine、Dr. Dobb's Journal、Programmer's Journal...、以及电子布告栏、线上研讨会获得成堆成叠的 Undocumented DOS 资料。问题是,没有人把它们加以整理、测试、组织化。现在经过有心人的整理,垃圾瞬间就变成黄金了 (这本书是卖座最佳的 DOS 书籍)。所以我常常劝我在工研院的老朋友,国际网路上抓下来的那堆宝贝就赶快整理整理,造福世人吧。再不然分类一下去开个 BBS,自任站长,自销 shareware 软体,也有赚头。老凌,听到没有 ? (卖 shareware 合不合法 ? 呵呵呵,只要你用「工本费」这个名义就不犯法。呵呵呵 !)

这本书其实并不是 Andrew Schulman 的单人着作,他只是挂头牌而已。可是想必你知道,论文发表时挂头牌与挂二副 (乃至三副) 者的积分点数可是大大不同哟。由於名气大,所以大家提到这本书都说「Schulman 的那本 Undocumented DOS」,这好像我在本专栏第一期介绍的 Peter Norton 和 Paul Yao 合着的Windows 3.0 : Power Programming Techniques,人家也都是说「"Norton 的那本书」,事实上许多高级技巧都出自 Yao 之手,真为他叫屈。不过这也没什麽好争的,等你熬出头来,该是你的也跑不到人家头上。Undocumented DOS 一共有六位作者,全都是小有来头的人物,他们有的是叁与 DOS 发展计划的工程师,有的是知名电脑期刊的作者。

到底你能够从这本书中获得什麽呢 ? 首先掂掂自己的份量。你必须熟悉 C 语言以及组合语言。懂得组合语言的程式员已被我归为稀有族类。你的实际工作或许不需要以组合语言解决,但即使不会写,顶好还是看得懂这个低阶语言,因为许多重量级作家在期刊上发表技术时都还以组合语言设计范例。你有没有碰过那种坚持要用软须膏、刮胡刀片、古龙水刮胡子的男人 (私底下他也承认电动胡刀方便) ? 说是比较有...呃...这个...比较有古典的味道。本书读者的第二个条件是,必须熟悉 IBM PC 上的程式写作,否则你适合看 Documented DOS 不适合看Undocumented DOS。

有了这两个基本条件,看看本书为你准备的海陆大餐 :

■ MCB : Memory Control Block,记忆体控制区段。不知道此资料结构就不能够了解DOS 如何串接记忆体区块,因此想在程式中使用 UMB 也就比较困难一点。

■ PSP : Program Segment Prefix,程式段前置区。不动此结构的话你不可能让一个程式的可开档个数突破 20 个。这个结构可以管理行程 (process),多工环境如 DESQView、Windows 都会处理每一个 process 的 PSP 结构。

■ List of Lists : 几乎控制所有未公开结构的起始位置。擒贼擒王,先看这个。从这里你可以获得第一个 MCB 的位址,第一个 SFT 的位址,也可以得到最後一个磁碟机的代码。

■ SFT : System Files Table,系统档案表格。了解它你才知道 CONFIG.SYS 中的FILES 到底设定些什麽东东。最多可以设定 255 个档案 handles。

■ CDS : Current Directory Structure。每一个逻辑磁碟都有一个 CDS,如果你的LASTDRIVE=Z,你就有 26 个 CDS。这个结构在 DOS 的扩充档案系统(如 CD-ROM) 中扮演重要角色。

另外还有 JFT、DPB、FCB 等等结构。本书附有相当多的范例,小小的,不难看。

依我原先的想像,像 Undocumented DOS 这样的书籍对发展一般应用软体的程式员应该是没有什麽吸引力的 (除非他个人喜欢追求技术,不单是为了工作)。因为应用软体力求稳健,恐怕对采用未公开函式没有太大的信心。但是实际的情况是,工具软体如 PC Tools、Norton Utility,或系统软体如 DOS Extender、Multitasking Kernel 都需要相当多的武林秘诀,对这些软体而言 DOS 内部未公开的资讯就显得相当重要。本书磁片附有一个 INTRSPY 程式,可以侦测任何被呼叫的DOS 未公开函式,你会发现呼叫未公开函式的软体竟是如此之多。因此这些未公开的 API 函式似乎又没有想像中那麽不稳定。这也是作者在书中一再若有若无地向你推荐 Undocumented DOS 的理由,他说 :

■ If Quarterdeck can do it, so can you.
(Quarterdeck 是记忆体管理工具的知名厂商,其产品 QEMM386 永远是美国软体销售排行榜上的前五名,我很少看它掉下来过)。

■ When popular applications use undocumented DOS, it's ultimately Microsoft that is inconveniented not the application's developers.

■ Should the DOS List of Lists be changed radically, not only will our own programs start to fail but practically all important Microsoft software will break too.

摆明了要死大家一起死,天塌下来有高个儿顶着的态度。

但是有没有想过,你并不像那些大公司一样可以直通 Microsoft 後门,你并没有获得他们的认可,因此你不会在 MS-DOS 内部结构改变时获得他们的通知。这是很现实的问题,他不认为你够与他等量齐观的话就不会请你吃晚餐。你必须在新的 DOS 问世之後,新的像 Undocumented DOS 这样的书籍也问世之後,才开始修改你的软体。那时候你的客户已经因为你的产品竟不能与新版 DOS 相容以及因为不耐烦你的迟迟不能够更新,而对你莎唷娜啦了。这是我最不能够同意Schulman 的一点,重要的不在安全性,而在未来性,以及即时性。

本书的另一个卖点是人类无可救药的好奇心 : DOS 大家已经摸的烂熟,几根死人骨头都一清二楚,如果我能够比其他人多知道一点,岂不是一件很爽的事吗 ? 如果我还能够为人之所不能为,那更是饮刀成一快,不负少年头。利用DOS 未公开函式所完成的功能,有时候确实比较能带给使用者便利。QEMM 的 BUFFERS.COM 以及 FILES.COM 都是利用这些未公开的 DOS 呼叫,动态改变 DOS 的 buffer 个数和 SFT 大小,不必要求重新开机。

以技术面来讲本书当然是绝对的无庸置疑,但是如果以侯捷的阅读习惯,本书枯燥的很。我并不期望书中冒出一个漫画机器人拿一杯茶告诉你「休息是为了走更远的路」,也不期望看到一些啼笑皆非的小学生水准的插图。然而好歹有个什麽图表吧,本书全部都是文字,令人望之生畏 (我真的没有打诳语,真的一张图都没有),读本书你必须很有耐性,每 50 分钟休息 10 分钟,免得眼花了打起瞌睡,对不起 Schulman 的苦心。

说到漫画,我个人由衷喜爱 Programmer's Journal (PJ) 上的插图。观其插图,知其杂志水准也。那麽切题的插画,要不是画家本身是技术高手,可以从文字中咀嚼出灵感 (这个可能性小一点),就是作者与画家不断沟通後的脑力激荡结果 (这个可能性大一点)。我好向往有这样的人为我画插图。本文後面我附了三两张 PJ 的插图给大家欣赏。

carton-pj1.jpg (17606 bytes)

carton-pj2.jpg (11717 bytes)

carton-pj3.jpg (14538 bytes)



作者说书中所有程式都在 DOS 第二、三、四版,以及一个他们还不能明讲,但是很快会与读者见面的版本中测试过。可是又在封面以鲜艳的黄色标出 DOS 5.0,这好像有点掩耳盗铃,又有点欲盖弭彰。然而既祭出 DOS 5.0 的大 ,附录的Undocumented DOS Functions 在介绍重要的资料结构 (例如 List of Lists) 时又没有列出 5.0 环境下的改变 (即使没有改变,也应该要说明)。所以这些东西在DOS 5.0 的情况就有点令人忐忑不安。

本书已有 2nd Edition 的广告,出版时间应该就在最近,目前国内市场还没有看到其踪迹。

背景资料 :
书名 Undocumented Windows
作者 Andrew Schulman, David Maxey, Matt Pietrek
出版 Addison Wesley
页数 10 章,715 页
售价 US$ 39.95
磁片 Yes

1. This Was Not Supposed to Happen
2. Examing Windows Executables
3. Disassembling Windows
4. Tools for Exploring Windows
5. KERNEL : Windows System Services
6. USER : Microsoft Windows User Interface
7. Undocumented Windows Messages
8. GDI
9. System
10. ToolHelp

undoc-windows.jpg (21009 bytes)


Andrew Schulman 自从写了 Undocumented DOS 一书声誉鹊起,奠下不朽基业後,再接再励写下 Undocumented Windows 一书。目前 Addison Wesley 有一系列书籍就叫作 The Andrew Schulman Programming Series,人红到这个田地真不容易。所以国内出版社诸位老板请好好培养几位有技术、有文采的作家,不会亏本的。那种年产量以打计的作者,书的内容如何 ? 手上不时有三十本书排队等候制作的编辑,书籍制作品质又如何 ? (此言一出得罪多少人 ? 其实侯捷是五十步笑百步,巴不得一年出它个 365 本)。

原本我对此书的兴趣并不高。虽然我对 Windows 是死忠拥护 (不快点表态的人恐怕再过三两年你会死得很惨,饿死的),但 Windows SDK 的近千个函式已经够呛人的了,K 不完白了少年头,哪还有时间看这什麽 Undocumented Windows !! 而且 Windows 是保护模式环境,也不允许你用什麽绝招秘步在系统里面挖宝探险。但是,我错了,这本书着实有看头。

想学点绝招现买现卖立刻用到自己软体上的人可能会失望。搞清楚,本书名叫Undocumented Windows 而不是 Undocumented Windows API。虽然它对超过 250 个未公开函式都有描述,然而有一半的篇幅是在介绍如何以各种工具窥视 Windows 系统,帮助我们了解什麽是 Module、什麽是 Task、什麽是 Instance。而这三者是KERNEL 模组中最重要的成份。当然它也对 GDI 模组和 USER 模组开膛剖腹一番。

书里附了许多软体工具的侦测报告。Schulman 使用的工具有 :

■ Windows SDK 的 Heap Walker : 可用来看记忆体的状况。

■ NuMega Tech. 公司的 SoftICE : 这是个完整的除错工具,威力强大。

■ Phar Lap 公司的 MAPWIN : 可以看 EXE 或 DLL 呼叫了哪些 API。如果你拿到一个很有趣或是很匪夷所思的软体,不妨以 MAPWIN 看看它到底呼叫了何方神圣。

■ 作者自己发展的程式如 EXEDUMP、EXEUTIL...。

这些程式有的是 Phar Lap 公司的正式出品 (挂有 Phar Lap 版权者)。Phar Lap 做这类工具软体真是轻而易举,别忘记了他们是 DOS Extender 的着名厂商。

从第四章开始,作者公开了许多他的私房,把原始码都附上,也附在磁片中。他说本来不想放那些原始码的,因为磁片空间不足。後来他想到了 PKZIP 和 PKUNZIP (我们真该感谢这些压缩程式的发明,阿们!)。这些程式如果都以 Windows 程式写法来完成,本书至少 3000 页 (有谁看过 3000 页的书籍没? 我没有!)。Schulman 有一招绝妙方法,他把 WinMain()、MainWndProc()、message-loop 等等等都包装在特制函式中,让 Windows 程式维持一般 DOS 程式那样的写法,於是你可以写这样 :

#include "windows.h"
#include "winio.h"

main()
{
printf("hello world! \n");
}


看起来根本就是个 DOS 程式嘛,不过它却能享受 Windows 环境的好处,例如可以放在视窗中,可以放大可缩小,还可以加上下拉式功能表。关键在於它联结WINIO 函式库,那是 Andrew Schulman 和 David Maxey 的精心杰作。为什麽不用Microsoft 的 QuickWin 或 Borland 的 EasyWin 呢 ? 因为那做出来的都不是真正可以享受 Windows 特徵的应用程式。

这项技术 (WINIO) 曾经在 MSJ 上分两次发表,一是 Call Standard C I/O Functions from Your Windows Code Using the WINIO Library (MSJ, 1991/07),一是 Porting DOS Programs to Protected-Mode Windows with the WINDOS Library (MSJ,1991/09)。这两篇文章讲述如何让 DOS 的程式风格在 Windows 中存留下来。如果以 Schulman 这个想法来看,能把 WINIO 发展完全的话,你的 DOS 程式不必修改 (或只要稍加修改),即可移植到 Windows 中,享受的不只是传统的 DOS Extender 所能带来的记忆体突破,更有图形人机介面、以及整体的多工系统支援(如 IPC)。那麽 WINIO 可以说是个超级的 DOS Extender 了。

比起当初在 MSJ 上发表,如今 WINIO 的各个模组又有精进。增加了功能表的设计以及 click and popup 的能力。这项能力应用在本书的各种工具软体上极为适宜。例如你利用书中的软体工具观察执行中的 task,在 WINIO 的主视窗中可以利用double-click 得到某特定 task 的更详细资料 (以 popup 视窗显示出来)。作者设计这个 WINIO 函式库 (我说是个超级 DOS Extender) 的目的是为了让书中一些小小工具程式的主体更精简 (我们都知道凡是一个成功的软体其人机介面大概要耗掉整个工作计划 70% 的人力),这些程式获得的资讯只要以简单的 printf() 就可以一条一条显示在视窗中。在 DOS 环境下如果你有 100 个连续的 printf(),那麽你一定只能够仔细端详最後 25 行资讯 (一整个萤幕)。但在 WINIO 中,迅若闪电的资讯还可以用卷动杆把它拉回来看个清楚。真是好的让你耳目一新。

WINIO 的技巧很值得详细探究,它以 set handler 的方式安插特定的讯息处理常式,也很类似 Borland 的 OWL 或是 Microsoft 的 MFC 提供的 message-mapping system。可惜这本书的篇幅中并没有介绍 WINIO 的原始码及其设计理念。当然你可以慢慢咀嚼磁片所附的原始码,不过最好是先取得上述的两篇 MSJ 文章。和平东路二段的科技大楼内的中央图书馆资讯分馆内就有 MSJ。

本书第一章漫谈许多主题,花了相当的篇幅讨论 Windows 未公开秘密所引发的美国联邦交易委员会 (U.S. FTC) 的关切。第二章至第四章分别介绍一些工具。第五章到第八章是本书第一个重点,介绍 Windows (其实也就是 KERNEL、GDI、USER 三大模组) 的各个未公开结构、讯息、函式。很多资料不在 SDK 中公布,却出现在DDK,所以想深入了解 Windows 的人不妨有空注意一下 DDK 的文件。这四章占据412 页。

第十章介绍 ToolHelp 是本书的第二个重点。ToolHelp 是 Windows 新加入的一个动态联结函式库,可以满足程式对 Windows 内部资料的查询。应用程式获得的并不是真正的资料,而是一份副本,这与第五章至第八章以未公开之 Windows API 取得的资料不同。本章对 ToolHelp 的每一个 API 用法、叁数、结构、讯息都描述十分详细。这些 API 允许我们取得 Global Heap、Local Heap、Module Database、Task Database、以及一些系统资讯 (像是 Free System Resource 等)。如果读者还想看看其他的ToolHelp 文章,以下给你叁考 :

■ Explore Previously Uncharted Areas of Windows Using the HoolHelp Library (Paul Yao, MSJ 1992/05)

■ The Windows 3.1 ToolHelp DLL, Part 1 (Ray Duncan, PC-Mag, 1992/08)

■ The Windows 3.1 ToolHelp DLL, Part 2 (Ray Duncan, PC-Mag, 1992/09/15)

■ The Windows 3.1 ToolHelp DLL, Part 3 (Ray Duncan, PC-Mag, 1992/09/29)

本书附录A 是 WINIO 的函式介面,附录B 是叁考书目。难得的是对每一本叁考书都有短评,足见作者博览群书,腹笥甚丰。

如何安全使用未公开的 Windows API ? 首先你得检查这个 API 在现在环境中存在否,要从模组到函式库再到函式名称一一检查,并且也检查序号 (ordinal no.) ,两边吻合才保险。Schulman 举出一堆例子,说明我们耳熟能详的国际级软体如 Locus 1-2-3、Norton Disktop for Windows... 是如何运用这些未公开函式。言之凿凿,使你不得不打消对未公开函式的疑虑,油然兴起有为者亦若是的感叹。但我还是要浇你一盆冷水,重要的不在安全性而在未来性与即时性。你认为你能够像上述国际级软体公司一样得到 Microsoft 的第一手资料吗 ? 这虽然是一件不公平的事 (为什麽 Microsoft 卖了成千上万套的 SDK 却只把这些资料供应给 26 家独立软体制造厂商 ?),也是美国联邦交易委员会要调查 Microsoft 的原因之一,但实际情况就是如此。孤臣无力可回天。

本书的出现,就像 Undocumented DOS 一样,又再一次震憾人心,也震憾了美国联邦交易委员会 (U.S. Federal Trade Commission,FTC,类似我们的行政院公平交易会) 诸公的心。什麽时代了,连立法院都已着手阳光法案,竟然还有"Undocumented" 这种东西,而且竟然还是在大家争得头破血流的 Windows 领域。FTC 对 Microsoft 调查得很紧,不只是 Microsoft 作业系统部门对应用软体部门的技术私相授受情况绝不允许,还关心 Microsoft 的应用软体部门是否有不公平的机会预先知道作业系统部门的任何意图。比方说当 Microsoft 向全世界声称要开发 OS/2 2.0 时,是否应用软体部门早已预知未来的主角其实是 Windows ? 这本书证实两件事情。第一,Microsoft 确实制造了一些未公开的 Windows API;第二,Microsoft 的应用软体确实使用了这些未公开的 Windows API。

我想,一个系统为了未来的扩充性留有一些未公开资料是正常而合理的,问题是这些未公开资料必须是真的不公开,不能嘴巴说的和手上做的两回事,不能有人利用这些秘笈来赚钱。Microsoft 辩称别的软体公司也用了这些 API,然而并不因为别人也使用就可以掩盖这种留一手以及表里不一的欺骗行为(注二)。何况 Microsoft 只给了 26 家关系厂商这些资料。

注二 Dr. Dobb's Journal 的主编说这种欺骗行为引起「尼克森」式的反应。尼克森是谁 ? 年轻朋友恐怕不清楚或根本不知道吧 ? 他是因为在竞选时使用不法手段(据说是在敌营水门大厦放了窃听器) 引发水门事件而辞职的美国 37 任总统。据说美国年轻人大部份已经不认为这是多严重的事情。哈哈,那麽你认为 FTC 对 Microsoft 的控诉将有什麽样的结果 ?


据说此书还引起华尔街人士的注意,给它写了个书评。着名的 Dr. Dobb's Journal (这是百年老字号的 PC 期刊) 在 1992/11 也给了本书一个书评,评者是天王巨星 Ray Duncan。Duncan 对於本书的评论我不赘述,但对於本书作者赞誉有加。我把精采的几句摘译给各位,春风沐雨一下 :

技术文件作者 (文件工程师) (technical writer) 是一种被过份苛求而且没有受到应得尊敬的职业。如果你把焦点再集中到商业杂志或专业书籍出版社在作业系统、程式介面、发展工具方面的技术文件作者,你就会发现这份职业不但苛求、没有受到应得的尊敬,而且它还十分地奇特乖辟。再没有什麽其他领域会像技术文件作者一样要接受那麽大量的、高水准的读者的考验,而且还得和不断创新的技术拼命,和短的不能再短的产品周期赛跑,和粗劣不堪的产品说明、令人发指的同意书保证书、模糊的事实、可怜而不可知的市场力量拨河。所以学院派的技术人员以及「真正的」程式员对此工作不屑一顾。

其实这是十分公平的! 技术文件作者在程式员这一领域的地位如此低落的理由之一是,从业人员的素质良窳不齐。至少 90% 的文章和书籍靠着剪刀和浆糊就做出来了,简直像是挖泥机一样,卖力地挖,却挖出一堆烂泥巴。有的在产品手册上乱砍几刀,丝毫没有加上个人的看法;或是一些半调子学徒为满足编辑策划者的大纲要求,硬拼硬凑,文章中充斥毫无意义的冗词赘言。只有 10% 的文章以及书籍,是浊世中的一股清流。这些文章书籍的作者分为两个类型 : 一种是流星型的人物,出了一、两本有意义的书,如流星画过天际,闪亮! 然後...没了,徒留怀念;另一种是一小族群的所谓超级巨星,他们有稳定而质佳的好作品,日复一日,年复一年。

这种超级巨星的特徵是什麽 ? 他们通常都有数年的实际程式经验 (才不至於光说不练);他们对於程式写作有一股近乎狂热的感情;他们写他们所做的,不写他们所听的;他们能够很快认知并接受别人的观念;他们心胸开阔、博览群书、通情达理;特别擅长在散乱的断简残篇中理出逻辑结构,并且擅长将此逻辑介绍给别人。最後,他们拥有的共同特质就是都有一支生花妙笔。我所指的是 Jeff Prosise、Charles Petzold、Michael Abrash、Jeff Duntemann、Andrew Schulman 等人。

Andrew Schulman 的写作方式并不是直接给你事实,而是揪着你的衣领让你自己看事实在哪里,为什麽产生这种事实。并且解释为什麽这个事实重要,以及如何安全地运用这个事实。第一代 Windows 书籍的代表作品是 Petzold、Yao、Richter、Heller 的书,这一本 Undocumented Windows 将是第二代作品。虽然这本书在表达上还不是尽善尽美,但瑕不掩瑜,它的推出仍是 1992 年这个领域中最重要的一件事情。


痛快之极痛快之至。Ray Duncan 所言不虚,我们国内的电脑书籍市场也是量重於质 (远远地)。令人安慰的是,辛苦耕耘的人总是不会被埋没,在国内我们也看到了好的电脑着作,执着的工作者,并且看到价位高的好作品慢慢被读者接受。证明了凡辛苦播种者,必含泪收割。

至於 Duncan 指名道姓的勇气,我学不来。


侯捷 2010-07-15 08:32:57

[新一篇] 再談 Windows 程式設計好書

[舊一篇] 無限延伸 DOS 視野
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表