[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: translation



こんばんは。

Yuji Yamano <yyamano@kt.rim.or.jp> writes:

> 今週は出張で、ホテルで暇な時間がありそうなので以下の二つのドキュメント
> を訳してみます。
> 
> Documentation/netbsd/wscons.list
> Documentation/kernel/programming.list

訳してみました。英語も難しい話も苦手なので、きびしく査読して
いただけるとありがたいです。

あと programming.list のほうは、オリジナルの間違いではないか
と思われる個所がいくつかあります。とりあえず、www@NetBSD.ORG 
にはパッチをメールしているので、オリジナルが更新されたら、
日本語訳も修正します。

-- 
Yuji Yamano
<html>
<head>
<!-- Copyright (c) 1998, 1999
	The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED. -->


<!--
  ==  By Chris Jones
  -->


<link rev="made" href="mailto:www@JP.NetBSD.ORG">
		<title>WSCONS FAQ</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">

<HEADING>NetBSD wscons FAQ

<LIST>

<SECTION> wscons コンソールドライバー

<ENTRY>wscons wscons とは何ですか?
wscons は、NetBSD のプラットフォーム独立なワークステーションコンソール
ドライバーです。これを書いている現在、すべてのプラットフォームで、wscons
がサポートされているわけではありません。しかし、サポートプラットフォーム
は、日々増え続けています。wscons は 古い i386 pcvt ドライバーのすべての
機能(そして追加の機能も)をそなえるはずです。ただし、厳密なケーパビリティ
はハードウェアに依存します。

<ENTRY>screen0 "WSDISPLAYIO_ADDSCREEN: Device busy"
普通、このエラーメッセージは、wsconscfg がすでに存在するスクリーンを
追加しようとした時に表示されます。この現象は /etc/wscons.conf に 
<code> screen 0 </code>という行が存在する時にだけおこります。なぜなら
カーネルは、screen 0 を常にコンソールデバイスとして割り当てるからです。
このメッセージは無害ですが、<code>screen 0</code> の行を削除(または、
コメントアウト)すれば表示されなくなります。

<ENTRY>colors どうしたらテキストの表示色を変更できますか?
カーネルの警告とエラーメッセージ、そしてカーネルのコンフィギュレーション
コードのメッセージはコンソールに表示されます。カーネルメッセージは、普通
別の色で表示されます。この色はカスタマイズ可能です。カーネルのコンフィグ
ファイルの <code>WS_KERNEL_FG</code> と <code>WS_KERNEL_BG</code>を見てく
ださい。それらを自分の好みに変更し、カーネルを再コンパイルしてください。

<ENDLIST>

<BASELINKS>

<hr>
<address>
  <a href="../Misc/feedback.html">(Contact us)</a>
  $NetBSD: wscons.list,v 1.1 1999/09/28 21:24:01 cjones Exp $<br>
  <a href="../Misc/disclaimer.html">Copyright &copy; 1998
    The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED.</a>
</address>

</body>
</html>
<html>
<head>
<!-- Copyright (c) 1998, 1999
	The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED. -->
<link rev="made" href="mailto:www@JP.NetBSD.ORG">
<title>Kernel programming FAQ</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">

<HEADING>カーネルプログラミング

現在、このドキュメントにはそれほど有用な情報が含まれていません。
人々が多くの項目を寄稿してくれれば、もっと役に立つようになるでしょう。

<hr>
<h2>他の関連するリンク</h2>
<ul>
<li> bus_dma(9) - NetBSD のマシン独立な DMA フレームワーク
	(<a href="bus_dma.ps">postscript()</a>)
<li><a href="converting-ethernet-drivers.html">
        昔の BSD のイーサネットドライバーの NetBSD-1.2D 以降への移植</a>
<li><a href="porting-freebsd-net.html">
        FreeBSD のネットワークドライバーを NetBSD に移植するためのメモ</a>
</ul>

<LIST>

<SECTION>Misc

<ENTRY>knf KNF とは何ですか
KNF は Kernel Normal Form の略で、
<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/misc/style">
/usr/share/misc/style</a> に記述されている C のコーディングスタイルです。


<ENTRY>printf デバッグのための printf() の使い方
カーネルドライバーのデバッグ用の情報を出力するもっとも簡単な方法は、
printf() を使うことでしょう。カーネルの printf は コンソールに出力
されるので、多く出力しすぎ、システムが使いものにならないように注意
しなければなりません。

<ENTRY>forcing-ddb 強制的に DDB に落とす
カーネルのコンフィグファイルが '<code>options&nbsp;DDB</code>'を
含んでいる事を確認してください。
ファイルに'<code>#include&nbsp;"opt_ddb.h"</code>" を記述し、
'<code>Debugger()</code>' を使ってください。


<ENTRY>adding_a_new_driver カーネルに新しいドライバーを追加する
全てのドライバーは、すくなくとも以下の二つの関数を必要とします。
<ul>
<li><tt><i>xxx</i>probe()</tt> (NetBSD がデバイスの存在を調べる時)</li>
<li><code><i>xxx</i>attach()</code> ルーチンはデバイスを設定、アタッチします。</li>
</ul>
プローブとアタッチルーチンを書いたら、
<tt>/sys/arch/&lt;your-arch&gt;/&lt;your-arch&gt;/conf.c</tt>.
にエントリーを追加してください。そこには以下の二つのテーブルがあります。
<ul>
<li><code>cdevsw</code> キャラクタデバイス用。</li>
<li><code>bdevsw</code> ブロックデバイス用(ブロックI/O と戦略ルーチンとして使用する)。</li>
</ul>
ほとんどのエントリーは <code>cdev_<i>xxx</i>_init()</code> という形式と
なります。これは標準的な Unix のデバイススイッチルーチンのプロトタイプ
のためのマクロです。
<p>
プローブとアタッチルーチンはブート時によばれます。
メジャー番号がテーブルのインデックスに一致するデバイススペシャルファイル
がオープンされた時に、<code>open()</code>、<code>close()</code>、
<code>read()</code>、<code>write()</code> ルーチンがよばます。
例えば、メジャー番号18 のデバイスをオープンした場合、<tt>cdevsw[]/bdevsw</tt>
の中のデバイス番号18の "open" ルーチンがよばれます。
<p>
ほとんどのドライバーはバス固有のアタッチコードとマシン独立のコアに分割
されています。例えば、PCI lance イーサネットドライバーは以下のファイルで
構成されています。
<ul>
<li><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/dev/pci/files.pci">/sys/dev/pci/files.pci</a> - アタッチ情報 ('le at pci'を見てください)。
<li><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/dev/pci/if_le_pci.c">/sys/dev/pci/if_le_pci.c</a> - このドライバーのためのPCI バスのアタッチのコード。
<p>
<li><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/conf/files">/sys/conf/files</a> - MI コアのアタッチ情報('le:'を見てください)。
<li><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/dev/ic/am7990.c">/sys/dev/ic/am7990.c</a> - MI ドライバー、24ビットアクセスのコード。
<li><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/dev/ic/am79990.c">/sys/dev/ic/am79990.c</a> - MI ドライバー、24ビットアクセスのコード。
<li><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/dev/ic/lance.c">/sys/dev/ic/lance.c</a> - MI コアのドライバーのコード。
</ul>

<ENTRY>adding_a_system_call システムコールを追加する
<tt>syscalls.master</tt> にエントリーを追加し、syscall スタブを
<tt>/usr/src/lib/libc/sys/Makefile.inc</tt> の適当な場所に追加してください。

<ENTRY>accessing_a_kernel_structure_from_userland ユーザーランドからカーネルの構造体へアクセスする
良い例が <tt><a 
href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/usr.bin/vmstat/dkstats.c">/usr/src/usr.bin/vmstat/dkstats.c</a></tt> にあります。
ここではディスクの統計情報を読んでいます。

<ENDLIST>

<a href="index.html"><em>NetBSD Documentation: Kernel</em>に戻る</a>

<BASELINKS>

<hr>
<address>
  <a href="../../Misc/feedback.html">(Contact us)</a>
  $NetBSD: programming.list,v 1.5 1999/09/10 01:01:49 soren Exp $<br>
  <a href="../../../Misc/disclaimer.html">Copyright &copy; 1998, 1999
    The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED.</a>
</address>

</body>
</html>