如何正确入门Windows系统下驱动开发领域?

原创 2010年10月30日 12:02:00

[作者]
猪头三
个人网站 :http://www.x86asm.com/

[序言]
很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资料少有关系.大多学的驱动开发资料都以英文为主,这样让很多驱动初学者很头疼.本人从事驱动开发时间不长也不短,大概也就3~4年时间.大多数人都认为会驱动开发的都是牛人,高手之类的.其实高手,牛人不是这样定义的.我们在学习驱动开发之前,一定要明白一个道理:术业有专攻,不要盲目跟风.

[贡献者]
1> defddr    看雪学院
2> StudyRush 看雪学院

[本内容适用环境及工具]
1> Windows系统下
2> VS2003版本以上
3> Windows驱动开发包(DDK(老版本) WDK(新版本))
4> 有能力着可以安装VMWare

[本内容适用群体]
1> 具有C/C++语言基础的人
2> 具有80x86汇编基础的人
3> 具备高中以上文化水平的逻辑思维

[具备Windows系统理论书籍]
1> Windows核心编程
2> Win32多线程程序设计
3> 深入解析Windows操作系统
4> Windows操作系统原理

FAQ1:为什么需要[具备Windows系统理论书籍]这4本书?
答:驱动是Windows系统的一个重要的组成部分,深入Windows系统核心的一个体系,就因为驱动跟系统内核联系得十分紧密,所以涉及了不少系统的基础理论以及原理.因此在学习驱动开发之前必须先明白Windows系统的基础开发理论,Windows系统的运作原理,Windows系统的架构体系.那么我提供的上面4本书是目前市面上我认为最经典最全面的书籍了.

[具备Windows驱动开发书籍]
1> Windows驱动开发技术详解
2> Windows设备驱动程序WDF开发

FAQ2:为什么需要[具备Windows驱动开发书籍]这2本书?
答:假设你对Windows系统的基础理论扎实了,也看完了所说的[Windows系统理论书籍]这4本书,而且你还从事开发过Windows程序或者大程序的经验者.那么你进入Windows驱动开发的时候,需要一本经典的驱动入门开发书籍即可正确入门.现在我提供了[Windows驱动开发书籍]这2本书完完全全针对Windows驱动开发入门而编写的书籍.当然我首要推荐<Windows驱动开发详解>这本书.本书的内容在目前来说,针对驱动开发的讲解时非常到位了.包含了驱动开发理论 配置 驱动体系 等等......是一本不可多得的好书.那么第2本,其实有点滥竽充数,但是他里面有少少涉及到WDF这个最新的驱动开发理论的讲解,大家也就凑合着吧.


[具备Windows调试基础理论书籍]
1> 软件调试
2> Windows用户态程序高效排错

FAQ3:为什么需要[具备Windows调试基础理论书籍]这2本书?
答:在开发驱动的情况下,你少不了要调试驱动程序.那么如何调试驱动程序呢? Windows已为你考虑到这个问题了并开发了一套强有力的调试工具:Windbg .如何学习这个工具的调试呢?那么现在市面上只有这2本书针对Windbg讲解得还比较到位,至少针对调试命令的使用,已经用中文讲解了,大家可以通过2本书先大概了解Windbg的调试命令,然后再进一步进行GOOGLE搜索并深入学习.

[具备汇编基础理论书籍]

1> 汇编语言 作者:王爽
2> 80x86汇编语言程序设计教程[绿皮版 或者 黑皮版]

FAQ4:为什么需要[具备汇编基础理论书籍]这2本书?
答:由于在Windows环境下开发驱动,从而有个弊端,就是Windows的WDK,DDK文档少得可怜,很多说明多是模糊的.因此导致我们开发的驱动极其不稳定,这时就需要逆向Windows驱动的机制来加深理解.在一个由于驱动的不稳定性,会导致系统蓝屏,有时错误并不会直接定位到你的代码,这时就需要汇编来分析错误的缘由.就如我前面介绍的[具备Windows调试基础理论书籍]基本是用汇编语言来阐述调试技术.

[驱动开发扩展书籍]
1> 寒江独钓-Windows内核安全编程
2> Windows内核原理与实现
3> Rootkit Windows内核安全防范
4> Windows内核情景分析

FAQ5:为什么需要[驱动开发扩展书籍]这4本书?
答:熟话说:学无止境,驱动开发领域是一个很庞大的体系,这归根于驱动框架多样化而决定的.驱动包含了:文件驱动,磁盘驱动,显卡驱动,网络驱动,等等不同的种类,每一种类就是一个领域,你决定你的能力需要扩展到多方面,那么你可以考虑先我这里提供的这4本书来学习,通过阅读这3本书,你会发现驱动可以做很多你意想不到的事情.本人从事开发驱动将近4年,也仅仅涉及 文件驱动,磁盘驱动以及一些小型驱动而已.这些的学习我也仅仅是根据需求来进行选择性学习.每个人都有自己的能力极限,大家要量力而行.

备注:网友可以推荐其他好书

[推荐学习资源站点]
1> http://forum.driverdevelop.com/ 国内唯一个知识点比较全的驱动交流网站
2> http://www.osronline.com/ 国外著名的驱动开发社区
3> http://www.microsoft.com/whdc/default.mspx 微软官方驱动开发技术支持

[推荐正确学习方式]
1> 认真阅读我提供的参考书籍
2> 多使用Google来解决你遇到的问题
3> 多尝试用驱动写你自己喜欢的功能
4> 提升你英文阅读能力,因为大部分有价值的资料来自于国外
5> 不要急于求成,不要浮躁,不要把驱动开发技术当做一种炫耀

[修改补充]
如果你有什么建议和补充的话,请留言跟帖,好让我更加完善这篇文章,以造福更多的初学者。

如何正确入门Windows系统下驱动开发领域?

[作者] 猪头三 作者网站:http://www.x86asm.com 原文链接:http://blog.csdn.net/Code_GodFather/...0/5975901.aspx ...
  • hemmingway
  • hemmingway
  • 2014年08月20日 16:04
  • 565

如何正确入门Windows系统下驱动开发领域

标 题: 【原创】如何正确入门Windows系统下驱动开发领域?[根据看雪网友建议更新了1次] 作 者: 猪头三 时 间: 2010-10-30,12:18:31 链 接: http://bbs...
  • lionzl
  • lionzl
  • 2014年04月12日 16:58
  • 505

如何正确的入门Windows系统下C/C++学习领域

[序言] 很多人都问如何正确的入门C/C++,也有很多人都跟我说在自学的时候,很迷茫,越学越乱。根据这些普遍的初学者现象,打算写一篇关于正确引导初学者进入Windows系统下的C/C++领域. [本...
  • Code_GodFather
  • Code_GodFather
  • 2010年04月27日 23:41
  • 43908

【转载】如何正确入门Windows系统下驱动开发领域?

【转载】如何正确入门Windows系统下驱动开发领域? 我在看雪上面看到的一贴子,讲得挺好的,转过来和大家分享,原文地址是:http://bbs.pediy.com/showthread.php?...
  • songbingyu1
  • songbingyu1
  • 2010年11月05日 21:19
  • 226

【DDD】领域驱动设计实践 —— 框架实现

本文主要了在社区服务系统(ECO)中基于SpringMVC+mybatis框架对DDD的落地实现。本文为系列文章中的其中一篇,其他内容可参考:通过业务系统的重构实践DDD。 框架实现图 该框架...
  • yang00322
  • yang00322
  • 2017年09月12日 16:38
  • 639

如何正确地选择并加入编程领域(仅限windows系统编程)?

[作者] 站点: http://www.x86asm.com Email   : pliceman_110@163.com QQ      : 643439947 编程生涯: 2001~至今 ...
  • Code_GodFather
  • Code_GodFather
  • 2011年11月15日 17:37
  • 11658

领域驱动开发(domain driven development)

链接:https://www.zhihu.com/question/56332619/answer/250971065 什么是领域驱动开发 将问题抽象为一个领域解决方案。并针对此领域(...
  • bigtree_3721
  • bigtree_3721
  • 2017年10月29日 01:05
  • 284

领域驱动开发模式s

一、来个实例,立马呈现思路:  今天我们通过一个“超市收银”业务来作为我们的示例(虽然这个示例看上去不太正常,但是它确表述我们所需要的)。我们将从业务分析到业务建模然后最后的编码来用“面向领域对...
  • jurken
  • jurken
  • 2015年11月28日 17:06
  • 464

领域驱动的开发

领域驱动的开发面向对象方法被认为是软件技术方面的重要进步,特别是在对复杂现象建模方面比起前任更加容易。但是在可重性性,可维护性,可靠性,甚至表现性方面展没有达到期望的进展。 作为一个可重用的单元来说,...
  • tobeand
  • tobeand
  • 2004年11月23日 15:42
  • 975

《实现领域驱动设计》系列(1) DDD入门

最近在学习Vaughn Vernon所著的《实现领域驱动设计》,发现这本身对我们如何设计一个产品及产品的实现过程有一定的指导作用,就准备制作一个教程,和大家一起分享好的知识。那么,现在开始啦!...
  • zeping891103
  • zeping891103
  • 2015年08月02日 14:23
  • 941
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何正确入门Windows系统下驱动开发领域?
举报原因:
原因补充:

(最多只允许输入30个字)