INTRO(9)

名称
intro - システムカーネルインタフェースの紹介

解説
このセクションはカーネル内のインタフェースとサブルーチンについての 情報を含んでいます。

ANSI-C 等のプロトタイプ
お願いします。

我々は全てのコードが完全にプロトタイプされていることを望みます。

あなたのコードが cc -Wall とした時にきれいにコンパイルできれば、我々は嬉しく思います。 これは cc を黙らせることが問題ではなく、 苦情の原因事象を避けることが問題であるということを理解することが重要です。 遠慮なしに言うと、キャストや他の不明瞭化する手法で問題を隠すのではなく、 問題を解決してください。

インデントとスタイル
それを信用するかどうかは別として、 インデントとスタイルについてのガイドが現に存在します。 けれども広くは適用されていません。

人々がそれに注意を払い、少なくとも露骨に違反しないならば、 我々はそれを認めるでしょう。

我々はあまりにもひどくない限り、あなたの独自のスタイルを気にしませんが、 必ず我々にも読めるようにしてください。

更に情報を得るために style(9) を読む時間を取ってください。

命名規則
幾つかの一般的な規則があります。

1.  ある関数が DDB でのデバッグ支援を意図したものであるならば、 それは下記のように囲まれるべきです。

        #ifdef DDB
        #endif /* DDB */

    加えて、関数の名前は、それがデバッガルーチンであることが明確にわかるように、 DDB_ を接頭辞として始めるべきです。

シンボルのスコープ
カーネル内のシンボルのスコープは注意深く考慮することが重要です。 何らかの理由でそう出来ない場合以外は、デフォルトでは全てを static にします。

この方針には幾つかの理由があります。 主な理由は、カーネルは単一の名前空間であることと、 ここでは名前空間の汚染もあまり名案ではないということです。

デバイスドライバと カーネルに新しい内部のインタフェースを追加しないモジュールでは、 可能であるならば全てのソースコードが一つのファイルであるべきです。 それは全てのシンボルを static にできる方法であるからです。

何らかの理由によりモジュールが複数のファイルに分割される場合には、 大きな境界線に沿ってそのモジュールを分割するよう努力して、 グローバルなシンボルの数を手引にして熟考してください。 少ない方が好ましいです。

関連項目
style(9)

歴史
intro セクションのマニュアルページは FreeBSD 2.2 で登場しました。