windows驱动编程学习顺序?


windows驱动编程学习顺序?
2010年11月19日
  内核驱动编程并不是什么高深的知识,无非也是按照系统的API,框架去做代码罢了,只是这些东西,提供了更接近于底层的功能,在某些情况下对程序的构架更加有利效率更高而已。没有创新性的东西是无所谓难度不难度的,照葫芦画瓢而已。 从哪里学起,基本路线 语言-》算法-》框架机制&WINDOWS程序-》系统内核实现等。 下面说的一些内容都有一个共同的前提,就是不断的去写代码,调试代码,否则说什么也是白搭的。我曾经一个操作系统的老师的一句话是"看了书叫你做,做不出来就是没学懂" 第一个阶段:鉴于你现在已经提了一个方向了,那选择的语言自然是C和C++,两门都需要,现在WINDOWS内核是混合的,从这个角度来说也必须两门都熟悉。相关书籍,国内的可以买谭浩强的C和C++书,比较简短,适合上手,然后C++ PRIMER这种从C++的思想去讲解C++的书也可以翻一翻。然后为了C和C++的基础扎实一些,可以看例如EFFECTIVE C++/MORE EFFECTIVE C++/C语言陷阱等等类似的书,都是从语言的层面去解释一些经验和技巧,注意,这里的内容没有涉及一点点技术,只是最基本的语言基础。 为了方便后面的学习,这个阶段应该学习计算机的基础课程,数据结构,计算机网络,操作系统,数据库原理,组成原理等等,甚至包括一些高等数学,离散数学的基础。这个要视你的情况而定,非常重要,对进一步发展影响很大。 第二个阶段:WINDOWS程序,熟悉WINDOWS程序的实现机制,例如消息响应,事件处理这些都应该明白底层是如何实现的,而不只是知道一个概念而已。相关的包括WINDOWS SDK,MFC框架等,书籍有《WINDOWS程序设计》(微软那本1300页的书,虽然很厚,但这本无非是该领域的经典,当然国内的也有不少,但是都是写的比较浅显,很多地方一笔带过),《深入浅出MFC》《VC技术内幕》等,这些都是讲解MFC底层实现机制的书,比起教你如何去拖控件,更有实际价值。这个是讲解SOCKET的,其实这方面内容一般WINDOWS程序的书都有涉及,但是很多人还是不明白,为了熟悉一些,还是有必要看的。驱动程序,这个只是在WINDOWS的一个固定框架下去做,没什么大不了。 第三个阶段:内核相关。由于WINDOWS不开源,所以没有代码可以看,好的是现在又REACTOS这种仿WINDOWS的系统是开源的,可以看看代码的实现,熟悉操作系统是怎么运行的。这些东西很多涉及到了安全相关的机制,要靠自己去琢磨。 除此之外还应该明白编译器如何编译,链接器如何链接,操作系统如何加载文件,WINDOWS如何管理内存等等无数的相关知识,这些不会对你的程序造成直接价值,但是间接价值无限。在学习的过程中,应该明白一些基本的解决问题方法,设计模式什么的,这些东西才是真正的技术。我估计你要做点什么研究很困难了,不过上面这些也足够了。 现在很多人一学习就要系统的学,但是你也要明白这样的代价。前面进步很慢,学习周期很长,很难坚持下来。学到什么程度?学会了能够拿来用,做的出来说的出道理就可以继续后面的学习了,别要用了几年的NEW,还不知道NEW做了些什么。

猜你喜欢

转载自qlc29qlc.iteye.com/blog/1362958