Path Every Engineer Should Know!
I have been a great follower of world renowned driver developers , system programmers. This include Doron, Peter, Tony , Landy ( Distinguished Engineer ), Mark , David , the list goes on. Understanding the system architecture enables engineers to develop, debug operating system components in precise manner.
Many have asked in the forums, what is the path to learn driver development and I feel every engineer should know
· Basic / intermediate level of Assembly Language
· Strong C programming language
· Intel Architecture would be advantage
With the above criteria, one can start learning driver development. Remember that there are absolutely no shortcuts to learn this and strictly speaking this is only for people who has strong passion about operating systems. You cannot imagine to copy and paste the code available on the internet. You have to struggle hard to understand the system internals, then digest windows DDK as much as possible , http://www.microsoft.com/whdc/devtools/WDK/default.mspx .Above mentioned experts has been into the business since 15 years and counting and they feel there are lot many components of operating system to understand. One should learn how to debug the code which they have written, and you will start appreciating C programming language. I would say WDF is making programmers life easy but if you are legacy developer you would say really not appreciate because the internal implementation are hidden which makes life difficult when a programmer starts debugging it.
There are many options to learn driver programming by keeping the above as pre-requisites you can follow the below path
· Complete the reading of Windows Internals 5th edition
· OSR seminars is the best way to do hands on labs. OSR has world renowned engineers , you cannot ask better than this !
· If you cannot afford, then but I would suggest few best books
1. Walter Oney “Microsoft Windows Driver Model”
2. Art Baker “The windows 2000 Device Driver Book”
3. Peter Viscarola “Windows NT Device Driver Development”
4. Rajeev Nagar and Peter “NT File System Drivers”
5. Jeffrey Richter “Programming Applications for Microsoft Windows”
By now you have understood the effort required to become a driver developer. Remember that you still need to become a good assembly programmer which you should keep it as side task, this makes your debugging easy. My next posts will kick-off the basics of system architecture , I would make sure I cover the most which would be helpful for new aspirants for learning driver development or Windows architecture.