- ベストアンサー
ドライバ開発の勉強方法を教えてください。
ドライバ開発の勉強方法を教えてください。 趣味でドライバの開発を勉強したいのですが方法が分かりません。 将来的にWin、LinuxでUSB機器やPCカード機器等のドライバ開発を行いたいです。 参考書籍情報等をお待ちしています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず, 書籍が豊富なWin環境で WDMを理解したいのか, WDFを理解したいのかでだいぶ変わりますが 基本はWDKをインストールした後, 付属のドキュメントとサンプルを解析するのが王道だと思います. ただし, Microsoft提供のサンプルは穴だらけなので妄信は非常に危険. いきなりサンプルを読めと言われても読めないケースが多いので, 先に浜田憲一郎氏の分厚いチュートリアル本を消化すると近道できると思います. 偏った書評かもしれませんが, 印象に残ってる書籍を以下に紹介. 浜田憲一郎著 ・WindowsXPデバイスドライバプログラミング 入門と実践(WDM) ・Windows Vistaデバイスドライバプログラミング(WDF) チュートリアルとして入門用に便利. ドライバのソースの読み進め方, 勘所が掴めます. Walter Oney著 ・Programming the Microsoft Windows Driver Model(WDM) ドライバの概要が分かって来たら必読. 滝口 政光著 ・WindowsXPフィルタドライバプログラミング 入門と実践(WDM) 一部使えるネタあり Edward N. Dekker著 ・WDMデバイスドライバプログラミング完全ガイド 「上」(WDM) ・WDMデバイスドライバプログラミング完全ガイド 「下」(WDM) 初心者にはお勧めできない・・・ いきなりこれ読んでも書けるようにはならないと思います.
その他の回答 (3)
- D-Matsu
- ベストアンサー率45% (1080/2394)
Linuxドライバを書くのにWindowsの知識は要りません。 どっちかというとCをどれだけ使えるかの方が問題で、少なくとも関数ポインタをある程度理解していないと話になりません。
- BLK314
- ベストアンサー率55% (84/152)
ドライバ開発って難しいと思います。 他の人も述べていますようにXPとVistaでも異なるくらいですから、 WinとLinuxでは「一から勉強しなおし」位の覚悟が必要と思われます。 私も経験あります. ポートI/Oだけの簡単なものを作った時は genportというサンプルを参考にし、 比較的容易に作れました。 ADC用ドライバも担当しました。 これは、高速動作が必要でかなり難しいと 予想されましたので 「WinDriver] http://www.xlsoft.com/jp/products/windriver/products.html?gclid=CP_jp4-Un6ECFUcwpAodfD4WyA 使いました。 これだと、Linux版もありますので、 Linuxへの移植も楽になるかも知れません。 結構、いい値段するんですよ・・・・ 「趣味」では手が出ないかも知れないですね。 余程の「セレブ」でないと・・・(笑)
- D-Matsu
- ベストアンサー率45% (1080/2394)
XPとVista以降ではドライバのモデルが大きく変わったことで作り方も変わっているようです。 LinuxでもKernel2.4系以前と2.6系では大きく異なりますが、こちらは現行のディストリビューションがほぼ完全に2.6系に移行したので今更2.4系を覚える必要はあまりないかもしれません。 #1ではWindowsを紹介されているので、こちらはLinuxの書籍を紹介しておきます。 http://www.oreilly.co.jp/books/4873112532/ これが読めるくらいでないとLinuxでは書くのが難しいと思います。
補足
ご紹介いただいた本ではWindows未経験の開発者でも理解できますでしょうか? それともWindowsを先に勉強したほうが良いですか?
補足
やはりOSの違いによる開発方法は大きく違うのでしょうか? VistaとXPでさえ