第1个回答 2011-06-02
还是先熟悉应用程的开发吧。如果你想学习驱动开发,那操作系统原理是
必须要懂得一点的,为此你可以看<The Design of Unix Operating System>,
以求入门。该书虽为英文,但行文流畅易懂,你会学到操作系统的大量概念
和原理。
你做过单片机,说明你应该做过裸机上的驱动开发的,对吧?其实,
开发驱动归结到底,就是读写寄存器和处理中断。这点在Linux操作系统下开发,
和在纯裸机上开发驱动程序是一样的,只不过Linux下开发的驱动程序是被嵌入
到操作系统内部去的。而Linux是多任务的,也就是说有可能上面会有很多的
应用程序在使用你写的驱动程序,所以在你的驱动程序中,可能经常需要处理
这方面并发的问题。这一点是和裸机下开发驱动程序不一样的最关键区别。
关于这方面的整体理解,你可以看看杭州JulianTec所总结的文章:《应用程序、
操作系统、驱动程序和硬件》这篇文章。