2

[質問はaskubuntu.comから移動しました]

Ubuntuシステムプログラミングを始めたいと思います。具体的には、デバイスドライバーの開発とデバッグです。ただし、他のオープンソースプロジェクトに貢献した経験はありますが、どのように始めればよいかわかりません。

私はPythonでかなりのスキル/経験プログラミングを持っています(しかし、ここでは役に立たないと思います)、中程度のCプログラミングスキル、優れたデバッグスキル(ただし、ユーザーモードプログラムのみ)、まともな静的反転スキル(趣味の方が多い)、ここで短い(しかし本当に楽しい)カーネルモジュールプログラミングチュートリアルを経験しました。

いくつか質問があります。

  1. あなたが私に与えたい特定のアドバイス(あなたが難しい方法を学ばなければならなかった何か)。抽象的質問ですね。
  2. 私は長い間Ubuntuユーザーでしたが、どこから手伝うことができるかわかりません。デバイスドライバに対する私の特定の関心を考えると、何か提案はありますか?推奨される読み物?私は現在「Linuxシステムプログラミング-カーネルとCライブラリと話している」を読んでいます。
  3. デバイスドライバのデバッグに関連する推奨資料はありますか?

ありがとう。

4

2 に答える 2

4

いくつかのヒント:

  • CはLinuxカーネル開発の中核です。自動化やテストに役立つものもありますが、Cを実行します。
  • カーネル開発には、どのLinuxOSでも問題ありません。カーネルの構築と展開を簡単にするものもあります。メモリからUbuntuはDebianのカーネルパッケージングインフラストラクチャを使用しているため、独自のモジュールを簡単に追加して、新しいカーネルバージョン用に自動的に構築できます。
  • 簡単なモジュールを書くことから始めます。
  • カーネルビルドプロセスで遊ぶことから始めて、configと友達を作ります。自分でコンパイルしたカーネルを再起動して実行します。これにより、自信が持てるようになります。カーネルからがらくたを微調整してみてください。とても楽しいです。そうすれば、配置されているすべてのサブシステムについて学ぶことができます。
  • 私は何年も前にこの本を読みました:http://www.amazon.com/Linux-Kernel-Primer-Top-Down-Architectures/dp/0131181637、それは大丈夫でした、しかし私は当時のCも得意ではありませんでした。
  • 質問のチュートリアルリンクが壊れています。
于 2012-01-27T15:24:56.030 に答える
2

本当にhttp://kernelnewbies.org/に行くべきです。これは、デバイス ドライバーの作成などのカーネル ハッキングの出発点として適しています。kernelnewbies.org には多くのリソースがリンクされています。デバイス ドライバー プログラミングに関する無料の電子書籍が少なくとも 1 つあることは知っています。

于 2012-11-26T11:59:18.080 に答える