83

デバイスドライバの書き方は面白いと思うので習いたいです。私は Mac OS X Macbook を使用していますが、Ubuntu マシン (Mac Min で実行) も持っています。私は C にかなり精通しており、現在この本を読んでいます。Mac Dev Centerなどのリンクをオンラインで見つけました。楽しそうなのでやってます。私が書いたソフトウェアのおかげでハードウェアが動作するのを見るのは本当に楽しいことだと思います。

私が望むのは、いくつかのヒントまたはアドバイスとガイダンスであり、ドライバーを持たないデバイスのリストを知っている人はいますか、または既にサポートされているもの用のドライバーを作成できますか (前者を好むので、実際には価値を提供します)。始めるのに適したデバイスは何ですか? 私は噛むことができる以上に噛んでいますか?私は、低レベルのプログラミングやアセンブリ、または必要な労力を恐れていません。本当にチャレンジしたい!

4

4 に答える 4

43

Linuxの場合は、O'Reilly Linux Device Driversの本を手に取ったり、オンラインでPDFを読んだりすることを検討してください。私の意見では、それは主題に関するより良いテキストの1つです。

Linuxカーネルモジュールプログラミングガイドも優れたリソースです。

特にLinuxカーネルに関する本を手に入れたいと思うかもしれません。私はこの目的のためにRobertLoveのLinuxKernelDevelopment(2nd Edition)のコピーを手に入れました(途中で3rd Edition )。

于 2010-02-08T15:58:41.330 に答える
37

デバイス ドライバーの作成は、非常に単純な場合もあれば、ほぼ任意の複雑な場合もあります。たとえば、デバイス ドライバの 1 つのバグを解決するのに 6 人がほぼ 3 年かかったプロジェクトに参加したことがあります。もちろん、私たちはそれを探しながら他の何十ものバグを取り除きました.コードは大幅に改善されました. 修正は 8 行のパッチであることが判明し、控えめに言っても約 100 万ドルの費用がかかりました。

しかし、そのサイド プロジェクトとして、チップのデータ シートからイーサネット ドライバーを 1 週間で書き、それをデバッグするのにさらに 1 週​​間かかりました。それ以来、触れる必要はありません。

一般的に、ドライバーがどれだけの仕事をするかを言う方法はありません。GPU ドライバーには数億の費用がかかる可能性があり、単一の LED のドライバーにはせいぜい数時間の作業が必要です。

于 2010-02-08T22:01:49.283 に答える
8

Linuxデバイスドライバーの開発に行きたい場合は、無料で入手できるO'Reillyの本Linux Device Drivers、ThirdEditionを読む必要があります。

ドライバーを作成できるサポートされていないハードウェアを見つけるには、Linuxメーリングリストで質問してください。たぶんいくつかのUSB3.0デバイス?;)

于 2010-02-08T15:58:14.887 に答える
3

Macの場合は、Mac OSXInternalsの本をご覧ください。考えると重いですが、読むのは楽しいです。これは主にPowerPCベースのMacに関するものですが、IntelベースのMacに関する付録があります。Linuxの場合は、Linuxデバイスドライバー、第3版をご覧ください。軽量で(オンラインで無料のPDF :)、実際にはデバイスドライバー指向であるため、より良いスタートになる可能性があります。

于 2010-02-08T15:57:31.600 に答える