《竹林蹊径》自序

来源:互联网 发布:原画网络培训 编辑:程序博客网 时间:2024/04/28 07:30

注:本文是我写的《竹林蹊径——深入浅出Windows驱动开发》的自序

    国内内核开发方面的书籍特别少,一个原因是很多技术牛人,没有时间或机会把自己掌握的知识编辑成书。真的很遗憾。希望我砸出这块砖头后,后面会在书店里看到无数的翡翠之作。
    相比较国外的程序员,国内程序员在学习内核驱动开发的时候,学习曲线特别长,主要原因是没有趁手可用的资料。有一些初学者联系我,倒出的苦水大多是:资料太少,技术太难,不知从何下手。我给出的建议多是希望他们努力学习WDK中的现成文档,并推荐一些经典的英文电子档。但大多数初级学习者,并不满足我这个答案——他们希望有中文资料。这时候,我会向他们推荐《深入解析Windows操作系统》或者《软件调试》,有时候,我还会谨慎地向他们推荐《驱网核心技术丛书》。
    很高兴有机会,写成这样一本书。本书的另外两位作者是马勇和董鉴源,他们分别写了第1章和第2章。写《竹林蹊径——深入浅出Windows驱动开发》花了我整整八个月的时间,有半年左右,我把所有的时间都花在上面,不上班,不娱乐。这本书是我的劳苦之作。
我利用写作的机会,纵深渗透学习了不少知识。与其说它是在展示个人才华,不如说是做了一次自我进修和测试。我做不到文采飞扬,能保证的是负责任的态度。此书在写作过程中,增删若干遍,完稿之后,请多位前辈老师审稿。我现在唯一期望的是书中的内容,确实能够对读者起到帮助、参考的作用。
本书特色
    《竹林蹊径——深入浅出Windows驱动开发》这本书的一个最大特点是插图和示例多,对涉及到的大部分知识,能做到一定深度的挖掘。谭文跟我说,无法把自己的技术经验完全写出来。我当然同意他这句话的正确性;但写作的过程中,我仍然尽最大的可能,把技术和经验文字化、图形化,尽量做到由浅入深,脉络分明——这是我个人的最高目标。
平时给别人讲某个知识点的时候,哪怕是最简单的,我喜欢讲得360度面面俱到。说了一层,爱说下面还有一层。讲了烧水之釜,还要介绍釜底之薪。有人不喜欢这样,但我喜欢。如果以后还写书,我仍会保持这一点。
本书主要内容
    本书主要包含这几个方面的内容:WDF框架、驱动测试、音视频编程、驱动安装。这其中,最费精神的是WDF框架相关章节。
WDF是目前和将来驱动开发的大势所趋。如果初学者因为资料的关系,而紧握着WDM架构的双手的话,他一定要留神,不要冷落了旁边正如日中天的WDF。搞技术,特别是在Windows平台上,不建议大伙具有怀旧情绪,跟着形势走是必然的。
    书中有四章内容介绍WDF。笔者如农夫翻地一般,把WDF奇异表面下的具体实现做了一定的揭露。笔者饶有兴趣地为大家分析WDF的对象模型,而从Wdf01000符号文件中揭露的内部结构体定义,能令很多人吃惊不小。
    用WDF框架编写驱动,要比WDM方便、简单一半以上。本书中介绍了使用WDF框架进行USB和1394编程的内容。由于USB的运用之广,使USB驱动成为Windows内核驱动中的显学。驱动开发网专门辟有“USB驱动”版块,并几乎是最聚人气的地方。为配合USB一章的写作与学习,笔者专门请朋友精心设计了一款USB驱动学习开发板。读者在本书中的多处地方,都能看到它的玲珑身影。
    驱动测试方面包括两章内容,一章以WDF驱动测试为中心进行介绍,另一章介绍了Windbg调试命令。曾经的王者SoftIce湮没不闻后,Windbg成了唯一的内核调试利器,不可不掌握。
    音视频驱动向来都比较小众,做相关开发的公司和个人都很少,资料也就更加少。本书有两章内容介绍音视频开发,一章介绍AVStream小端口架构,一章介绍酷酷的ASIO音频驱动,并以虚拟ASIO声卡的创新技术,为有兴趣的读者带去福音。
    本书最后三章,介绍驱动安装有关的知识。一章介绍驱动安装的原理及系统模块,一章介绍INF安装文件的技术细节,一章以示例介绍如何编写驱动安装软件。看过这些内容后,试着为你的驱动写一个安装软件,会很酷。
本书读者对象
    本书适合一般程序员
    对WDF感兴趣,准备开发USB或1394设备驱动者
    下面要说一些和技术无关的东西。
    在本书写作过程中,有许多书外的记忆。比如,夏天我工作的时候,我女儿常常站在床头,猛地一下用手扑打我的笔记本,电脑屏幕就倾了下去,一阵惊叫。
    一次两章隔夜刚新鲜写好的内容,保存在移动硬盘中,第二日在另一台电脑上开机,却怎么都找不到了。翻遍整个系统,用了N种数据、磁盘恢复工具,都无济于事,踪影全无。那种无助得想哭的感觉,一直记在心间(这个问题我后来把它再现了,可以认定是Windows 7操作系统的BitLocker功能在休眠唤醒处理上的一个Bug)。
致谢
    感谢我的好朋友,谭文。是他推荐我主笔这本书的写作。这套系列中的《天书夜读——从汇编语言到Windows内核编程》和《寒江独钓——Windows内核安全编程》出版后,大家都很忙。谭文很信任我,推荐我写《竹林蹊径——深入浅出Windows驱动开发》。谭文是我以前的同事,湖南人,故在网上号楚狂人,赫赫有名,散文随笔一级好,技术文章有散文风。他为本书写了一篇小序,特此感谢。谢谢李冰编辑和文字编辑葛娜女士,她们的信任和支持,使我有可能完成这本书。
    感谢本书两另外两位作者,他们贡献了第1章和第2章。
    感谢潘爱民老师,他为本书写了序,令我有蓬荜生辉之感。
    感谢张银奎老师,张帆兄,他们也对本书给予了鼓励,并写了推荐语。
    我要感谢所有照顾过我的亲人们:谢谢我大阿姨,她现在只在天上看着我们。她以力排众议的气势,关心照顾过我。谢谢红兵表哥,他正好大我一轮,学习成绩冠于全镇。当初我老爱从他那里偷书,那些书正是我童年和少年时代仅有的课外书。谢谢小姨父,父执辈中他是唯一给我严肃、客观教育的人。感谢我舅舅,他给我很多帮助。以前,我总是把去上海说成“去我舅舅那”。
谢谢我所有的亲人们。
    感谢双方父母,感谢他们所有的辛勤付出。
    最后,感谢我的妻子,近两年以来,她离职在家做专职母亲,好像把十几年的事情放在一两年里做了,岁月催人老,我把她累坏了。
    最后是一首五言八句,会意书名曰:《竹林蹊径》

                荫荫翠竹百亩林, 
                结庐恒爱此中景。 
                寻常偶遇方外客, 
                殷勤指点通幽径。
原创粉丝点击