[概要][詳細][実験トップ]

計算機システム実験:カーネルハック

担当教官

実施学期 実験の概要

連絡事項

2006/04/10
電子メールで連絡します。 必ず coins の電子メールを読んで下さい。
2006/08/28
2006 年度2学期は、9月6日水曜日 12:15 に説明会行います。 3C113端末室の canna27 の近くに集まって下さい。

実験課題

課題1-3を必須とする。課題4-6から1つ以上、選択する。

課題1 カーネルのコンパイルとパラメタの設定

選択したカーネルのソース・プログラムを入手する。いくつかのパラメタを設 定し、コンパイルする。特に不要なデバイス・ドライバを外すことが、コンパ イル時間を短縮し、実習を円滑に進めるために重要となる。

課題2 カーネルのリモート・デバッグ

gdb のリモート・デバッグ機能を用いて、カーネルのプログラムをデバッグ可 能な状態にする。簡単で、利用頻度が低いシステム・コールを選び、それを利 用するユーザ・プログラムを記述する。そして、そのプログラムを実行し、カー ネル内をステップ実行で実行することで、そのシステム・コールの動作を理解 する。

課題3 システムコールの追加

最終的には、次のような条件をみたすシステムコールを追加する。 次のような手順でプログラムを作成するとよい。
  1. システム・コールの番号を割り当てる。
  2. 他のシステム・コールにならい、エントリ関数を定義し、登録する。 最初は、何もしない関数、または、コンソールにメッセージを表示する を登録する。最初は、引数がなくてもよい。
  3. ユーザ・プログラムからシステム・コールを発行するプログラムを 作成する。
  4. 4. を実行し、デバッガ等で動作を確認する。
  5. システム・コールの簡単なロジックを、ユーザ・レベルのプログラムで 記述し、動作を確認する。この時、カーネル内のAPIを利用する場合は、 ダミーの関数を定義する。
  6. ユーザ空間から引数を取り込む部分を記述する。
  7. 6. のロジックをカーネルに移動させる。
  8. 結果をユーザ空間に返す部分を記述する。

課題4 デバイス・ドライバの作成

次のような条件をみたすデバイス・ドライバを追加しなさい。

課題5 /proc ファイル・システムの作成

/proc ファイル・システムを通じてアクセス可能なモジュールを作成しなさい。 提供する内容は、カーネル内にある動的に変化する可能性があるものとする。 読み込みのみ対応すればよい。

課題6 定期的な仕事

カーネル内で定期的に動作するプログラムを作成しなさい。

課題7 その他

その他、課題4-6と同等の難易度を持つ課題を設定し、取り組む。設定する課 題については、担当教官と相談して決定すること。

ヒント

レポート作成の注意

プログラムの仕様

開発環境

実行結果

参考文献,感想

とじかた

関連ページ


Last updated: 2006/08/28 17:00:06
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>