.\" jpman %Id: tickadj.8,v 1.4 1997/07/26 22:12:09 horikawa Stab % .\" %Id: tickadj.8,v 1.5 1998/01/22 07:26:08 charnier Exp % .\" .Dd December 21, 1993 .Dt TICKADJ 8 .Os .Sh 名称 .Nm tickadj .Nd カーネル内の時間に関連した変数をだます .Sh 書式 .Nm tickadj .Op Fl Adkpqs .Op Fl a Ar new_tickadj .Op Fl t Ar new_tick .Sh 解説 .Nm プログラムは、動いているカーネル内のいくつかの時間を守ることに関係する 変数を .Pa /dev/kmem を通して読み込んだり、変更したりします。 これらの変数は以下の通りです。 .Em tick は、クロック割り込みによってシステム時間に加えられる時間を マイクロ秒で表現しています。 .Em tickadj は、 .Xr adjtime 2 システムコールによって使われる時間を遅らせる率と時間の解像度を 設定しています。 .Em dosynctodr は、あるマシン上で、 内部的にシステム時計をタイムオブデイ (time of day) クロックと合わせる必要が有るか否かを カーネルに示します。 .Pp デフォルトでは、オプションの無い .Nm は、カーネル内の興味のある変数を読み込み、それを出力します。 同時に、目的が .Xr xntpd 8 (ネットワークタイムプロトコルデーモン) を実行することならば、 .Em tickadj 変数をそのための .Qq 最適な 値に決定し、表示します。 カーネルを読み込む時の .Nm の操作は、 .Xr xntpd 8 プログラムの操作と非常に似ているため、 .Xr xntpd 8 の問題のデバッグを行うために有用です。 .Pp 実行中のカーネル内の興味ある変数を変更するためにさまざまなフラグが 指定できます。 .Bl -tag -width indent .It Fl a Ar new_tickadj .Em tickadj の引数で与えられた変数を設定します。 .It Fl A 同様に .Em tickadj を変更しますが、内部的に計算された .Qq 最適な 値に設定することが異ります。 .It Fl d デバッグ情報を付加します。 .It Fl k .Pa /kernel の代りに .Pa /dev/kmem を使用します。これがデフォルトです。 .It Fl p .Nm に .Em noprintf 変数の値を 1 に設定させます。 .It Fl q .Nm に対し、エラー以外の報告は行わないようにさせます。 通常 .Nm は何を行っているかについて非常に冗長な報告を行います。 .It Fl s .Nm に対し、 .Em dosynctodr 変数の値を 0 に設定させます。 .Xr xntpd 8 デーモンを SunOS 4.0 で実行する時の前提条件です。 .It Fl t Ar new_tick カーネルの .Em tick 値をリセットするために使われます。この機能はとても変な時計を持った 機械では有効です。 .El .Pp 異なったタイプの機械上で始めに使う時には、 .Nm は、注意して動かさなければならないことに気を付けてください。 .Nm が行おうとする操作は、全ての UNIX マシンで動くことが保証されているわけ ではありません。 .Sh 関連ファイル .Bl -tag -width /dev/kmem -compact .It Pa /kernel .It Pa /dev/kmem .El .Sh 関連項目 .Xr xntpd 8 .Sh 歴史 University of Toronto の .An Dennis Ferguson によって書かれました。 .Sh バグ 実行時に普通の操作の一部としてカーネル変数をだますことは恐ろしい習慣です。 この恐ろしい習慣の理由は、多くのカーネルで .Xr adjtime 8 の実装が無いことおよび/もしくはベンダによってはカーネル内の システム時計が壊れていることのみです。 カーネルを修正して .Nm を捨てるならば、その方が良いです。