diff --git a/ja_JP.eucJP/man/man5/a.out.5 b/ja_JP.eucJP/man/man5/a.out.5 index 2c8701f4e1..8127f37aaf 100644 --- a/ja_JP.eucJP/man/man5/a.out.5 +++ b/ja_JP.eucJP/man/man5/a.out.5 @@ -1,480 +1,480 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This man page is derived from documentation contributed to Berkeley by .\" Donn Seeley at UUNET Technologies, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)a.out.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man5/a.out.5,v 1.10.2.2 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/a.out.5,v 1.10.2.3 2001/12/17 11:30:13 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/a.out.5,v 1.9 2001/05/14 01:09:26 horikawa Exp $ +.\" $FreeBSD$ .\" WORD: byte order バイト順 .\" WORD: posision independent 位置独立(な) .\" WORD: link editor リンクエディタ .\" WORD: link edit リンクエディット .\" .Dd June 5, 1993 .Dt A.OUT 5 .Os .Sh 名称 .Nm a.out .Nd 実行可能バイナリファイルのフォーマット .Sh 書式 -.Fd #include +.In a.out.h .Sh 解説 インクルードファイル .Aq Pa a.out.h では 3 つの構造体といくつかのマクロが宣言されています。 これらの構造体は、このシステムで実行可能な機械語コードファイル .Pq Sq バイナリ のフォーマットを規定します。 .Pp バイナリファイルは最大で 7 つのセクションから構成されます。 これらのセクションを順にあげると以下のようになります: .Bl -tag -width "テキストリロケーション" .It exec ヘッダ バイナリファイルをメモリ上にロードして実行するために カーネルが用いるパラメータを含んでいます。 これらのパラメータはリンクエディタ .Xr ld 1 がバイナリファイルを他のバイナリファイルと結合する際にも 用いられます。 このセクションは唯一の必須セクションです。 .It テキストセグメント プログラムが実行される際にメモリ上にロードされる 機械語コード及び関連データを含んでいます。 読み込み専用でロードされる場合があります。 .It データセグメント 初期化済データを含んでいます。 常に書き込み可能なメモリ上にロードされます。 .It テキストリロケーション バイナリファイル結合時にテキストセグメント内のポインタを修正するために、 リンクエディタによって用いられるレコードを含んでいます。 .It データリロケーション 前出のテキストリロケーションセクションと似ていますが、 データセグメント内のポインタ修正用です。 .It シンボルテーブル バイナリファイル間で 名前付きの変数や関数 .Pq Sq シンボル のアドレス相互参照を解決するために、 リンクエディタによって用いられるレコードを含んでいます。 .It string table シンボル名に対応する文字列を含んでいます。 .El .Pp 全てのバイナリファイルは次の .Fa exec 構造体で始まります: .Bd -literal -offset indent struct exec { unsigned long a_midmag; unsigned long a_text; unsigned long a_data; unsigned long a_bss; unsigned long a_syms; unsigned long a_entry; unsigned long a_trsize; unsigned long a_drsize; }; .Ed .Pp これらのフィールドは以下の機能を持っています: .Bl -tag -width a_trsize .It Fa a_midmag このフィールドはホストのバイト順 (host byte-order) で格納されます。 このフィールドはいくつかのサブコンポーネントを持っており、それらは 以下のマクロ .Fn N_GETFLAG , .Fn N_GETMID , .Fn N_GETMAGIC で参照され、マクロ .Fn N_SETMAGIC で設定されます。 .Pp マクロ .Fn N_GETFLAG は以下のフラグを返します: .Bl -tag -width EX_DYNAMIC .It Dv EX_DYNAMIC この実行可能ファイルがランタイムリンクエディタのサービスを要求することを 示します。 .It Dv EX_PIC このオブジェクトファイルが位置独立 (position independent) なコードを 含んでいることを示します。 このフラグは .Sq -k フラグ指定時に .Xr as 1 によって設定され、必要なら .Xr ld 1 はこれを保存します。 .El .Pp EX_DYNAMIC と EX_PIC の両方がセットされている場合、 そのオブジェクトファイルは位置独立な実行可能イメージです (例: 共有ライブラリ)。 これはランタイムリンクエディタによってプロセスのアドレス空間にロードされます。 .Pp マクロ .Fn N_GETMID はマシン識別コード (machine-id) を返します。 これは、バイナリファイルが実行されるべきマシンを示しています。 .Pp .Fn N_GETMAGIC はマジックナンバを示します。 マジックナンバはバイナリファイル種別を一意に識別し、 様々なロード方法を区別します。 このフィールドは以下の値のいずれか 1 つを含んでいなければなりません: .Bl -tag -width ZMAGIC .It Dv OMAGIC テキストセグメントとデータセグメントはヘッダの直後にあり、 連続しています。 カーネルはテキスト/データセグメントの両方を書き込み可能メモリ領域に ロードします。 .It Dv NMAGIC .Dv OMAGIC と同様、テキスト/データセグメントはヘッダの直後にあり、連続しています。 しかし、カーネルはテキストセグメントを読み込み専用メモリ領域にロードし、 テキストに続くページ境界から始まる 書き込み可能メモリ領域にデータセグメントをロードします。 .It Dv ZMAGIC カーネルは各々のページを必要に応じてバイナリからロードします。 ヘッダ、テキストセグメント及びデータセグメントはいずれも、 ページサイズの倍数の大きさになるよう、 リンクエディタによってパディングされます。 カーネルがテキストセグメントからロードしたページは読み込み専用ですが、 データセグメントからロードしたページは書き込み可能です。 .El .It Fa a_text テキストセグメントのサイズ (バイト単位) を保持します。 .It Fa a_data データセグメントのサイズ (バイト単位) を保持します。 .It Fa a_bss .Sq bss セグメント のバイト数を保持します。 この値はカーネルが最初の break 値 .Pq Xr brk 2 をデータセグメントの後ろに設定するのに用いられます。 カーネルは、ここに示されるサイズの書き込み可能メモリ領域が データセグメントの後ろに用意され、それらの初期状態が 0 になるように、 プログラムをロードします。 .It Fa a_syms シンボルテーブルセクションのサイズ (バイト単位) を保持します。 .It Fa a_entry カーネルがバイナリファイルをロードした後の、 プログラムのエントリポイントのメモリアドレスを保持します。 カーネルは、このアドレスにある機械命令からプログラムの実行を開始します。 .It Fa a_trsize テキストリロケーションテーブルのサイズ (バイト単位) を保持します。 .It Fa a_drsize データリロケーションテーブルのサイズ (バイト単位) を保持します。 .El .Pp インクルードファイル .Pa a.out.h では、 .Fa exec 構造体を用いて一貫性をテストしたりバイナリファイル中のセクションオフセットを 知るためのマクロが定義されています。 .Bl -tag -width N_BADMAG(exec) .It Fn N_BADMAG exec .Fa a_magic フィールドに、認識できない値が含まれている場合、非 0 を返します。 .It Fn N_TXTOFF exec バイナリファイルにおけるテキストセグメントの先頭のバイトオフセットを返します。 .It Fn N_SYMOFF exec シンボルテーブルの先頭のバイトオフセットを返します。 .It Fn N_STROFF exec 文字列テーブルの先頭のバイトオフセットを返します。 .El .Pp リロケーションレコードは、 .Fa relocation_info 構造体で規定される標準フォーマットです: .Bd -literal -offset indent struct relocation_info { int r_address; unsigned int r_symbolnum : 24, r_pcrel : 1, r_length : 2, r_extern : 1, r_baserel : 1, r_jmptable : 1, r_relative : 1, r_copy : 1; }; .Ed .Pp .Fa relocation_info 構造体の各フィールドは以下のように用いられます: .Bl -tag -width r_symbolnum .It Fa r_address リンクエディットが必要なポインタのバイトオフセットを保持します。 テキストリロケーションオフセットはテキストセグメントの先頭から、 データリロケーションオフセットはデータセグメントの先頭から、 それぞれ計算します。 リンクエディタはこのオフセットにストアされている値を加算し、 このリロケーションレコードを用いて計算した新しい値に変換します。 .It Fa r_symbolnum シンボルテーブルにおけるシンボル構造体の順序番号 ( バイトオフセット .Em ではありません ) を保持します。 リンクエディタはこのシンボルの絶対アドレスを解決した後、 そのアドレスをリロケーション中のポインタに加算します。 (もし .Fa r_extern ビットが立っていなければ状況は異なります。以下を参照して下さい。) .It Fa r_pcrel もしこのビットが立っていれば、 リンクエディタは、PC 相対アドレッシングを用いる機械語命令の一部である ポインタを更新しているものと仮定します。 リロケートされるポインタのアドレスは、実行中のプログラムがそれを用いる際に、 暗黙的にその値に加算されます。 .It Fa r_length ポインタの長さを 2 を底とする対数で表したバイト単位で保持します。 1 バイトディスプレースメントなら 0、 2 バイトディスプレースメントなら 1、 4 バイトディスプレースメントなら 2 となります。 .It Fa r_extern このリロケーションが外部参照を必要としている場合にセットされます。 リンクエディタは、シンボルアドレスを用いてこのポインタを 更新しなければなりません。 .Fa r_extern ビットが立っていない場合、そのリロケーションは .Sq ローカル です。 リンクエディタは、シンボル値の変化ではなく、 各セグメントのロードアドレスの変化に応じてポインタを更新します (ただし、 .Fa r_baserel もセットされている場合(後述)は除きます)。 この場合、 .Fa r_symbolnum フィールドの内容は .Fa n_type の値となります(後述)。 リンクエディタは、この型フィールドから、 リロケートされるポインタがどのセグメントを指しているのかの情報を得ます。 .It Fa r_baserel セットされている場合、 .Fa r_symbolnum フィールドで指定される場合のように、 このシンボルはグローバルオフセットテーブルへのオフセットに リロケートされます。 実行時に、グローバルオフセットテーブル中の、このオフセット位置にある エントリが、シンボルのアドレスを持つようにセットされます。 .It Fa r_jmptable セットされている場合、 .Fa r_symbolnum フィールドで指定される場合のように、 このシンボルはプロシージャリンケージテーブルへのオフセットに リロケートされます。 .It Fa r_relative セットされている場合、 このリロケーションは、このオブジェクトファイルが含まれる イメージの (実行時の) ロードアドレスとの相対値となります。 この種のリロケーションは共有オブジェクトにのみ現れます。 .It Fa r_copy セットされている場合、 このリロケーションレコードは、 その内容を .Fa r_address で指定される位置にコピーしなければならないシンボルを示します。 コピー処理は、実行時のリンクエディタによって、 共有オブジェクト中の適切なデータアイテムから行われます。 .El .Pp シンボルは名前とアドレスを対応づけます (より一般的には、 文字列を値へ対応づけます)。 リンクエディタがアドレスを調節するため、 絶対値が割り当てられるまではシンボルを用いてアドレスを表現しなければ なりません。 シンボルは、シンボルテーブル中の固定長のレコードと、 文字列テーブル中の可変長の名前から成ります。 シンボルテーブルは .Fa nlist 構造体の配列です: .Bd -literal -offset indent struct nlist { union { char *n_name; long n_strx; } n_un; unsigned char n_type; char n_other; short n_desc; unsigned long n_value; }; .Ed .Pp これらのフィールドは以下のように用いられます: .Bl -tag -width n_un.n_strx .It Fa n_un.n_strx このシンボルの名前の、文字列テーブルでのバイトオフセットを保持します。 プログラムが .Xr nlist 3 関数を用いてシンボルテーブルをアクセスする場合、 このフィールドは、 メモリ中の文字列へのポインタである .Fa n_un.n_name フィールドに置き換えられます。 .It Fa n_type リンクエディタがシンボル値の更新方法を決定するのに用いられます。 .Fa n_type フィールドは、ビットマスクを用いた 3 つのサブフィールドに分けられます。 リンクエディタは .Dv N_EXT ビットがセットされているシンボルを .Sq external シンボルとして扱い、他のバイナリファイルからの参照を許可します。 .Dv N_TYPE マスクはリンクエディタに必要なビットを選択します: .Bl -tag -width N_TEXT .It Dv N_UNDF 未定義シンボル。 リンクエディタは、他のバイナリファイル中の同じ名前の外部シンボルを探して このシンボルの絶対値を決定しなければなりません。 特別な場合として、もし .Fa n_value フィールドが非 0 で、リンクエディット対象のどのバイナリファイルも このシンボルを定義していない場合、 リンクエディタはこのシンボルが bss セグメント中のアドレスであるとみなし、 .Fa n_value に等しいバイト数の領域を予約します。 もしこのシンボルが複数のバイナリファイル中で未定義となっており、 それらのバイナリファイル間でサイズが異なっている場合、 リンクエディタはそれらのサイズの最大値を選びます。 .It Dv N_ABS 絶対シンボル。 リンクエディタは絶対シンボルは更新しません。 .It Dv N_TEXT テキストシンボル。 このシンボルの値はテキストアドレスであり、 リンクエディタはバイナリファイルをマージする際、その値を更新します。 .It Dv N_DATA データシンボル。 .Dv N_TEXT と同様ですが、データアドレスを表します。 テキストシンボル及びデータシンボルの値は、 ファイルオフセットではなくアドレスです。 ファイルオフセットを復元するために、 対応するセクションの先頭のロードアドレスを見つけてそれを減じ、 次にそのセクションのオフセットを加算する必要があります。 .It Dv N_BSS bss シンボル。テキストシンボルやデータシンボルと似ていますが、 バイナリファイル中に対応するオフセットを持ちません。 .It Dv N_FN ファイル名シンボル。 バイナリファイルをマージする際、 リンクエディタはバイナリファイルの他のシンボルの前にこのシンボルを 挿入します。 このシンボルの名前はリンクエディタに与えられたファイル名で、 シンボルの値はバイナリファイルから得た先頭テキストアドレスです。 ファイル名シンボルはリンクエディト処理やロード処理には不要ですが、 デバッガには有用な情報です。 .El .Pp .Dv N_STAB マスクは .Xr gdb 1 等のシンボリックデバッガに必要なビットを選択します。 その値は .Xr stab 5 に示されています。 .It Fa n_other このフィールドは、 .Fa n_type フィールドで決定されるセグメントに関して、 そのシンボルのロケーションとは独立した シンボルの特質に関する情報を提供します。 現在のところ、 .Fa n_other フィールドの下位 4 ビットは .Dv AUX_FUNC あるいは .Dv AUX_OBJECT のいずれかをとります (これらの定義については .Aq Pa link.h を参照してください)。 .Dv AUX_FUNC はシンボルと呼び出し可能な関数を関連づけ、他方、 .Dv AUX_OBJECT はシンボルとデータを関連づけます。 これらの関連はテキストセグメント/データセグメントの別とは無関係です。 このフィールドは、 .Xr ld 1 が動的な実行可能形式を構築するために使うことを意図しています。 .It Fa n_desc デバッガ用に予約されており、リンクエディタはこのフィールドを全く変更しません。 デバッガによって異なった目的に使われます。 .It Fa n_value シンボルの値を保持します。 テキスト, データおよび bss シンボルの場合、その値はアドレスです。 他のシンボル (例えばデバッガシンボル等) の場合、その値は様々です。 .El .Pp 文字列テーブルは .Em unsigned long 型の長さと、それに続くナル終端のシンボル文字列から成ります。 この長さは、テーブル全体のサイズをバイト単位で表します。 つまり、その最小値 (言い替えれば、最初の文字列のオフセット) は、 32 ビットマシンでは常に 4 となります。 .Sh 関連項目 .Xr as 1 , .Xr gdb 1 , .Xr ld 1 , .Xr brk 2 , .Xr execve 2 , .Xr nlist 3 , .Xr core 5 , .Xr elf 5 , .Xr link 5 , .Xr stab 5 .Sh 歴史 インクルードファイル .Pa a.out.h は .At v7 で登場しました。 .Sh バグ 必ずしも全てのサポート対象アーキテクチャが .Fa a_midmag フィールドを用いるわけではないので、 あるバイナリがどのようなアーキテクチャ上で実行されるのかは、 実際のマシンコードを調べない限り判定困難な可能性があります。 マシン ID があったとしても、 .Fa exec ヘッダのバイト順はマシン依存です。 .Pp .Em bss が何の略なのか、に関する合意はないようです。 diff --git a/ja_JP.eucJP/man/man5/acct.5 b/ja_JP.eucJP/man/man5/acct.5 index b798bb34f2..dd404c8d39 100644 --- a/ja_JP.eucJP/man/man5/acct.5 +++ b/ja_JP.eucJP/man/man5/acct.5 @@ -1,115 +1,115 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)acct.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man5/acct.5,v 1.7.2.1 2001/03/06 19:08:18 ru Exp % +.\" %FreeBSD: src/share/man/man5/acct.5,v 1.7.2.2 2001/12/17 11:30:13 ru Exp % .\" .\" $FreeBSD$ .\" .\" WORD: account アカウント[acct.5] .\" WORD: accounting file アカウンティングファイル[acct.5] .\" WORD: structure 構造体(C言語の)[C] .\" .Dd June 5, 1993 .Dt ACCT 5 .Os .Sh 名称 .Nm acct .Nd 実行アカウントファイル .Sh 書式 -.Fd #include -.Fd #include +.In sys/types.h +.In sys/acct.h .Sh 解説 カーネルは、下記の .Fa acct 情報構造を、全プロセスに対して管理します。 プロセスが終了すると、アカウンティングが有効になっている場合には、 カーネルは .Xr acct 2 関数呼び出しを行い、アカウンティングファイルに記録を追加します。 .Bd -literal /* * アカウンティング構造体; これらは、基底値 8 の 3 ビット指数部および * 13 ビット小数部の ``浮動小数点数'' である comp_t 型を使用します。 * 単位は 1/AHZ 秒です。 */ typedef u_short comp_t; #define AC_COMM_LEN 16 struct acct { char ac_comm[AC_COMM_LEN]; /* コマンド名 */ comp_t ac_utime; /* ユーザ時間 */ comp_t ac_stime; /* システム時間 */ comp_t ac_etime; /* 経過時間 */ time_t ac_btime; /* 開始時刻 */ uid_t ac_uid; /* ユーザ ID */ gid_t ac_gid; /* グループ ID */ short ac_mem; /* 平均メモリ使用量 */ comp_t ac_io; /* 入出力ブロック数 */ dev_t ac_tty; /* 制御 tty */ #define AFORK 0x01 /* fork したが exec されていない */ #define ASU 0x02 /* スーパユーザ権限を使用した */ #define ACOMPAT 0x04 /* 互換モードを使用した */ #define ACORE 0x08 /* コアダンプした */ #define AXSIG 0x10 /* シクナルにより kill された */ char ac_flag; /* アカウンティングフラグ */ }; /* * 1/AHZ の粒度で、データは comp_t フィールドにエンコードされます。 * 必ずしも周波数と同一となるとは限りません。 */ #define AHZ 64 .Ed .Pp 終了したプロセスが .Xr execve 2 により生成されたものだった場合、 実行されたファイルのファイル名 (最大 10 文字まで) が .Fa ac_comm フィールドに保存され、その状態は .Fa ac_flag の次のフラグの 1 つ以上を設定することにより保存されます: .Dv AFORK , .Dv ASU , .Dv ACOMPAT , .Dv ACORE , .Dv ASIG 。 .Sh 関連項目 .Xr acct 2 , .Xr execve 2 , .Xr sa 8 .Sh 歴史 .Nm ファイルフォーマットは .At v7 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/ar.5 b/ja_JP.eucJP/man/man5/ar.5 index 3576cd36bd..a7729917bb 100644 --- a/ja_JP.eucJP/man/man5/ar.5 +++ b/ja_JP.eucJP/man/man5/ar.5 @@ -1,159 +1,159 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ar.5.5 8.1 (Berkeley) 6/9/93 -.\" %FreeBSD: src/usr.bin/ar/ar.5,v 1.5.2.1 2000/12/08 15:13:18 ru Exp % +.\" %FreeBSD: src/usr.bin/ar/ar.5,v 1.5.2.2 2001/12/14 15:53:29 ru Exp % .\" $FreeBSD$ .\" .\" WORD: archive アーカイブ .\" .Dd June 9, 1993 .Dt AR 5 .Os .Sh 名称 .Nm ar .Nd アーカイブ (ライブラリ) ファイルフォーマット .Sh 書式 -.Fd #include +.In ar.h .Sh 解説 アーカイブコマンド .Nm は複数のファイルをひとつにまとめます。 アーカイブは主にリンクエディタ .Xr ld 1 を使ってロードするための オブジェクトファイルのライブラリとして使用します。 .Pp .Nm によって作成されたファイルは ``マジック'' ストリング "!\en" で 始まっています。 アーカイブの残りはオブジェクトからなり、その各々はファイルのヘッダと ファイル名 (オプション) とファイルの中身から構成されます。 ヘッダは異なるマシンアーキテクチャ間で互換性のあるもので、 ファイルの内容が印字可能なものであれば アーカイブそのものも印字可能となります。 .Pp ヘッダは、可変長の .Tn ASCII のフィールド 6 つとそれに続く2 文字の終端から構成されます。 フィールドはオブジェクトの名前 (16 文字)、 ファイルの最終更新時間 (12 文字)、 ユーザとグループ ID (各々 6 文字)、 ファイルモード (8文字)、 それにファイルサイズ (10 文字) です。 全ての数字フィールドは 10 進数ですが、ファイルモードだけは 8 進数です。 .Pp 更新時間はファイルの .Fa st_mtime フィールドです。すなわち 基準時点 (epoch) からの時間 .Dv CUT 秒です。 ユーザ ID とグループ ID はファイルの .Fa st_uid と .Fa st_gid フィールドです。 ファイルモードはファイルの .Fa st_mode フィールドです。 ファイルサイズはファイルの .Fa st_size フィールドです。 最後の 2 バイトは文字列 "\`\en" となります。 .Pp 名前のフィールドに限りあふれることが考えられるため、以下のよ うに対応しています。 もしファイル名の長さが 16 文字を超えるかスペースを含む場合は、 名前のフィールドには文字列 "#1/" に続いてその名前の .Tn ASCII での長さが書き込まれます。 ファイルサイズ (アーカイブヘッダに書き込まれているもの) には その名前の長さが加算されます。 そして名前はアーカイブヘッダの直後に書かれます。 .Pp これらのフィールドにおいて使用されていない部分には 空白文字が書き込まれます。 もしフィールドにその最長の文字数が書き込まれていると、 フィールドの間の区切りはないことになります。 .Pp アーカイブ中のオブジェクトは常に偶数バイトの長さとなります。 ファイルの長さが奇数バイトである場合は 改行 (``\en'') 文字でパディングされます。 その場合、ヘッダ中のファイルサイズにはパディングの分は反映されません。 .Sh 関連項目 .Xr ar 1 , .Xr stat 2 .Sh 歴史 これまでに少なくとも 4 つの .Nm フォーマットがありました。 最初のものは先頭の ``マジック'' ナンバー 0177555 (int 型で書かれていた) で示されていました。 これらのアーカイブはほとんどが 16 ビットマシン上で作られたものであり、 ヘッダは 5 つのフィールドから構成されていました。 ヘッダのフィールドにはオブジェクト名 (8 文字)、 ファイルの最終更新時間 (long 型)、 ユーザ ID (char 型)、 ファイルモード (char 型)、 そしてファイルサイズ (符号なし int 型) がありました。 ファイルはバイト数で偶数長となるようにパディングされていました。 .Pp 2 つ目のものは先頭の ``マジック'' ナンバー 0177545 (int 型で書かれていた) で示されていました。 これらのアーカイブは 16 もしくは 32 ビットマシンで作られたものであり、 ヘッダは 6 つのフィールドから構成されていました。 フィールドにはオブジェクト名 (14 文字)、 ファイルの最終更新時間 (long 型)、 ユーザおよびグループ ID (各々 char 型)、 ファイルモード (int 型)、 そしてファイルサイズ (long 型) がありました。 ファイルはバイト数で偶数長となるようにパディングされていました。 .\" For more information on converting from this format see .\" .Xr arcv 8 . .Pp 現在のアーカイブフォーマット (長い名前とスペースを含む名前をサポートしていないもの) は .Bx 4.0 で導入されました。 ヘッダは現在のフォーマットと同じですが、 16 文字以上の名前は切り捨てられ、 スペースを含む名前 (および名前の末尾にスペースがつくもの) はサポートされていません。 これらの理由により、このフォーマットに前述の拡張がなされました。 現在のこのフォーマットは .Bx 4.4 で最初に出現しました。 .Sh 互換性 現在アーカイブフォーマットは標準では規定されていません。 .At V では、昔から上述のいずれとも異なるフォーマットの アーカイブで配布されています。 diff --git a/ja_JP.eucJP/man/man5/core.5 b/ja_JP.eucJP/man/man5/core.5 index bacdd28384..1bdd0bc521 100644 --- a/ja_JP.eucJP/man/man5/core.5 +++ b/ja_JP.eucJP/man/man5/core.5 @@ -1,134 +1,134 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)core.5 8.3 (Berkeley) 12/11/93 -.\" %FreeBSD: src/share/man/man5/core.5,v 1.8.2.3 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/core.5,v 1.8.2.4 2001/12/17 11:30:13 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/core.5,v 1.8 2001/07/23 02:26:58 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd December 11, 1993 .Dt CORE 5 .Os .Sh 名称 .Nm core .Nd メモリイメージのファイルフォーマット .Sh 書式 -.Fd #include +.In sys/param.h .Sh 解説 プロセスを異常終了させる少数のシグナルは、 プロセスのメモリ内状態の記録をディスクに書き出させる効果もあります。 これにより、デバッガを使用して後で検査を行うことが可能です。( .Xr sigaction 2 を参照してください。) このメモリイメージは、デフォルトでは作業ディレクトリの .Nm プログラム名.core という名前のファイルに書かれます。 ただし、終了したプロセスがそのディレクトリに書きこみ権限を持ち、 発生した異常がシステムを破壊しないことが前提です。 (システムが破壊された場合には、 コアファイルを保存するかどうかの決定は不定です。 .Xr savecore 8 を参照してください。) .Pp コアファイルの最大サイズは .Xr setrlimit 2 により制限されます。 制限よりも大きくなるファイルは生成されません。 ファイル名は .Xr sysctl 8 変数 .Va kern.corefile にて制御されます。 この変数の内容がコアイメージを格納するファイルの名前を示します。 このファイル名は絶対でも相対でもかまいません (後者の場合、コアを生成するプログラムの現在のディレクトリから解決されます)。 このファイル名テンプレート中のシーケンス .Em \&%N はプロセス名で置き換えられ、 .Em \&%P はプロセスの PID で置き換えられ、 .Em \&%U は UID で置き換えられます。 デフォルトの名前は .Em \&%N.core であり、伝統的な .Fx の振舞いとなります。 コアファイルは、(ページ数での) 大きさが .Aq Pa sys/param.h ファイルで .Dv UPAGES と定義されている .Fa u . 領域からなります。 .Fa u . 領域は .Aq Pa sys/user.h に記述されている .Fa user 構造体から始まります。 コアの残りの部分には、 データページに続いてプロセスイメージのスタックページが格納されます。 コアファイル中のデータ空間イメージの (ページ数での) 大きさは、 .Fa u . 領域の変数 .Fa u_dsize で与えられます。 コアファイル中のスタックイメージの (ページ数での) 大きさは、 .Fa u . 領域の変数 .Fa u_ssize で与えられます。 ``ページ'' サイズは定数 .Dv PAGE_SIZE で与えられます (これも .Aq Pa sys/param.h から与えられます)。 .Sh 使用例 全コアイメージを、 .Pa /var/coredumps 以下のユーザごとのプライベート領域に格納するためには、 次のように .Xr sysctl 8 コマンドを使用します: .Pp -.Dl sysctl -w kern.corefile="/var/coredumps/\&%U/\&%N.core" +.Dl sysctl kern.corefile="/var/coredumps/\&%U/\&%N.core" .Sh 関連項目 .Xr gdb 1 , .Xr kgdb 1 , .Xr setrlimit 2 , .Xr sigaction 2 , .Xr sysctl 8 .Sh 歴史 .Nm ファイルのフォーマットは .At v6 に登場しました。 diff --git a/ja_JP.eucJP/man/man5/dir.5 b/ja_JP.eucJP/man/man5/dir.5 index 259918c8e6..cbc863ee8a 100644 --- a/ja_JP.eucJP/man/man5/dir.5 +++ b/ja_JP.eucJP/man/man5/dir.5 @@ -1,170 +1,170 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)dir.5 8.3 (Berkeley) 4/19/94 -.\" %FreeBSD: src/share/man/man5/dir.5,v 1.12.2.4 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/dir.5,v 1.12.2.5 2001/12/17 11:30:13 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/dir.5,v 1.9 2001/07/23 02:26:58 horikawa Exp $ +.\" $FreeBSD$ .\" .\" WORD: graft 接合 [mount.8] .Dd April 19, 1994 .Dt DIR 5 .Os .Sh 名称 .Nm dir , .Nm dirent .Nd ディレクトリファイルフォーマット .Sh 書式 -.Fd #include +.In dirent.h .Sh 解説 ディレクトリは、土台となる記憶媒体の詳細を隠蔽し、 ファイルをグループ分けする便利な階層手段を提供します。 ディレクトリファイルは、その .Xr inode 5 エントリ中のフラグによって、通常ファイルと区別されます。 ディレクトリファイルはレコード (ディレクトリエントリ) から構成され、 各レコードはファイルに関する情報とそのファイル自身へのポインタを 含んでいます。 ディレクトリエントリは、通常ファイルと同様に、 他のディレクトリを含むこともあります。 そのような入れ子になったディレクトリはサブディレクトリと呼ばれます。 このようにしてディレクトリとファイルの階層構造が形成され、 この構造はファイルシステムと呼ばれます (あるいはファイルシステムツリー と呼ばれます)。 .\" 以下の3行は英語版にコメントの形で含まれていたもの .\" An entry in this tree, .\" nested or not nested, .\" is a pathname. .Pp 各ディレクトリファイルには特別なディレクトリエントリが 2 つあります。 1 つはそのディレクトリ自身へのポインタで、ドット .Ql .\& と呼ばれます。 もう 1 つは自分の親ディレクトリへのポインタで、ドットドット .Ql \&..\& と呼ばれます。 ドットとドットドットは有効なパス名ですが、 システムのルートディレクトリ .Ql / には親ディレクトリがなく、ドットドットはドットと同じく自分自身を指します。 .Pp ファイルシステムノードは普通のディレクトリファイルであり、 その上に物理ディスクやそのディスク中の分割された領域といった ファイルシステムオブジェクトを接合します ( .Xr mount 2 および .Xr mount 8 参照)。 .Pp ディレクトリエントリの形式はファイル .Aq sys/dirent.h で定義されています (これは直接アプリケーションからはインクルードされません): .Bd -literal #ifndef _SYS_DIRENT_H_ #define _SYS_DIRENT_H_ #include /* * dirent 構造体は、getdirentries(2) システムコールで返される * ディレクトリエントリのフォーマットを定義します。 * * ディレクトリエントリはその先頭に dirent 構造体を持ちます。dirent * 構造体は inode 番号、そのエントリの長さ、そのエントリに含まれる * 名前の長さを保持します。その後に、ナルで 4 バイト境界までパディング * した名前が続きます。名前は全てナルで終端していることが保証されます。 * ディレクトリ中の名前の長さの最大値は MAXNAMLEN です。 */ struct dirent { __uint32_t d_fileno; /* エントリのファイル番号 */ __uint16_t d_reclen; /* このレコードの長さ */ __uint8_t d_type; /* ファイルタイプ, 以下参照 */ __uint8_t d_namlen; /* d_name の文字列長 */ #ifdef _POSIX_SOURCE char d_name[255 + 1]; /* 名前はこの長さを越えてはならない */ #else #define MAXNAMLEN 255 char d_name[MAXNAMLEN + 1]; /* 名前はこの長さを越えてはならない */ #endif }; /* * ファイルタイプ */ #define DT_UNKNOWN 0 #define DT_FIFO 1 #define DT_CHR 2 #define DT_DIR 4 #define DT_BLK 6 #define DT_REG 8 #define DT_LNK 10 #define DT_SOCK 12 #define DT_WHT 14 /* * stat 構造体型とディレクトリ型との変換 */ #define IFTODT(mode) (((mode) & 0170000) >> 12) #define DTTOIF(dirtype) ((dirtype) << 12) /* * _GENERIC_DIRSIZ マクロはディレクトリエントリを保持する最小レコード長を * 与えます。これは d_name フィールド以外の dirent 構造体の空間に、ナル * バイトで終端される名前のために十分な空間 (dp->d_namlen+1) を加えたもの * を、4 バイト単位で繰り上げたものです。 */ #define _GENERIC_DIRSIZ(dp) \ ((sizeof (struct dirent) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3)) #ifdef _KERNEL #define GENERIC_DIRSIZ(dp) _GENERIC_DIRSIZ(dp) #endif .Ed .Sh 関連項目 .Xr fs 5 , .Xr inode 5 .Sh BUGS struct dirent のメンバ d_type は .Fx 固有であり、 使用はポータブルではありません。 また、特定のファイルシステム、例えば cd9660 ファイルシステムでは失敗します。 .Sh 歴史 ファイル形式 .Nm は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man5/disklabel.5 b/ja_JP.eucJP/man/man5/disklabel.5 index 586ca49dba..c2cb90ee32 100644 --- a/ja_JP.eucJP/man/man5/disklabel.5 +++ b/ja_JP.eucJP/man/man5/disklabel.5 @@ -1,560 +1,560 @@ .\" Copyright (c) 1987, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Symmetric Computer Systems. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)disklabel.5.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/sbin/disklabel/disklabel.5,v 1.7.2.2 2001/07/22 11:32:22 dd Exp % +.\" %FreeBSD: src/sbin/disklabel/disklabel.5,v 1.7.2.3 2001/12/14 15:17:48 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/disklabel.5,v 1.9 2001/05/14 01:09:27 horikawa Exp $ +.\" $FreeBSD$ .\" .\" WORD: initial bootstrap 初期ブートストラップ .\" WORD: initial label 初期ラベル .\" WORD: primary bootstrap 一次ブートストラップ .\" WORD: secondary bootstrap 二次ブートストラップ .\" WORD: ratio of physical sectors traversed per logical sector 論理セクタあたりの物理セクタ通過率 .\" .Dd June 5, 1993 .Dt DISKLABEL 5 .Os .Sh 名称 .Nm disklabel .Nd ディスクパックラベル .Sh 書式 -.Fd #include +.In sys/disklabel.h .Sh 解説 システム上のそれぞれのディスクやディスクパックは、ディスクのジオメトリ やディスクを分割しているパーティションについての詳細な情報を提供する ディスクラベルを持っています。 ディスクラベルはディスクがフォーマットされたときに 初期化されなければならず、 後から .Xr disklabel 8 プログラムによって変更することができます。 システムディクスドライバやブートストラッププログラムがこの情報を使って、 ドライブのプログラム方法や、ディスクパーティション上の ファイルシステムの見つけ方を決定します。 ファイルシステムは、付加的な情報を使ってディスクを最も効果的に使い、 重要なファイルシステム情報の位置を特定します。 各パーティションの記述は、パーティションタイプ(標準ファイル、スワップ 領域等)の識別子を含みます。 ラベルのメモリ内コピーにあるファイルシステム情報が不完全な場合には、 ファイルシステムはそれを更新します。 .Pp ラベルは、ドライブのセクタ番号 .Dv LABELSECTOR にあります。 通常は、ディスクジオメトリについての情報がなくても見つけられる、 セクタ 0 にあります。 ラベルは、初期ブートストラップの場所を確保するために、 セクタの先頭からオフセット .Dv LABELOFFSET にあります。 ラベルを含むディスクセクタは、通常読み込み専用になっています。 これは、 パックからパックへの複写やスワップ操作時に .Xr disklabel 8 プログラムによって必要に応じて行なわれる .Dv DIOCWLABEL .Xr ioctl 2 により不用意に上書きされないようにするためです。 .Pp ディスクのメモリ内ラベルコピーは .Dv DIOCGDINFO .Xr ioctl 2 で得られます。 この操作は、ディスクの任意のパーティションに対するブロックデバイスや キャラクタ (``raw'') デバイスへのファイル記述子に対して 行うことができます。 また、ディスクのメモリ内ラベルコピーは .Dv DIOCSDINFO .Xr ioctl 2 によりセットされます。 パーティションのオフセットは、一般にパーティションがオープンされている ときには変更したり小さくしたりはできません。 ただし例外として、ディスクにラベルが見つからず、ドライバが パーティション情報を含まない骨組みのラベルだけを構築できるときには、 どんな変更も許されます。 最後に、 .Dv DIOCWDINFO .Xr ioctl 2 操作がメモリ内のラベルをセットし、ディスク上のラベルを更新します。 この操作が成功するためにはディスク上にラベルが存在しなければなりません。 つまり、ディスクやディスクパックの初期ラベルは生の (raw) ディスクに 対して書き込むことでインストールされなければなりません。 これらの操作はすべて、普通 .Xr disklabel 8 コマンドを使って行なわれます。 .Pp .Pa で指定されるようにディスクラベルのフォーマットは以下のようになります。 .Bd -literal #ifndef _SYS_DISKLABEL_H_ #define _SYS_DISKLABEL_H_ #ifndef _KERNEL #include #endif #include /* * ディスク記述テーブル, disktab(5) を参照 */ #define _PATH_DISKTAB "/etc/disktab" #define DISKTAB "/etc/disktab" /* 非推奨 */ /* * 各ディスクはハードウェアディスクジオメトリ、ファイルシステムパーティション、 * ドライブ固有の情報についての情報を含むラベルを持っています。 * ラベルはブロック 0 か 1 、つまりブートストラップ等のための場所を空けて * なるべく先頭のオフセットにあります。 */ /* * XXX これらの情報はコントローラ毎 (またはドライブ毎) にどこか別のところで * XXX 定義されるべきであり、ここで定義すべきではありません! */ #ifdef __i386__ #define LABELSECTOR 1 /* sector containing label */ #define LABELOFFSET 0 /* offset of label in sector */ #endif #ifdef __alpha__ #define LABELSECTOR 0 #define LABELOFFSET 64 #endif #ifndef LABELSECTOR #define LABELSECTOR 0 /* ラベルを含むセクタ */ #endif #ifndef LABELOFFSET #define LABELOFFSET 64 /* セクタ内のラベルのオフセット */ #endif #define DISKMAGIC ((u_long32_t)0x82564557) /* ディスクのマジックナンバ */ #ifndef MAXPARTITIONS #define MAXPARTITIONS 8 #endif #define LABEL_PART 2 /* パーティションはラベルを含む */ #define RAW_PART 2 /* パーティションはディスク全体を含む */ #define SWAP_PART 1 /* パーティションは通常はスワップを含む */ #ifndef LOCORE struct disklabel { u_int32_t d_magic; /* マジックナンバ */ u_int16_t d_type; /* ドライブタイプ */ u_int16_t d_subtype; /* コントローラ/d_type に固有 */ char d_typename[16]; /* タイプ名、たとえば "eagle" */ /* * d_packname は、パック識別子を含み、ディスク上やメモリ内コピーの * ディスクラベルを読んだときに返されます。 * d_boot0 と d_boot1 は、/boot にある一次 (block 0) または * 二次 (block 1-15) ブートストラップの (省略可能な) 名前です。 * この名は、/etc/disktab から値を取り出すために getdiskbyname(3) * を使う場合に返されます。 */ union { char un_d_packname[16]; /* パック識別子 */ struct { char *un_d_boot0; /* 一次ブートストラップ名 */ char *un_d_boot1; /* 二次ブートストラップ名 */ } un_b; } d_un; #define d_packname d_un.un_d_packname #define d_boot0 d_un.un_b.un_d_boot0 #define d_boot1 d_un.un_b.un_d_boot1 /* ディスクジオメトリ */ u_int32_t d_secsize; /* セクタあたりのバイト数 */ u_int32_t d_nsectors; /* トラックあたりのデータセクタ数 */ u_int32_t d_ntracks; /* シリンダあたりのトラック数 */ u_int32_t d_ncylinders; /* ユニットあたりのデータシリンダ数 */ u_int32_t d_secpercyl; /* シリンダあたりのデータセクタ数 */ u_int32_t d_secperunit; /* ユニットあたりのデータセクタ数 */ /* * 以下の予備 (不良セクタ置換) は in d_nsectors や d_secpercyl * には数えられません。 * 予備セクタは、各トラックまたはシリンダの末尾の場所を占める * 物理セクタにあることにします。 */ u_int16_t d_sparespertrack; /* トラックあたりの予備セクタ */ u_int16_t d_sparespercyl; /* シリンダあたりの予備セクタ */ /* * メインテナンス、置換、コンフィギュレーション記述領域等を * 含む交替シリンダ */ u_int32_t d_acylinders; /* ユニットあたりの交替シリンダ */ /* ハードウェア特性 */ /* * d_interleave, d_trackskew, d_cylskew は、遅いコントローラの * 埋め合わせに使うための、メディアフォーマット中の * ぶれを記述します。 * interleave は、フォーマット時にフォーマッタやコントローラに * よって設定される物理セクタインタリーブです。 * インタリーブが使われているとき、論理的に隣り合ったセクタは * 物理的には連続ではなく、幾つかのセクタに分断されています。 * これは論理セクタあたりの物理セクタ通過率として指定されます。 * すなわち、1:1 のインタリーブは連続したレイアウトを意味し、 * 2:1 は論理セクタ 0 が論理セクタ 1 から 1 セクタ離れていること * を意味します。 * d_trackskew は、同一シリンダ上でトラック N-1 上のセクタ 0 から * トラック N のセクタ 0 の相対的なオフセットです。 * 最後の d_cylskew は、シリンダ N-1 上のセクタ 0 からシリンダ N * 上のセクタ 0 の相対的なオフセットです。 */ u_int16_t d_rpm; /* 回転スピード */ u_int16_t d_interleave; /* ハードウェアセクタインタリーブ */ u_int16_t d_trackskew; /* トラックあたりのセクタ 0 スキュー */ u_int16_t d_cylskew; /* シリンダあたりのセクタ 0 スキュー */ u_int32_t d_headswitch; /* ハードスイッチ時間 usec */ u_int32_t d_trkseek; /* トラック間シーク usec */ u_int32_t d_flags; /* 一般フラグ */ #define NDDATA 5 u_int32_t d_drivedata[NDDATA]; /* ドライブの型固有の情報 */ #define NSPARE 5 u_int32_t d_spare[NSPARE]; /* 将来使うための予備 */ u_int32_t d_magic2; /* マジックナンバ (再度) */ u_int16_t d_checksum; /* データを含むパーティションの xor */ /* ファイルシステムとパーティション情報 */ u_int16_t d_npartitions; /* 後に続くパーティション数 */ u_int32_t d_bbsize; /* sn0 のブート領域の大きさ(バイト単位) */ u_int32_t d_sbsize; /* fs スーパブロックの最大サイズ(バイト単位) */ struct partition { /* パーティションテーブル */ u_int32_t p_size; /* パーティション内のセクタ数 */ u_int32_t p_offset; /* 開始セクタ */ u_int32_t p_fsize; /* ファイルシステム規定フラグメントサイズ */ u_int8_t p_fstype; /* ファイルシステムタイプ、下記参照 */ u_int8_t p_frag; /* ブロックあたりのファイルシステムフラグメント */ union { u_int16_t cpg; /* UFS: FS グループあたりのシリンダ数 */ u_int16_t sgs; /* LFS: FS セグメントシフト */ } __partition_u1; #define p_cpg __partition_u1.cpg #define p_sgs __partition_u1.sgs } d_partitions[MAXPARTITIONS]; /* 実際にはもっとある */ }; #else /* LOCORE */ /* * asm ブートファイル用のオフセット */ .set d_secsize,40 .set d_nsectors,44 .set d_ntracks,48 .set d_ncylinders,52 .set d_secpercyl,56 .set d_secperunit,60 .set d_end_,276 /* ディスクラベルの大きさ */ #endif /* LOCORE */ /* d_type values: */ #define DTYPE_SMD 1 /* SMD, XSMD; VAX hp/up */ #define DTYPE_MSCP 2 /* MSCP */ #define DTYPE_DEC 3 /* その他の DEC (rk, rl) */ #define DTYPE_SCSI 4 /* SCSI */ #define DTYPE_ESDI 5 /* ESDI インタフェース */ #define DTYPE_ST506 6 /* ST506 他 */ #define DTYPE_HPIB 7 /* HP-IB 上の CS/80 */ #define DTYPE_HPFL 8 /* HP ファイバリンク */ #define DTYPE_FLOPPY 10 /* フロッピ */ #define DTYPE_CCD 11 /* コンカチネート化ディスク */ #define DTYPE_VINUM 12 /* vinum ボリューム */ #define DTYPE_DOC2K 13 /* Msys DiskOnChip */ #if defined(PC98) && !defined(PC98_ATCOMPAT) #define DSTYPE_SEC256 0x80 /* 物理セクタサイズは 256 */ #endif #ifdef DKTYPENAMES static char *dktypenames[] = { "unknown", "SMD", "MSCP", "old DEC", "SCSI", "ESDI", "ST506", "HP-IB", "HP-FL", "type 9", "floppy", "CCD", "Vinum", "DOC2K", NULL }; #define DKMAXTYPES (sizeof(dktypenames) / sizeof(dktypenames[0]) - 1) #endif /* * ファイルシステムタイプとバージョン * パーティションあたりの他のファイルシステム固有情報に使われます。 */ #define FS_UNUSED 0 /* 未使用 */ #define FS_SWAP 1 /* スワップ */ #define FS_V6 2 /* 第 6 版 */ #define FS_V7 3 /* 第 7 版 */ #define FS_SYSV 4 /* System V */ #define FS_V71K 5 /* 7 版 1K ブロック (4.1, 2.9) */ #define FS_V8 6 /* 8 版 4K ブロック */ #define FS_BSDFFS 7 /* 4.2BSD 高速ファイルシステム */ #define FS_MSDOS 8 /* MSDOS ファイルシステム */ #define FS_BSDLFS 9 /* 4.4BSD ログ構造ファイルシステム */ #define FS_OTHER 10 /* 使用中だが未知/未サポート */ #define FS_HPFS 11 /* OS/2 高性能ファイルシステム */ #define FS_ISO9660 12 /* ISO 9660, 通常は CD-ROM */ #define FS_BOOT 13 /* ブートストラップを含むパーティション */ #define FS_VINUM 14 /* Vinum ドライブ */ #ifdef DKTYPENAMES static char *fstypenames[] = { "unused", "swap", "Version 6", "Version 7", "System V", "4.1BSD", "Eighth Edition", "4.2BSD", "MSDOS", "4.4LFS", "unknown", "HPFS", "ISO9660", "boot", "vinum", NULL }; #define FSMAXTYPES (sizeof(fstypenames) / sizeof(fstypenames[0]) - 1) #endif /* * 多様なドライブが共有するフラグ */ #define D_REMOVABLE 0x01 /* リムーバブルメディア */ #define D_ECC 0x02 /* ECC サポート */ #define D_BADSECT 0x04 /* バッドセクタフォワードのサポート */ #define D_RAMDISK 0x08 /* ディスクエミュレータ */ #define D_CHAIN 0x10 /* 連続転送可能 */ /* * SMD のドライブデータ */ #define d_smdflags d_drivedata[0] #define D_SSE 0x1 /* セクタスキップのサポート */ #define d_mindist d_drivedata[1] #define d_maxdist d_drivedata[2] #define d_sdist d_drivedata[3] /* * ST506 のドライブデータ */ #define d_precompcyl d_drivedata[0] #define d_gap3 d_drivedata[1] /* フォーマット時にのみ使用 */ /* * SCSI のドライブデータ */ #define d_blind d_drivedata[0] #ifndef LOCORE /* * フォーマットや生の操作をする際に使われる * 構造体で、データやレジスタ値を返します。 * レジスタの識別とフォーマットは、 * デバイス依存、ドライバ依存です。 */ struct format_op { char *df_buf; int df_count; /* 値-結果 */ daddr_t df_startblk; int df_reg[8]; /* 結果 */ }; /* * ディスク上のパーティションに関する情報を * 引き出すために内部で使われる構造体 */ struct partinfo { struct disklabel *disklab; struct partition *part; }; /* DOS パーティションテーブル -- ブートブロックにあります */ #if defined(PC98) && !defined(PC98_ATCOMPAT) #define DOSBBSECTOR 0 /* DOS ブートブロックの相対セクタ番号 */ #define DOSLABELSECTOR 1 /* 0: 256b/s, 1: 512b/s */ #define DOSPARTOFF 0 #define NDOSPART 16 #define DOSPTYP_386BSD 0x94 /* 386BSD パーティションタイプ */ #define MBR_PTYPE_FreeBSD 0x94 /* FreeBSD パーティションタイプ */ struct dos_partition { unsigned char dp_mid; #define DOSMID_386BSD (0x14|0x80) /* 386bsd|bootable */ unsigned char dp_sid; #define DOSSID_386BSD (0x44|0x80) /* 386bsd|active */ unsigned char dp_dum1; unsigned char dp_dum2; unsigned char dp_ipl_sct; unsigned char dp_ipl_head; unsigned short dp_ipl_cyl; unsigned char dp_ssect; /* 先頭セクタ */ unsigned char dp_shd; /* 先頭ヘッド */ unsigned short dp_scyl; /* 先頭シリンダ */ unsigned char dp_esect; /* 終端セクタ */ unsigned char dp_ehd; /* 終端ヘッド */ unsigned short dp_ecyl; /* 終端シリンダ */ unsigned char dp_name[16]; }; #else /* IBMPC */ #define DOSBBSECTOR 0 /* DOS ブートブロックの相対セクタ番号 */ #define DOSPARTOFF 446 #define NDOSPART 4 #define DOSPTYP_386BSD 0xa5 /* 386BSD パーティションタイプ */ struct dos_partition { unsigned char dp_flag; /* ブートストラップフラグ */ unsigned char dp_shd; /* 先頭ヘッド */ unsigned char dp_ssect; /* 先頭セクタ */ unsigned char dp_scyl; /* 先頭シリンダ */ unsigned char dp_typ; /* パーティションタイプ */ unsigned char dp_ehd; /* 終端ヘッド */ unsigned char dp_esect; /* 終端セクタ */ unsigned char dp_ecyl; /* 終端シリンダ */ u_int32_t dp_start; /* 絶対的な先頭セクタ番号 */ u_int32_t dp_size; /* セクタ数でのパーティションサイズ */ }; #endif #define DPSECT(s) ((s) & 0x3f) /* セクタ用のビットの分離 */ #define DPCYL(c, s) ((c) + (((s) & 0xc0)<<2)) /* こちらはシリンダ用 */ /* * ディスク固有の ioctl */ /* ディスクラベルの取得と設定; 内部では DIOCGPART が使われる */ #define DIOCGDINFO _IOR('d', 101, struct disklabel)/* 取得 */ #define DIOCSDINFO _IOW('d', 102, struct disklabel)/* 設定 */ #define DIOCWDINFO _IOW('d', 103, struct disklabel)/* 設定、ディスク更新 */ #define DIOCGPART _IOW('d', 104, struct partinfo) /* パーティション取得 */ #define DIOCWLABEL _IOW('d', 109, int) /* ラベルの書き込み可/不可 */ #ifdef _KERNEL /* * XXX ディスクマイナ番号のエンコーディングは別のところにあるべきです。 * * より良い可能性のエンコーディングについては を参照ください。 * * "cpio -H newc" で大きなマイナ番号のデバイスファイル (しかし 2^31 未満) * をバックアップ可能です。古い cpio フォーマットと全 tar フォーマットでは * ビット数が不十分であり、また cpio と tar はビット喪失を報告しません。 * また、符号拡張にバグがあります。 */ /* 3 2 1 0 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 _________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------------------------------------- | TYPE |UNIT_2 | SLICE | MAJOR? | UNIT |PART | ----------------------------------------------------------------- */ #define dkmakeminor(unit, slice, part) \e (((slice) << 16) | (((unit) & 0x1e0) << 16) | \e (((unit) & 0x1f) << 3) | (part)) static __inline dev_t dkmodpart(dev_t dev, int part) { return (makedev(major(dev), (minor(dev) & ~7) | part)); } static __inline dev_t dkmodslice(dev_t dev, int slice) { return (makedev(major(dev), (minor(dev) & ~0x1f0000) | (slice << 16))); } #define dkpart(dev) (minor(dev) & 7) #define dkslice(dev) ((minor(dev) >> 16) & 0x1f) #define dktype(dev) ((minor(dev) >> 25) & 0x7f) static __inline u_int dkunit(dev_t dev) { return (((minor(dev) >> 16) & 0x1e0) | ((minor(dev) >> 3) & 0x1f)); } struct buf; struct buf_queue_head; int bounds_check_with_label __P((struct buf *bp, struct disklabel *lp, int wlabel)); void diskerr __P((struct buf *bp, char *what, int pri, int blkdone, struct disklabel *lp)); void disksort __P((struct buf *ap, struct buf *bp)); u_int dkcksum __P((struct disklabel *lp)); char *readdisklabel __P((dev_t dev, struct disklabel *lp)); void bufqdisksort __P((struct buf_queue_head *ap, struct buf *bp)); int setdisklabel __P((struct disklabel *olp, struct disklabel *nlp, u_long openmask)); int writedisklabel __P((dev_t dev, struct disklabel *lp)); #ifdef __alpha__ void alpha_fix_srm_checksum __P((struct buf *bp)); #endif #endif /* _KERNEL */ #endif /* LOCORE */ #ifndef _KERNEL __BEGIN_DECLS struct disklabel *getdiskbyname __P((const char *)); __END_DECLS #endif #endif /* !_SYS_DISKLABEL_H_ */ .Ed .Sh 関連項目 .Xr disktab 5 , .Xr disklabel 8 diff --git a/ja_JP.eucJP/man/man5/disktab.5 b/ja_JP.eucJP/man/man5/disktab.5 index 1e0937d4d7..65f215f000 100644 --- a/ja_JP.eucJP/man/man5/disktab.5 +++ b/ja_JP.eucJP/man/man5/disktab.5 @@ -1,140 +1,140 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)disktab.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man5/disktab.5,v 1.4.2.4 2001/08/17 13:08:47 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/disktab.5,v 1.9 2001/07/23 02:26:58 horikawa Exp $ +.\" %FreeBSD: src/share/man/man5/disktab.5,v 1.4.2.5 2001/12/17 11:30:13 ru Exp % +.\" $FreeBSD$ .\" .Dd June 5, 1993 .Dt DISKTAB 5 .Os .Sh 名称 .Nm disktab .Nd ディスク記述ファイル .Sh 書式 -.Fd #include +.In disktab.h .Sh 解説 .Nm は、ディスクジオメトリとディスクパーティション特性を記述する 簡単なデータベースで、 .\"by the formatter(\c .\"IR.Xr format 8 ) .\"to determine how to format the disk, and ディスク上のディスクラベルを初期化する際に使われます。 フォーマットは .Xr termcap 5 端末データベースと同様のパターンです。 .Nm 内のエントリは、たくさんの `:' で区切られたフィールドからなります。 各ディスクの最初のエントリは `|' 文字で区切られていて、そのディスクの 既知の名前を与えます。最後の名前はディスクをディスクを識別する完全に 長い名前でなければなりません。 .Pp 以下のリストは、各ディスクエントリのための通常の値です。 .Bl -column "indent" "boolx" .It Sy "名前 型 解説 .It "\&ty str ディスクの種類 (例えば removable, winchester)" .It "\&dt str コントローラの種類 (例えば " .Tn SMD , ESDI , フロッピー) .It "\&ns num トラックあたりのセクタ数" .It "\&nt num シリンダあたりのトラック数" .It "\&nc num ディスク上の総シリンダ数" .It "\&sc num シリンダあたりのセクタ数、デフォルトは nc*nt" .It "\&su num ユニットあたりのセクタ数、デフォルトは sc*nc" .It "\&se num バイト単位のセクタサイズ" デフォルトは .Dv DEV_BSIZE .It "\&sf bool コントローラが bad144 スタイルのバッドセクタフォワードをサポートする" .It "\&rm num 回転スピード (rpm), デフォルトは 3600" .It "\&sk num トラックあたりのセクタスキュー、デフォルトは 0" .It "\&cs num シリンダあたりのセクタスキュー、デフォルトは 0" .It "\&hs num ヘッドスイッチ時間 (usec), デフォルトは 0" .It "\&ts num 1 シリンダシーク時間 (usec), デフォルト 0" .It "\&il num セクタインタリーブ (n:1), デフォルトは 1" .It "\&d[0-4] num ドライブタイプ依存パラメータ" .It "\&bs num ブートブロックサイズ、デフォルト" .Dv BBSIZE .It "\&sb num スーパブロックサイズ、デフォルト" .Dv SBSIZE .It "\&ba num パーティション `a' のブロックサイズ (bytes)" .It "\&bd num パーティション `d' のブロックサイズ (bytes)" .It "\&be num パーティション `e' のブロックサイズ (bytes)" .It "\&bf num パーティション `f' のブロックサイズ (bytes)" .It "\&bg num パーティション `g' のブロックサイズ (bytes)" .It "\&bh num パーティション `h' のブロックサイズ (bytes)" .It "\&fa num パーティション `a' のフラグメントサイズ (bytes)" .It "\&fd num パーティション `d' のフラグメントサイズ (bytes)" .It "\&fe num パーティション `e' のフラグメントサイズ (bytes)" .It "\&ff num パーティション `f' のフラグメントサイズ (bytes)" .It "\&fg num パーティション `g' のフラグメントサイズ (bytes)" .It "\&fh num パーティション `h' のフラグメントサイズ (bytes)" .It "\&oa num パーティション `a' のセクタ内オフセット" .It "\&ob num パーティション `b' のセクタ内オフセット" .It "\&oc num パーティション `c' のセクタ内オフセット" .It "\&od num パーティション `d' のセクタ内オフセット" .It "\&oe num パーティション `e' のセクタ内オフセット" .It "\&of num パーティション `f' のセクタ内オフセット" .It "\&og num パーティション `g' のセクタ内オフセット" .It "\&oh num パーティション `h' のセクタ内オフセット" .It "\&pa num パーティション `a' セクタサイズ" .It "\&pb num パーティション `b' セクタサイズ" .It "\&pc num パーティション `c' セクタサイズ" .It "\&pd num パーティション `d' セクタサイズ" .It "\&pe num パーティション `e' セクタサイズ" .It "\&pf num パーティション `f' セクタサイズ" .It "\&pg num パーティション `g' セクタサイズ" .It "\&ph num パーティション `h' セクタサイズ" .It "\&ta str パーティション `a' のパーティションタイプ" .Pf ( Bx 4.2 ファイルシステム, スワップ他) .It "\&tb str パーティション `b のパーティションタイプ" .It "\&tc str パーティション `c のパーティションタイプ" .It "\&td str パーティション `d のパーティションタイプ" .It "\&te str パーティション `e のパーティションタイプ" .It "\&tf str パーティション `f のパーティションタイプ" .It "\&tg str パーティション `g のパーティションタイプ" .It "\&th str パーティション `h のパーティションタイプ" .El .Sh 関連ファイル .Bl -tag -width /etc/disktab -compact .It Pa /etc/disktab .El .Sh 関連項目 .Xr getdiskbyname 3 , .Xr disklabel 5 , .Xr disklabel 8 , .Xr newfs 8 .Sh 歴史 .Nm この記述ファイルは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/elf.5 b/ja_JP.eucJP/man/man5/elf.5 index e049d9a67a..34c280ab97 100644 --- a/ja_JP.eucJP/man/man5/elf.5 +++ b/ja_JP.eucJP/man/man5/elf.5 @@ -1,1357 +1,1357 @@ .\"Copyright (c) 1999 Jeroen Ruigrok van der Werven .\"All rights reserved. .\" .\"Redistribution and use in source and binary forms, with or without .\"modification, are permitted provided that the following conditions .\"are met: .\"1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\"2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\"THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\"ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\"ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\"FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\"DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\"OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\"HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\"LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\"OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\"SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/elf.5,v 1.6.2.7 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/elf.5,v 1.6.2.8 2001/12/17 11:30:13 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/elf.5,v 1.10 2001/07/23 02:26:58 horikawa Exp $ +.\" $FreeBSD$ .Dd July 31, 1999 .Dt ELF 5 .Os FreeBSD .Sh 名称 .Nm elf .Nd ELF 実行形式バイナリファイルのフォーマット .Sh 書式 -.Fd #include +.In elf.h .Sh 解説 ヘッダファイル .Aq Pa elf.h は、ELF 実行形式バイナリファイルのフォーマットを定義しています。 ELF には普通の実行可能ファイル、再配置可能なオブジェクトファイル、 コアファイル、共有ライブラリがあります。 .Pp ELF ファイルフォーマットを使っている 実行可能ファイルは ELF ヘッダを持ちます。 そして、プログラムヘッダテーブルか、 セクションヘッダテーブル、あるいはその両方が続きます。 ELF ヘッダは、常にファイルのオフセット 0 にあります。 プログラムヘッダテーブルと セクションヘッダテーブルのファイル中のオフセットは、 ELF ヘッダで定義されています。 2 つのテーブルは、ファイルの特徴の残りの部分を記述します。 .Pp ネイティブアーキテクチャの ELF バイナリファイルを処理するアプリケーションは、 そのソースコードに .Pa elf.h をインクルードするだけですみます。 これらのアプリケーションは、総称名 .Dq Elf_xxx による全タイプと構造体への参照を含む必要があり、 .Dq ELF_xxx によるマクロへの参照を含む必要があるでしょう。 このようにして記述されたアプリケーションは、 どのようなアーキテクチャであっても、 ホストが 32 ビットなのか、あるいは 64 ビットなのか ということを気にしないで、コンパイル可能です。 .Pp 未知のアーキテクチャの ELF ファイルを処理する必要があるアプリケーションは、 .Pa elf.h ではなく、 .Pa sys/elf32.h と .Pa sys/elf64.h の両方をインクルードする必要があります。 さらに、全てのタイプと構造体は、 .Dq Elf32_xxx か .Dq Elf64_xxx によって区別する必要があります。 マクロは、 .Dq ELF32_xxx または .Dq ELF64_xxx によって区別する必要があります。 .Pp システムのアーキテクチャがたとえ何であっても、常に .Pa sys/elf_generic.h だけでなく、 .Pa sys/elf_common.h もインクルードします。 .Pp これらのヘッダファイルでは、 上で言及したヘッダを C 構造体として記述し、 これに加えて動的セクションと 再配置セクションとシンボルテーブルのための構造体を含んでいます。 .Pp 以下のタイプが、32 ビットアーキテクチャのために使われています: .Bd -literal -offset indent Elf32_Addr 符号無しプログラムアドレス Elf32_Half 符号無しハーフワードフィールド Elf32_Off 符号無しファイルオフセット Elf32_Sword 符号付き大整数 Elf32_Word フィールドまたは符号無し大整数 Elf32_Size 符号無しオブジェクトサイズ .Ed .Pp 64 ビットアーキテクチャ用に以下のタイプが用意されています: .Bd -literal -offset indent Elf64_Addr 符号無しプログラムアドレス Elf64_Half 符号無しハーフワードフィールド Elf64_Off 符号無しファイルオフセット Elf64_Sword 符号付き大整数 Elf64_Word フィールドまたは符号無し大整数 Elf64_Size 符号無しオブジェクトサイズ Elf64_Quarter 符号無しクォータワードフィールド .Ed .Pp ELF ファイルフォーマットが定義する全てのデータ構造は、 関連するクラスのために .Dq 自然な サイズと境界調整のガイドラインに従っています。 必要ならば、データ構造は、4 バイトオブジェクトが 4 バイト境界となることを保証するために、 構造体のサイズを強制的に 4 の倍数にするとかいった手段で、 明示的なパディングを含めます。 .Pp ELF ヘッダは、Elf32_Ehdr 型または Elf64_Ehdr 型によって記述されています: .Bd -literal -offset indent typedef struct { unsigned char e_ident[EI_NIDENT]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; } Elf32_Ehdr; .Ed .Pp .Bd -literal -offset indent typedef struct { unsigned char e_ident[EI_NIDENT]; Elf64_Quarter e_type; Elf64_Quarter e_machine; Elf64_Half e_version; Elf64_Addr e_entry; Elf64_Off e_phoff; Elf64_Off e_shoff; Elf64_Half e_flags; Elf64_Quarter e_ehsize; Elf64_Quarter e_phentsize; Elf64_Quarter e_phnum; Elf64_Quarter e_shentsize; Elf64_Quarter e_shnum; Elf64_Quarter e_shstrndx; } Elf64_Ehdr; .Ed .Pp フィールドは、以下の意味を持っています: .Pp .Bl -tag -width "e_phentsize" -compact -offset indent .It Dv e_ident このバイト配列はファイルをどのように解釈すべきかを指定します。 これは、プロセッサまたはファイルの残りの内容から独立しています。 この配列中の全要素は、 .Sy EI_ で開始するマクロにより名付けられ、また先頭に .Sy ELF がついた値を持ち得ます。 以下のマクロが定義されています: .Pp .Bl -tag -width "EI_ABIVERSION" -compact .It Dv EI_MAG0 マジック番号の第 1 のバイト。 .Sy ELFMAG0 であることが必要です。 .It Dv EI_MAG1 マジック番号の第 2 のバイト。 .Sy ELFMAG1 であることが必要です。 .It Dv EI_MAG2 マジック番号の第 3 のバイト。 .Sy ELFMAG2 であることが必要です。 .It Dv EI_MAG3 マジック番号の第 4 のバイト。 .Sy ELFMAG3 であることが必要です。 .It Dv EI_CLASS 第 5 のバイトは、当該のバイナリファイルのアーキテクチャを識別します: .Pp .Bl -tag -width "ELFCLASSNONE" -compact .It Dv ELFCLASSNONE このクラスは、不当です。 .It Dv ELFCLASS32 これは、32 ビットアーキテクチャを定義します。 ファイル空間と仮想アドレス空間が 4 ギガバイトまでにおさまる マシンに対応します。 .It Dv ELFCLASS64 これは、64 ビットアーキテクチャを定義します。 .El .It Dv EI_DATA 第 6 のバイトは、 ファイルのプロセッサ固有データのエンコーディングを指定します。 現在、次のエンコーディングがサポートされています: .Pp .Bl -tag -width "ELFDATA2LSB" -compact .It Dv ELFDATANONE 未知のデータフォーマット。 .It Dv ELFDATA2LSB 2 の補数、リトルエンディアン。 .It Dv ELFDATA2MSB 2 の補数、ビッグエンディアン。 .El .It Dv EI_VERSION ELF 仕様書のバージョンナンバ: .Pp .Bl -tag -width "EV_CURRENT" -compact .It Dv EV_NONE 不当なバージョン。 .It Dv EV_CURRENT 現在のバージョン。 .El .It Dv EI_OSABI このバイトは、オブジェクトの対象である、 オペレーティングシステムと ABI を識別します。 他の ELF 構造中のフィールドには、 プラットフォーム依存の意味のものがあります。 そのようなフィールドの解釈は、このバイトの値で決定されます。 次の値が現在定義されています: .Pp .Bl -tag -width "ELFOSABI_STANDALONE" -compact .It Dv ELFOSABI_SYSV UNIX System V ABI。 .It Dv ELFOSABI_HPUX HP-UX オペレーティングシステム ABI。 .It Dv ELFOSABI_NETBSD .Nx オペレーティングシステム ABI。 .It Dv ELFOSABI_LINUX GNU/Linux オペレーティングシステム ABI。 .It Dv ELFOSABI_HURD GNU/Hurd オペレーティングシステム ABI。 .It Dv ELFOSABI_86OPEN 86Open Common IA32 ABI。 .It Dv ELFOSABI_SOLARIS Solaris オペレーティングシステム ABI。 .It Dv ELFOSABI_MONTEREY Monterey プロジェクト ABI。 .It Dv ELFOSABI_IRIX IRIX オペレーティングシステム ABI。 .It Dv ELFOSABI_FREEBSD .Fx オペレーティングシステム ABI。 .It Dv ELFOSABI_TRU64 TRU64 UNIX オペレーティングシステム ABI。 .It Dv ELFOSABI_ARM ARM アーキテクチャ ABI。 .It Dv ELFOSABI_STANDALONE Standalone (組み込み) ABI。 .El .It Dv EI_ABIVERSION このバイトは、オブジェクトの対象である ABI のバージョンを識別します。 このフィールドは、同じ ABI でも、 互換性の無いもの同士を区別するために使用されます。 バージョン番号の解釈は、EI_OSABI フィールドで識別される ABI に依存します。 この仕様に準拠するアプリケーションは、値 0 を使用します。 .It Dv EI_PAD パディングの始め。 これらのバイトは、予約されており、0 にセットされます。 ここを読むプログラムは、これを無視する必要があります。 将来、現在使っていないバイトに意味が与えられた時には、 EI_PAD の値は変わります。 .It Dv EI_BRAND アーキテクチャ識別子の始め。 .It Dv EI_NIDENTT e_ident 配列の大きさ。 .El .Pp .It Dv e_type 構造体のこのメンバは、オブジェクトファイルタイプを識別します: .Pp .Bl -tag -width "ET_NONE" -compact .It Dv ET_NONE 未知のタイプ。 .It Dv ET_REL 再配置可能なファイル。 .It Dv ET_EXEC 実行可能ファイル。 .It Dv ET_DYN 共有オブジェクト。 .It Dv ET_CORE コアファイル。 .El .Pp .It Dv e_machine このメンバは、個々のファイルに必要なアーキテクチャを指定します: .Pp .Bl -tag -width "EM_MIPS_RS4_BE" -compact .It Dv EM_NONE 未知のマシン。 .It Dv EM_M32 AT&T WE 32100 .It Dv EM_SPARC Sun Microsystems SPARC. .It Dv EM_386 Intel 80386. .It Dv EM_68K Motorola 68000 .It Dv EM_88K Motorola 88000 .It Dv EM_486 Intel 80486 .It Dv EM_860 Intel 80860 .It Dv EM_MIPS MIPS RS3000 (ビッグエンディアンのみ) .It Dv EM_MIPS_RS4_BE MIPS RS4000 (ビッグエンディアンのみ) .It Dv EM_SPARC64 SPARC v9 64-bit 非公式 .It Dv EM_PARISC HPPA .It Dv EM_PPC PowerPC .It Dv EM_ALPHA Compaq [DEC] Alpha .El .Pp .It Dv e_version このメンバは、ファイルバージョンを識別します: .Pp .Bl -tag -width "EV_CURRENT" -compact .It Dv EV_NONE 不当なバージョン。 .It Dv EV_CURRENT 現在のバージョン。 .El .It Dv e_entry このメンバは、システムが最初に制御を移す、 つまりプロセスを開始する仮想アドレスを示します。 ファイルにエントリポイントがないならば、このメンバは 0 になります。 .It Dv e_phoff このメンバは、 プログラムヘッダテーブルのバイト単位のファイルオフセットを持ちます。 .It Dv e_shoff このメンバは、 セクションヘッダテーブルのバイト単位のファイルオフセットを持ちます。 ファイルにセクションヘッダテーブルがないならば、このメンバは 0 になります。 .It Dv e_flags このメンバは、ファイルに関連する、プロセッサに固有なフラグを持ちます。 フラグ名は、EF_`machine_flag' という形式になります。 現在、定義されたフラグはありません。 .It Dv e_ehsize このメンバは、ELF ヘッダのバイト単位の大きさを持ちます。 .It Dv e_phentsize このメンバは、 ファイルのプログラムヘッダテーブルにあるエントリ 1 個分のサイズを持ちます。 全てのエントリは、同じ大きさです。 .It Dv e_phnum このメンバは、プログラムヘッダテーブル中のエントリの個数を持ちます。 つまり、 .Sy e_phentsize と .Sy e_phnum の積は、テーブルのバイト単位の大きさを与えます。 ファイルにプログラムヘッダがないならば、 .Sy e_phnum の値は 0 になります。 .It Dv e_shentsize このメンバは、セクションヘッダのバイト単位の大きさを持ちます。 セクションヘッダは、 セクションヘッダテーブルの中の 1 つのエントリです; 全てのエントリは、同じ大きさです。 .It Dv e_shnum このメンバは、セクションヘッダテーブル中のエントリの個数を持ちます。 つまり、 .Sy e_shentsize と .Sy e_shnum の積は、セクションヘッダテーブルのバイト単位の大きさを与えます。 ファイルにセクションヘッダテーブルがないならば、 .Sy e_shnum の値は 0 になります。 .It Dv e_shstrndx このメンバは、 セクションヘッダテーブルの、 セクション名文字列テーブルに結びつけられたエントリへの インデックスを持ちます。 ファイルにセクション名文字列テーブルがないならば、 このメンバは値 .Sy SHN_UNDEF を持ちます。 .Pp .Bl -tag -width "SHN_LORESERVE" -compact .It Dv SHN_UNDEF この値は、未定義か、存在しないか、無関係であるか、 意味がないセクション参照を示します。 例えば、セクション番号 .Sy SHN_UNDEF からの相対で .Dq 定義 されるシンボルは、未定義シンボルです。 .\" For example, symbols defined relative to section number SHN_ABS .\" have absolute values and are not affected by relocation. .\" と同じ形式の文章。 .It Dv SHN_LORESERVE この値は、予約のインデックスの範囲の下限を指定します。 .It Dv SHN_LOPROC この値から .Sy SHN_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHN_HIPROC この値から .Sy SHN_LOPROC 以上は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHN_ABS この値は、対応する参照のために絶対的な値を指定します。 例えば、 .Sy SHN_ABS からの相対で定義されるシンボルは、絶対的な値を持ち、 再配置による影響を受けません。 .It Dv SHN_COMMON このセクションからの相対で定義されるシンボルは、共通シンボルであり、 Fortran の COMMON や領域が確保されていない C の 外部変数が該当します。 .It Dv SHN_HIRESERVE この値は、予約インデックス範囲の上限を指定します。 この範囲は、 .Sy SHN_LORESERVE と .Sy SHN_HIRESERVE の間であり、両端を含みます。 これらの値は、セクションヘッダテーブルを参照しません。 セクションヘッダテーブルは予約のインデックスのためにエントリを .Em 含みません。 .El .El .Pp 実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 構造体の配列です。 各構造体は、 プログラム実行にシステムが必要とする、セグメント等の情報を記述します。 オブジェクトファイルの .Em セグメント は、1 つ以上の .Em セクション を含みます。 プログラムヘッダは、 実行可能ファイルと共有オブジェクトファイルだけで意味があります。 ファイルは、ELF ヘッダの .Sy e_phentsize と .Sy e_phnum メンバでそれ自身のプログラムヘッダサイズを指定します。 ELF 実行形式のヘッダと同様に、 プログラムヘッダもアーキテクチャに従い異なるバージョンを持ちます: .Pp .Bd -literal -offset indent typedef struct { Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Size p_filesz; Elf32_Size p_memsz; Elf32_Word p_flags; Elf32_Size p_align; } Elf32_Phdr; .Ed .Pp .Bd -literal -offset indent typedef struct { Elf64_Half p_type; Elf64_Half p_flags; Elf64_Off p_offset; Elf64_Addr p_vaddr; Elf64_Addr p_paddr; Elf64_Size p_filesz; Elf64_Size p_memsz; Elf64_Size p_align; } Elf64_Phdr; .Ed .Pp 32 ビットと 64 ビットのプログラムヘッダの間の主な差は、 構造体中の .Sy p_flags メンバの位置だけです。 .Pp .Bl -tag -width "p_offset" -compact -offset indent .It Dv p_type 構造体 Phdr のこのメンバは、この配列要素が記述しているセグメントの種類を示し、 どのように配列要素を解釈すべきかを示します。 .Bl -tag -width "PT_DYNAMIC" -compact .Pp .It Dv PT_NULL この配列要素は使っていません。また、他のメンバの値は未定義です。 これにより、プログラムヘッダ中に無視されるエントリを持てます。 .It Dv PT_LOAD この配列要素は、ロード可能なセグメントを指定します。 これは .Sy p_filesz と .Sy p_memsz で記述されます。 ファイルからのバイトは、メモリセグメントの先頭にマップされます。 セグメントのメモリサイズ .Pq Sy p_memsz がファイルサイズ .Pq Sy p_filesz より大きいならば、 .Dq 余分な バイトは、値 0 を持って、 セグメントの初期化された領域に続くものと定義されます。 ファイルサイズは、メモリサイズを越えてはなりません。 プログラムヘッダテーブルの中のロード可能な セグメントエントリは、昇順で現れます。 そして、 .Sy p_vaddr メンバでソートされます。 .It Dv PT_DYNAMIC この配列要素は、動的リンク情報を指定します。 .It Dv PT_INTERP この配列要素は、 インタープリタとして起動するナル文字で終わるパス名の場所と大きさを指定します。 このセグメントタイプは、実行可能ファイルのみで意味があります (本セグメントタイプは、共有オブジェクト中にあるかもしれません)。 本セグメントは、ファイル中で複数個存在してはなりません。 存在する場合、 全ロード可能セグメントエントリに先行する必要があります。 .It Dv PT_NOTE この配列要素は、補助情報のために場所と大きさを指定します。 .It Dv PT_SHLIB このセグメントタイプは、 予約されており、明記されていないセマンティクスを持ちます。 このタイプの配列要素を含むプログラムは、ABI に従いません。 .It Dv PT_PHDR この配列要素が存在する場合、 ファイル中とメモリイメージ中における、 プログラムヘッダテーブル自身の位置と大きさを指定します。 本セグメントタイプは、ファイル中で複数個存在してはなりません。 さらに、 プログラムヘッダテーブルがプログラムのメモリイメージに含まれる場合のみ、 存在が許されます。 存在する場合、 全ロード可能セグメントエントリに先行する必要があります。 .It Dv PT_LOPROC この値から .Sy PT_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv PT_HIPROC この値から .Sy PT_LOPROC 以上は、プロセッサ固有のセマンティクスのために予約されています。 .El .Pp .It Dv p_offset このメンバは、セグメントの最初のバイトへの、 ファイル先頭からのオフセットを持ちます。 .It Dv p_vaddr このメンバは、 セグメントの最初のバイトがメモリで存在する仮想アドレスを持ちます。 .It Dv p_paddr 物理アドレッシングのシステム上では、 このメンバは、セグメントの物理アドレスのために予約されています。 .Bx では、本メンバは使されず、0 である必要があります。 .It Dv p_filesz このメンバは、セグメントのファイルイメージのバイト数を持ちます。 0 であるかもしれません。 .It Dv p_memsz このメンバは、セグメントのメモリイメージのバイト数を持ちます。 0 であるかもしれません。 .It Dv p_flags このメンバは、セグメントに関したフラグを持ちます。 .Pp .Bl -tag -width "PF_X" -compact .It Dv PF_X 実行可能セグメント。 .It Dv PF_W 書き込み可能なセグメント。 .It Dv PF_R 読み取り可能なセグメント。 .El .Pp テキストセグメントは、一般にフラグ .Sy PF_X と .Sy PF_R を持ちます。 データセグメントは、一般に .Sy PF_X , .Sy PF_W と .Sy PF_R を持ちます。 .It Dv p_align このメンバは、メモリ中およびファイル中でセグメントが整列すべき値を持ちます。 ロード可能なプロセスは、 .Sy p_vaddr と .Sy p_offset をページサイズで割った余りに適合する値を持つ必要があります。 0 と 1 の値は、境界調整が不要であることを意味します。 そうでない場合、 .Sy p_align は、正 (2 の整数乗) である必要があります。そして、 .Sy p_vaddr は .Sy p_offset を .Sy p_align で割った余りと等しい必要があります。 .El .Pp ファイルのセクションヘッダテーブルは、 全てのファイルのセクションの位置決定を可能とします。 セクションヘッダテーブルは、Elf32_Shdr または Elf64_Shdr 構造体の配列です。 ELF ヘッダの .Sy e_shoff メンバは、 セクションヘッダテーブルの、ファイル先頭からのバイトオフセットを与えます。 .Sy e_shnum は、セクションヘッダテーブルのエントリ数を持ちます。 .Sy e_shentsize は、各エントリの大きさをバイトで持ちます。 .Pp セクションヘッダテーブルインデックスは、この配列の添字です。 セクションヘッダテーブルインデックスには、予約のものがあります。 オブジェクトファイルには、次の特別なインデックスにはセクションがありません: .Pp .Bl -tag -width "SHN_LORESERVE" -compact .It Dv SHN_UNDEF この値は、未定義か、存在しないか、無関係であるか、 意味がないセクション参照を示します。 .It Dv SHN_LORESERVE この値は、予約のインデックスの範囲の下限を指定します。 .It Dv SHN_LOPROC この値から .Sy SHN_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHN_HIPROC この値から .Sy SHN_LOPROC 以上は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHN_ABS この値は、対応する参照が絶対値であることを指定します。 例えば、セクション番号 .Sy SHN_ABS からの相対で定義されてるシンボルは、絶対的な数値を持ち、 再配置によって影響を受けません。 .It Dv SHN_COMMON このセクションからの相対で定義されるシンボルは、共通シンボルであり、 Fortran の COMMON や領域が確保されていない C の外部変数が該当します。 .It Dv SHN_HIRESERVE この値は、予約インデックス範囲の上限を指定します。 この範囲は、 .Sy SHN_LORESERVE と .Sy SHN_HIRESERVE の間であり、両端を含みます。 セクションヘッダテーブルは、予約のインデックスのためにエントリを含みません。 .El .Pp セクションヘッダは、以下の構造体を持ちます: .Bd -literal -offset indent typedef struct { Elf32_Word sh_name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Size sh_size; Elf32_Word sh_link; Elf32_Word sh_info; Elf32_Size sh_addralign; Elf32_Size sh_entsize; } Elf32_Shdr; .Ed .Pp .Bd -literal -offset indent typedef struct { Elf64_Half sh_name; Elf64_Half sh_type; Elf64_Size sh_flags; Elf64_Addr sh_addr; Elf64_Off sh_offset; Elf64_Size sh_size; Elf64_Half sh_link; Elf64_Half sh_info; Elf64_Size sh_addralign; Elf64_Size sh_entsize; } Elf64_Shdr; .Ed .Pp .Bl -tag -width "sh_addralign" -compact .It Dv sh_name このメンバは、セクションの名前を指定します。 その値は、セクションヘッダ文字列テーブルセクションへの インデックスであり、ナル文字で終わる文字列の場所を与えます。 .It Dv sh_type このメンバは、セクションの内容とセマンティクスを分類します。 .Pp .Bl -tag -width "SHT_PROGBITS" -compact .It Dv SHT_NULL この値は、セクションヘッダが不活性であることを示します。 関連づけられたセクションを持ちません。 セクションヘッダの他のメンバは、未定義値を持ちます。 .It Dv SHT_PROGBITS このセクションは、プログラムによって定義される情報を持ちます。 フォーマットと意味は、プログラムだけによってのみ決定されます。 .It Dv SHT_SYMTAB このセクションは、シンボルテーブルを持ちます。 一般的に、 .Sy SHT_SYMTAB はリンクエディットのためのシンボルを提供します。 これはまた、動的リンクにも使用可能です。 これは完全なシンボルテーブルであるため、 動的リンクのためには不必要な多くのシンボルを含む場合があります。 オブジェクトファイルは、 .Sy SHN_DYNSYM セクションも含むことができます。 .It Dv SHT_STRTAB このセクションは、文字列テーブルを持ちます。 オブジェクトファイルは、複数の文字列テーブルセクションを持ち得ます。 .It Dv SHT_RELA このセクションは、明示的な加数を持つ、再配置エントリを持ちます。 例えば、オブジェクトファイルの 32 ビットクラスのタイプ .Sy Elf32_Rela が該当します。 オブジェクトは、複数の再配置セクションを持ち得ます。 .It Dv SHT_HASH このセクションは、シンボルハッシュテーブルを持ちます。 動的リンクに関連する全オブジェクトは、 シンボルハッシュテーブルを含む必要があります。 オブジェクトファイルは、単一のハッシュテーブルのみを持ち得ます。 .It Dv SHT_DYNAMIC このセクションは、動的リンクのために情報を持ちます。 オブジェクトファイルは、単一の動的セクションのみを持ち得ます。 .It Dv SHT_NOTE このセクションは、いくばくかの方法でファイルに印をする情報を持ちます。 .It Dv SHT_NOBITS このタイプのセクションは、ファイル中の空間を占有しませんが、 .Sy SHN_PROGBITS に似ています。 このセクションはバイトを含みませんが、 .Sy sh_offset メンバは概念上のファイルオフセットを含みます。 .It Dv SHT_REL このセクションは、明示的な加数無しの再配置オフセットを持ちます。 例えば、オブジェクトファイルの 32 ビットクラスのタイプ .Sy Elf32_Rel が該当します。 オブジェクトファイルは、複数の再配置セクションを持ち得ます。 .It Dv SHT_SHLIB このセクションは、予約されており、明記されていないセマンティクスを持ちます。 .It Dv SHT_DYNSYM このセクションは、動的リンクシンボルの最小のセットを持ちます。 オブジェクトファイルは、 .Sy SHN_SYMTAB セクションも含むことができます。 .It Dv SHT_LOPROC この値から .Sy SHT_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHT_HIPROC この値から .Sy SHT_LOPROC 以上は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHT_LOUSER この値は、アプリケーションプログラムのために予約されている インデックス範囲の下限を指定します。 .It Dv SHT_HIUSER この値は、アプリケーションプログラムのために予約されている インデックス範囲の上限を指定します。 .Sy SHT_LOUSER と .Sy SHT_HIUSER の間のセクションタイプは、 アプリケーションによって使用可能であり、 現在または将来のシステム定義セクションタイプと衝突しません。 .El .Pp .It Dv sh_flags セクションは、雑多な属性を記述する 1 ビットフラグをサポートします。 フラグビットが .Sy sh_flags でセットされるならば、そのセクションの属性は .Dq オン になります。 そうでなければ、属性は .Dq オフ であるか、あてはまりません。 未定義属性は、0 にセットされます。 .Pp .Bl -tag -width "SHF_EXECINSTR" -compact .It Dv SHF_WRITE セクションは、プロセス実行の間、書き込み可能であるべきデータを含みます。 .It Dv SHF_ALLOC セクションは、プロセス実行の間、メモリを占有します。 制御セクションには、 オブジェクトファイルのメモリイメージで存在しないものがあります。 そのようなセクションでは、この属性はオフです。 .It Dv SHF_EXECINSTR セクションは、実行可能な機械語命令を含みます。 .It Dv SHF_MASKPROC このマスクで含まれる全てのビットは、 プロセッサ固有のセマンティクスのために確保されます。 .El .Pp .It Dv sh_addr セクションがプロセスのメモリイメージに現れる場合、 このメンバは、セクションの最初のバイトが存在するアドレスを持ちます。 そうでない場合、このメンバは 0 を含みます。 .It Dv sh_offset このメンバ値は、 このセクションの、ファイル先頭からのバイトオフセットを与えます。 1 つのセクションタイプ、すなわち .Sy SHT_NOBITS は、ファイル中の空間を占有せず、 その .Sy sh_offset メンバは、ファイル中の概念上の位置を指定します。 .It Dv sh_size このメンバは、セクションのバイトでの大きさを持ちます。 セクションタイプが .Sy SHT_NOBITS でない限り、セクションはファイル中の .Sy sh_size バイトを占有します。 タイプ .Sy SHT_NOBITS のセクションは 0 以外の大きさを持ち得ますが、 ファイル中の空間を占有しません。 .It Dv sh_link このメンバは、 セクションヘッダテーブルインデックスリンクを持ちます。 この解釈は、セクションタイプ依存です。 .It Dv sh_info このメンバは、 追加情報を持ちます。 この解釈は、セクションタイプ依存です。 .It Dv sh_addralign 若干のセクションには、アドレス境界の制約があります。 セクションがダブルワードを持つならば、 システムはダブルワード境界を セクション全体に保証する必要があります。 .Sy sh_addr の値は、 .Sy sh_addralign で割った値が 0 となることが必要です。 '\" ここよくわからん。 0 と正の 2 の羃乗だけが許されます。0 または 1 の値は、 セクションには境界の制約がないことを意味します。 .It Dv sh_entsize 若干のセクションは、 固定長エントリのテーブルを持ちます。 例えばシンボルテーブルがこれに該当します。 そのようなセクションのために、 このメンバは、各エントリのバイトでの大きさを与えます。 セクションが固定サイズのエントリのテーブルを持たないならば、 このメンバは 0 を含みます。 .El .Pp 様々なセクションが、プログラムと制御情報を持ちます: .Bl -tag -width ".shstrtab" -compact .It .bss このセクションは初期化されないデータを持ち、 プログラムのメモリイメージになります。 定義では、 プログラム開始時にシステムがデータを 0 初期化します。 このセクションは、タイプ .Sy SHT_NOBITS です。 属性タイプは、 .Sy SHF_ALLOC と .Sy SHF_WRITE です。 .It .comment このセクションは、バージョン制御情報を持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは使われません。 .It .data このセクションは初期化されたデータを持ち、 プログラムのメモリイメージになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは、 .Sy SHF_ALLOC と .Sy SHF_WRITE です。 .It .data1 このセクションは初期化されたデータを持ち、 プログラムのメモリイメージになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは、 .Sy SHF_ALLOC と .Sy SHF_WRITE です。 .It .debug このセクションは、シンボリックデバッギングのための情報を持ちます。 内容は、明記されていません。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは使われません。 .It .dynamic このセクションは、動的リンク情報を持ちます。 セクションの属性は、 .Sy SHF_ALLOC ビットを含みます。 .Sy SHF_WRITE ビットがセットされるか否かは、プロセッサ依存です。 このセクションは、タイプ .Sy SHT_DYNAMIC です。 上の属性を見てください。 .It .dynstr このセクションは、動的リンクのために必要とされる文字列を持ちます。 そして一般には、名前を表現する文字列であり、 シンボルテーブルエントリと結び付けられています。 このセクションは、タイプ .Sy SHT_STRTAB です。 使われる属性タイプは、 .Sy SHF_ALLOC です。 .It .dynsym このセクションは、動的リンクシンボルテーブルを持ちます。 このセクションは、タイプ .Sy SHT_DYNSYM です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .fini このセクションは、プロセス終了コードの実行可能命令を持ちます。 プログラムの正常終了時に、 システムはこのセクションのコードを実行します。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC と .Sy SHF_EXECINSTR です。 .It .got このセクションは、グローバルオフセットテーブルを持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性は、プロセッサ依存です。 .It .hash このセクションは、シンボルハッシュテーブルを持ちます。 このセクションは、タイプ .Sy SHT_HASH です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .init このセクションは、プロセス初期化コードの実行可能命令を持ちます。 プログラム実行開始時に、 メインプログラムエントリポイントを呼び出す前に、 システムはこのセクションのコードを実行します。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC と .Sy SHF_EXECINSTR です。 .It .interp このセクションは、プログラムインタプリタのパス名を持ちます。 ファイルがこのセクションを含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 このセクションは、タイプ .Sy SHT_PROGBITS です。 .It .line このセクションはシンボリックデバッギングのために行番号情報を持ちます。 これは、プログラムソースとマシンコードの間の関係を記述します。 内容は、明記されていません。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは使われません。 .It .note このセクションは、下で記述される .Dq Note Section フォーマットで、情報を持ちます。 このセクションは、タイプ .Sy SHT_NOTE です。 属性タイプは使われません。 .It .plt このセクションは、プロシージャリンケージテーブルを持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性はプロセッサ依存です。 .It .relNAME このセクションは、下記のように再配置情報を持ちます。 ファイルが再配置を含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 規約により、再配置されるセクションから .Dq NAME が与えられます。 .Sy .text のための再配置セクションは、通常名前 .Sy .rel.text を持ちます。 このセクションは、タイプ .Sy SHT_REL です。 .It .relaNAME このセクションは、下記のように再配置情報を持ちます。 ファイルが再配置を含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 規約により、再配置されるセクションから .Dq NAME が与えられます。 .Sy .text のための再配置セクションは、通常名前 .Sy .rela.text を持ちます。 このセクションは、タイプ .Sy SHT_RELA です。 .It .rodata このセクションは読み取り専用データを持ち、 典型的にはプロセスイメージの書き込み不可セグメントになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .rodata1 このセクションは読み取り専用データを持ち、 典型的にはプロセスイメージの書き込み不可セグメントになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .shstrtab このセクションはセクション名を持ちます。 このセクションは、タイプ .Sy SHT_STRTAB です。 属性タイプは使われません。 .It .strtab このセクションは文字列を持ちます。 一般的には名前を表示する文字列であり、 シンボルテーブルエントリと結び付けられています。 ファイルがシンボル文字列テーブルを含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 このセクションは、タイプ .Sy SHT_STRTAB です。 .It .symtab このセクションは、シンボルテーブルを持ちます。 ファイルがシンボルテーブルを含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 このセクションは、タイプ .Sy SHT_SYMTAB です。 .It .text このセクションは、プログラムの .Dq テキスト 、すなわち実行可能命令を持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC と .Sy SHF_EXECINSTR です。 .El .Pp 文字列テーブルセクションは、ナル文字で終わる文字シーケンス群を持ちます。 これらは、一般に文字列と呼ばれます。 オブジェクトファイルは、 シンボルとセクション名を表現するためにこれらの文字列を使います。 文字列テーブルセクションのインデックスとして、文字列を参照します。 最初のバイト (インデックス 0) は、 単一のナル文字を持つと定義されます。 同様に、文字列テーブルの最終バイトはナル文字であると定義されので、 文字列全体がナル終端されていることを保証します。 .Pp オブジェクトファイルのシンボルテーブルは、 プログラムのシンボル定義と参照の位置決定に必要な情報を保持します。 シンボルテーブルインデックスは、この配列の添字です。 .Pp .Bd -literal -offset indent typedef struct { Elf32_Word st_name; Elf32_Addr st_value; Elf32_Size st_size; unsigned char st_info; unsigned char st_other; Elf32_Half st_shndx; } Elf32_Sym; .Ed .Pp .Bd -literal -offset indent typedef struct { Elf64_Half st_name; unsigned char st_info; unsigned char st_other; Elf64_Quarter st_shndx; Elf64_Addr st_value; Elf64_Size st_size; } Elf64_Sym; .Ed .Pp .Bl -tag -width "st_value" -compact .It Dv st_name このメンバは、オブジェクトファイルの シンボル文字列テーブルへのインデックスを持ちます。 シンボル文字列テーブルは、シンボル名の文字表現を持ちます。 値が 0 以外であるならば、 それはシンボル名を与える文字列テーブルインデックスを示します。 そうでない場合、シンボルテーブルには名前がありません。 .It Dv st_value このメンバは、関連したシンボルの値を与えます。 .It Dv st_size 多くのシンボルは、関連した大きさを持ちます。 シンボルには大きさが無いか未知である場合、このメンバは 0 です。 .It Dv st_info このメンバは、シンボルのタイプと束縛属性を指定します: .Pp .Bl -tag -width "STT_SECTION" -compact .It Dv STT_NOTYPE シンボルのタイプは、定義されません。 .It Dv STT_OBJECT シンボルは、データオブジェクトと結び付けられています。 .It Dv STT_FUNC シンボルは、関数または他の実行可能コードと結び付けられています。 .It Dv STT_SECTION シンボルは、セクションと結び付けられています。 このタイプのシンボルテーブルエントリは、 主に再配置のために存在して、通常 .Sy STB_LOCAL 束縛を持ちます。 .It Dv STT_FILE 規約により、シンボルの名前は、 オブジェクトファイルと関連するソースファイルの名前を与えます。 存在する場合、ファイルシンボルは .Sy STB_LOCAL 束縛を持ち、そのセクションインデックスは .Sy SHN_ABS であり、 それはファイルの他の .Sy STB_LOCAL シンボルに先行します。 .It Dv STT_LOPROC この値から .Sy STT_HIPROC 以下は、プロセッサに固有のセマンティクスのために予約されています。 .It Dv STT_HIPROC この値から .Sy STT_LOPROC 以上は、プロセッサに固有のセマンティクスのために予約されています。 .El .Pp .Bl -tag -width "STB_GLOBAL" -compact .It Dv STB_LOCAL ローカルなシンボルは、 それらの定義を含んでいるオブジェクトファイルの外側には、見えません。 同じ名前のローカルなシンボルは、 お互いのじゃまをすることなく複数ファイルで存在し得ます。 .It Dv STB_GLOBAL グローバルシンボルは、結合されている全てのオブジェクトファイルから見えます。 あるファイルによるグローバルシンボルの定義は、 別ファイルの同じシンボルの未定義参照を満足させます。 .It Dv STB_WEAK 弱いシンボルはグローバルシンボルに似ています。 しかし、彼らの定義は低い優先順位を持ちます。 .It Dv STB_LOPROC この値から .Sy STB_HIPROC 以下は、プロセッサに固有のセマンティクスのために予約されています。 .It Dv STB_HIPROC この値から .Sy STB_LOPROC 以上は、プロセッサに固有のセマンティクスのために予約されています。 .Pp 束縛とタイプフィールドのパックおよびアンパック用のマクロがあります: .Pp .Bl -tag -width "ELF32_ST_INFO(bind, type)" -compact .It Xo .Fn ELF32_ST_BIND info .Xc または .Fn ELF64_ST_BIND info は、束縛を st_info 値から引出します。 .It Xo .Fn ELF64_ST_TYPE info .Xc または .Fn ELF32_ST_TYPE info は、タイプを st_info 値から引出します。 .It Xo .Fn ELF32_ST_INFO bind type .Xc または .Fn ELF64_ST_INFO bind type は、束縛とタイプを st_info 値へ変換します。 .El .El .Pp .It Dv st_other このメンバは、現在 0 を持ち、定義された意味を持ちません。 .It Dv st_shndx あらゆるシンボルテーブルエントリは、 なんらかの動作に関して .Dq 定義されています 。 このメンバは、関連するセクションヘッダテーブルインデックスを持ちます。 .El .Pp 再配置は、シンボル参照とシンボル定義を接続する処理です。 再配置可能なファイルは、それらのセクション内容の 修正方法を記述する情報を持つ必要があります。 このようにして、実行可能ファイルと共有オブジェクトファイルが、 プロセスのプログラムイメージのための正しい情報を持てます。 再配置エントリは、これらのデータです。 .Pp 加数を必要としない再配置構造体: .Pp .Bd -literal -offset indent typedef struct { Elf32_Addr r_offset; Elf32_Word r_info; } Elf32_Rel; .Ed .Bd -literal -offset indent typedef struct { Elf64_Addr r_offset; Elf64_Size r_info; } Elf64_Rel; .Ed .Pp 加数を必要とする再配置構造体: .Pp .Bd -literal -offset indent typedef struct { Elf32_Addr r_offset; Elf32_Word r_info; Elf32_Sword r_addend; } Elf32_Rela; .Ed .Bd -literal -offset indent typedef struct { Elf64_Addr r_offset; Elf64_Size r_info; Elf64_Off r_addend; } Elf64_Rela; .Ed .Pp .Bl -tag -width "r_offset" -compact .It Dv r_offset このメンバは、再配置動作を適用する場所を与えます。 再配置可能なファイルでは、 値は、再配置によって影響を受ける記憶単位の セクション先頭からのバイトオフセットです。 実行可能ファイルまたは共用オブジェクトでは、 値は、再配置によって影響を受ける記憶単位の仮想アドレスです。 .It Dv r_info このメンバは、 再配置されるシンボルテーブルインデックスと、 使用する再配置のタイプを与えます。 再配置タイプは、プロセッサ依存です。 テキストが再配置エントリの再配置タイプまたは シンボルテーブルインデックスを参照するとき、 エントリの .Sy r_info メンバに対し、それぞれ .Sy ELF_[32|64]_R_TYPE または .Sy ELF[32|64]_R_SYM を適用する結果を意味しています。 .It Dv r_addend このメンバは、定数の加数を指定します。 これは、再配置可能なフィールドに 格納される値を計算するために使用されます。 .El .Sh 関連項目 .Xr as 1 , .Xr gdb 1 , .Xr ld 1 , .Xr objdump 1 , .Xr execve 2 , .Xr core 5 .Rs .%A Hewlett Packard .%B Elf-64 Object File Format .Re .Rs .%A Santa Cruz Operation .%B System V Application Binary Interface .Re .Rs .%A Unix System Laboratories .%T Object Files .%B "Executable and Linking Format (ELF)" .Re .Sh 歴史 ELF ヘッダファイルは、 .Fx 2.2.6 で登場しました。 ELF 自身は、最初に .At V で登場しました。 ELF フォーマットは、標準として採用されています。 .Sh 作者 このマニュアルページは、BSDi の .Bsx .Xr elf 5 のマニュアルページに触発されて、 .An Jeroen Ruigrok van der Werven .Aq asmodai@FreeBSD.org が書きました。 diff --git a/ja_JP.eucJP/man/man5/exports.5 b/ja_JP.eucJP/man/man5/exports.5 index 19ac488ed5..48fafd792d 100644 --- a/ja_JP.eucJP/man/man5/exports.5 +++ b/ja_JP.eucJP/man/man5/exports.5 @@ -1,318 +1,318 @@ .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)exports.5 8.3 (Berkeley) 3/29/95 -.\" %FreeBSD: src/sbin/mountd/exports.5,v 1.10.2.5 2001/03/05 19:33:46 ru Exp % +.\" %FreeBSD: src/sbin/mountd/exports.5,v 1.10.2.6 2001/12/14 15:17:52 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/exports.5,v 1.14 2001/05/14 01:09:28 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd March 29, 1995 .Dt EXPORTS 5 .Os .Sh 名称 .Nm exports .Nd .Tn NFS マウント要求に対するリモートマウント点を定義する .Sh 書式 .Nm .Sh 解説 .Nm ファイルは .Tn NFS サーバの指定 1 つについて .Tn NFS マウントプロトコルに対するリモートマウント点を指定します。 .%T "Network File System Protocol Specification" , RFC1094, Appendix A および .%T "NFS: Network File System Version 3 Specification" , Appendix I を参照してください。 .Pp .Nm ファイルの各行 (# で始まる注釈行以外) は、1 つ以上のホスト向けに、 1 つのローカルサーバファイルシステム内の マウント点 (複数) とエクスポートフラグを指定します。 あるホストは、 サーバの各ローカルファイルシステムに関して唯 1 度だけ指定可能です。 また他の全てのホストに適用されるデフォルトエントリは、 各サーバファイルシステムに関して唯 1 つだけ指定できます。 後者は ``世界'' に対しそのファイルシステムを公開することになるので、 そのファイルシステムが公の情報を含むときにのみ用いるべきです。 .Pp マウントエントリ内の最初の欄 (複数) には、 対応するクライアント (複数) がマウント可能である サーバファイルシステム内ディレクトリパス (複数) を指定します。 この指定には 2 つの形式があります。 最初の指定形式は、 全マウント点のリストであり、絶対ディレクトリパスを空白で区切ったものです。 次の指定形式は、そのファイルシステムのルートパス名に続いて .Fl alldirs フラグを指定するものです。この形式は、そのファイルシステム内の任意の点を ホスト (複数) がマウントすることを可能にします。 .Xr mountd 8 で .Fl r オプションを用いれば、任意の点には通常ファイルを含むことができます。 パス名中には、シンボリックリンクを含んではなりませんし、また "." または ".." を含んではなりません。 1 つのファイルシステムに対するマウント点を複数指定することが可能であり、 それぞれ異ったホストとエクスポートオプションの組を指定することができます。 .Pp 行の 2 番目の部分には、そのファイルシステムがホストの組にどのように エクスポートされているかを指定します。 オプションフラグは、 そのファイルシステムを読み取り専用でエクスポートしているのか それとも読み書き可でエクスポートしているのかを指定したり、 クライアントの UID がサーバ上のユーザ資格にどのように マップされているのかを指定します。 .Pp エクスポートオプションは以下のとおりです。 .Pp .Sm off .Fl maproot No = Sy user .Sm on 指定されたユーザの資格を、root によるリモートアクセスに対して使用します。 その資格には、ローカルマシン上でユーザが属する全てのグループを含みます ( .Xr id 1 参照)。ユーザは名前または数字です。 .Pp .Sm off .Fl maproot No = Sy user:group1:group2:... .Sm on コロンによって区切られたリストは、 root によるリモートアクセスに対して使用する正確な資格を指定するために 使用します。 リストの要素は名前または数字です。 グループを含まない資格をユーザに関する完全な資格と区別するためには、 user: を使用すべきであることに注意してください。 .Pp .Sm off .Fl mapall No = Sy user .Sm on または .Sm off .Fl mapall No = Sy user:group1:group2:... .Sm on .Fl maproot と同じ指定方法で、 (root を含む) 全てのクライアントの UID に対するマッピングを指定します。 .Pp .Fl r オプションは .Fl maproot と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp .Fl maproot および .Fl mapall オプションのない場合には、 root によるリモートアクセスは -2:-2 という資格を用いることになります。 その他の全てのユーザはそれぞれのリモート資格にマップされます。 .Fl maproot オプションを指定すると、root によるリモートアクセスは -2:-2 の代りに 指定した資格にマップされます。 .Fl mapall オプションを指定すると、root を含む全てのユーザはそれら自身の資格の代りに 指定した資格にマップされます。 .Pp .Fl kerb オプションを指定すると、Kerberos 認証サーバを使用して 認証とクライアント資格のマップを行います。 このオプションを利用するには、カーネルを NFSKERB オプション付きで 構築してある必要があります。 適切な Kerberos 暗号化ルーチンを NFS ソース内に組み込まない場合、 このオプションを使用すると、カーネルコンパイルが出来なくなります。 .Pp .Fl ro オプションは、ファイルシステムが読み取り専用としてエクスポートされることを 指定します (デフォルトは読み書き可)。 .Fl o オプションは .Fl ro と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp 仕様 (RFC 2054 と RFC 2055) に厳密に従う .Tn WebNFS エクスポートは .Fl public フラグにて実現されます。 しかしながら、このフラグ自身は、ファイルシステム中の全ファイルに対して 読み書きアクセスを与えますが、予約ポートを必要としませんし、 uid のマッピングも行いません。 これは仕様を満すためだけに提供されており、通常は使用すべきではありません。 .Tn WebNFS エクスポートのためには、 .Fl webnfs フラグを使用します。これは .Fl public , .Sm off .Fl mapall No = Sy nobody , .Sm on .Fl ro を意味します。 .Pp .Sm off .Fl index No = Sy file .Sm on オプションを使用して、パブリックファイルハンドル .Pq Tn WebNFS を使用してディレクトリが検索された時にハンドルが返される ファイルを指定できます。 これは URL の動作のまねをします。 .Fl index オプションが指定されないと、通常通りディレクトリファイルハンドルが返されます。 .Fl index オプションは .Fl public または .Fl webnfs フラグと組み合わせたときのみ意味があります。 .Pp 行の 3 番目の部分には、その行が適用されるホストの組を指定します。 この組は 3 つの方法で指定できます。 最初の方法はホスト名 (複数) を空白で区切って並べる方法です。 (名前の代りに、標準的なインターネット ``ドット'' アドレスを用いることも できます)。2 番目の方法はネットグループファイル ( .Xr netgroup 5 参照) の中で定義した ``netgroup'' を指定する方法です。 3 番目の方法は、 1 つのネットワークとネットワークマスクを用いることにより、 1 つのインターネットサブネットワークを指定する方法です。 これは、 そのサブネットワーク内のアドレスを持つ全てのホストの組として定義されます。 この最後の方法はカーネルのオーバヘッドを低く押えられるため、 1 つの管理サブネット内の多くのクライアントを エクスポートの行が参照する場合に推奨されます。 .Pp 最初の 2 つの指定方法では、単に空白で区切られた名前 (複数) を並べて指定します。 全ての名前は、まずそれらが ``netgroup'' 名であるかチェックされ、 そうでなければホスト名であると仮定されます。 ホスト名に完全ドメイン指定をすれば、 ネットグループと同じ名前を持つホストの問題を通常避けることができます。 3 番目の指定方法は、 .Sm off .Fl network No = Sy netname .Sm on フラグとオプションの .Sm off .Fl mask No = Sy netmask .Sm on フラグによって指定します。マスクが指定されないと、そのネットワーククラス (A, B, C のどれかです。 .Xr inet 4 を参照してください) に対するマスクとなります。 .Pp 例: .Bd -literal -offset indent /usr /usr/local -maproot=0:10 friends /usr -maproot=daemon grumpy.cis.uoguelph.ca 131.104.48.16 /usr -ro -mapall=nobody /u -maproot=bin: -network 131.104.48 -mask 255.255.255.0 /u2 -maproot=root friends /u2 -alldirs -kerb -network cis-net -mask cis-mask .Ed .Pp .Sy /usr , .Sy /u , .Sy /u2 がローカルファイルシステムマウント点とすると、上の例は以下を指定します: .Sy /usr はネットグループファイルで指定されるホスト群 .Em friends にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は UID 0 およびグループ 10 にマップされます。 このファイルシステムは読み書き可でエクスポートされ、 ``friends'' 内のホストは /usr と /usr/local のどちらもマウントできます。 このファイルシステムは .Em 131.104.48.16 および .Em grumpy.cis.uoguelph.ca にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は ``daemon'' に結び付けられたユーザおよびグループにマップされます。 このファイルシステムは残りの世界へ読み出しのみでエクスポートされ、 この際全てのユーザは ``nobody'' に結び付けられたユーザおよびグループに マップされます。 .Pp .Sy /u はサブネットワーク .Em 131.104.48 上の全てのホストにエクスポートされ、 この際 root は ``bin'' の UID にマップされてグループアクセスを持ちません。 .Pp .Sy /u2 は ``friends'' 中のホストにエクスポートされ、 その際 root は ``root'' に結び付けられた UID とグループにマップされます。 このファイルシステムは ``cis-net'' ネットワーク上の全てのホストへ エクスポートされ、 この際 /u2 内のどんなディレクトリへもマウントを許し、 Kerberos 許可書によって認証される principal についての資格に 全 UID をマップします。 .Pp .Xr mountd 8 ユーティリティに .Nm ファイルを再度読み取らせるためには、 ハングアップシグナルを次のように送ります: .Bd -literal -offset indent kill -s HUP `cat /var/run/mountd.pid` .Ed .Pp .Dv SIGHUP の送信後に .Xr syslogd 8 出力を確認して、 .Nm ファイル中の解析エラーを .Xr mountd 8 が記録したかどうか見てください。 .Sh 関連ファイル .Bl -tag -width /etc/exports -compact .It Pa /etc/exports デフォルトリモートマウント点ファイル .El .Sh 関連項目 .Xr netgroup 5 , .Xr mountd 8 , .Xr nfsd 8 , .Xr showmount 8 .Sh バグ エクスポートオプションはカーネル内ではローカルマウント点に結び付けられます。 ローカルサーバマウント点のサブディレクトリでエクスポートされたものに、 エクスポートオプションの矛盾があってはいけません。 同じファイルシステム内の全てのエクスポートされたディレクトリは、 木を下る順に隣り合った行で指定されることが推奨されます。 ネットグループ名と同じ名前のホスト名は指定できません。 完全ドメイン指定でホスト名を指定すれば通常は問題ありません。 diff --git a/ja_JP.eucJP/man/man5/fbtab.5 b/ja_JP.eucJP/man/man5/fbtab.5 index c895febc80..bd91fd22f5 100644 --- a/ja_JP.eucJP/man/man5/fbtab.5 +++ b/ja_JP.eucJP/man/man5/fbtab.5 @@ -1,48 +1,56 @@ .\" -.\" %FreeBSD: src/share/man/man5/fbtab.5,v 1.6.2.4 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/fbtab.5,v 1.6.2.6 2001/12/17 11:30:14 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/fbtab.5,v 1.11 2001/08/18 23:50:29 horikawa Exp $ +.\" $FreeBSD$ .\" .\" WORD: device デバイス(/dev 下のデバイスファイル関連のもの) .\" WORD: comment コメント .\" WORD: whitespace 空白 .\" WORD: ownership 所有権(ファイルの) .\" .Dd August 22, 1994 .Dt FBTAB 5 .Os .Sh 名称 .Nm fbtab .Nd ログイン時にデバイスの保護状態を変更する .Sh 解説 .Nm ファイルには、 単一デバイス・複数デバイスのリスト・それらのパーミッション の 3 つを指定する行が複数個格納されます。 -コメントは # から開始し、行末まで続きます。 +コメントは +.Ql # +から開始し、行末まで続きます。 .Pp 空行もしくはコメントのみの行は無視されます。 .Pp 他の行は空白で区切られる次の 3 フィールドからなります: -ログインデバイス (/dev/ttyv0)・8 進数でのパーミッション値 (0600)・ -そして ":" で区切ったデバイスリスト (/dev/console) です。 +ログインデバイス +.Pq Pa /dev/ttyv0 +・8 進数でのパーミッション値 (0600)・ +そしてコロン +.Pq Dq \&: +で区切ったデバイスリスト +.Pq Pa /dev/console , /dev/dsp* +です。 デバイス名は全て絶対パスで記述します。 -\&"/*" で終るパスは "." と ".." 以外の全ディレクトリエントリを参照します。 +すべてのデバイスパターンは、絶対パスです。 .Pp tty 引数 (相対パス) がログインデバイス名 (絶対パス) にマッチする場合、 -\&":" 区切りでリストされるデバイスのパーミッションが +コロン区切りでリストされるデバイスのパーミッションが 第 2 フィールドで指定される値に設定され、 所有者が UID と GID 引数の値に設定されます。 .Sh 関連ファイル -.Bl -tag -width /etc/fbtab -compact +.Bl -tag -width ".Pa /etc/fbtab" -compact .It Pa /etc/fbtab .Nm ファイルは .Pa /etc にあります。 .El .Sh 関連項目 .Xr login 1 , .Xr getty 8 .Sh 作者 .An Guido van Rooij diff --git a/ja_JP.eucJP/man/man5/fdesc.5 b/ja_JP.eucJP/man/man5/fdesc.5 index 85a33b5472..05054cb0b9 100644 --- a/ja_JP.eucJP/man/man5/fdesc.5 +++ b/ja_JP.eucJP/man/man5/fdesc.5 @@ -1,152 +1,152 @@ .\" Copyright (c) 1996 .\" Mike Pritchard . All rights reserved. .\" .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" Jan-Simon Pendry. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/fdesc.5,v 1.6.2.3 2001/07/25 16:05:35 dd Exp % +.\" %FreeBSD: src/share/man/man5/fdesc.5,v 1.6.2.4 2001/12/20 16:50:57 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/fdesc.5,v 1.11 2001/07/26 07:23:47 horikawa Exp $ +.\" $FreeBSD$ .\" WORD: file descriptor ファイル記述子 .\" WORD: augment (union マウントによる)重ね合わせ .\" .Dd December 14, 1996 .Dt FDESC 5 -.Os BSD 4.4 +.Os .Sh 名称 .Nm fdesc .Nd ファイル記述子ファイルシステム .Sh 書式 fdesc /dev fdesc rw 0 0 .Sh 解説 ファイル記述子ファイルシステム、別名 .Nm は、プロセス毎のファイル記述子の名前空間をグローバルなファイルシステムの 名前空間からアクセスする機能を提供します。 通常のマウントポイントは .Pa /dev であり、 .Pa /dev の既存のエントリを置き換えるのではなく重ね合わせるために、 ファイルシステムを union マウントする必要があります。 .Pp マウントポイントの内容は .Pa fd , .Pa stderr , .Pa stdin , .Pa stdout および .Pa tty です。 .Pp .Pa fd はディレクトリで、その中身は、番号で表したファイルのリストとして見えます。 これらのファイルは、ディレクトリを読むプロセスが現在オープンしている ファイルに対応しています。 .Pa /dev/fd/0 から .Pa /dev/fd/# までのファイルは記述子への参照であり、 ファイルシステムを通じてアクセスすることができます。 ファイル記述子がオープンされていて、ファイルをオープンしたときのモードが 既存の記述子のモードのサブセットである場合は、システムコール呼び出し .Bd -literal -offset indent fd = open("/dev/fd/0", mode); .Ed .Pp と、システムコール呼び出し .Bd -literal -offset indent fd = fcntl(0, F_DUPFD, 0); .Ed .Pp は等価です。 .Pp ファイル .Pa /dev/stdin , .Pa /dev/stdout および .Pa /dev/stderr は .Pa /dev/fd サブディレクトリの対応するエントリへのシンボリックリンクとなります。 これらをオープンするのは、以下のシステムコール呼び出しと等価です。 .Bd -literal -offset indent fd = fcntl(STDIN_FILENO, F_DUPFD, 0); fd = fcntl(STDOUT_FILENO, F_DUPFD, 0); fd = fcntl(STDERR_FILENO, F_DUPFD, 0); .Ed .Pp .Xr open 2 呼び出し時のフラグは .Dv O_RDONLY , .Dv O_WRONLY および .Dv O_RDWR 以外は無視されます。 .Pp .Pa /dev/tty エントリはカレントプロセスの制御端末への間接参照です。 これは見かけ上は名前つきパイプ (FIFO) ですが、本物の制御端末デバイスと 全く同じ振舞いをします。 .Sh 関連ファイル .Bl -tag -width /dev/stderr -compact .It Pa /dev/fd/# .It Pa /dev/stdin .It Pa /dev/stdout .It Pa /dev/stderr .It Pa /dev/tty .El .Sh 関連項目 .Xr tty 4 , .Xr mount_fdesc 8 .Sh 歴史 .Nm ファイルシステムは .Bx 4.4 で最初に登場しました。 .Nm マニュアルページは .Fx 2.2 で最初に登場しました。 .Sh 作者 .An -nosplit .Nm マニュアルページは .An Mike Pritchard Aq mpp@FreeBSD.org によって書かれたもので、 .An Jan-Simon Pendry による .Xr mount_fdesc 8 マニュアルページに基づいています。 diff --git a/ja_JP.eucJP/man/man5/fs.5 b/ja_JP.eucJP/man/man5/fs.5 index 8149e8a3a7..98eccd02d0 100644 --- a/ja_JP.eucJP/man/man5/fs.5 +++ b/ja_JP.eucJP/man/man5/fs.5 @@ -1,371 +1,371 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)fs.5 8.2 (Berkeley) 4/19/94 -.\" %FreeBSD: src/share/man/man5/fs.5,v 1.10.2.3 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/fs.5,v 1.10.2.4 2001/12/17 11:30:14 ru Exp % .\" .\" $FreeBSD$ .\" .Dd April 19, 1994 .Dt FS 5 .Os .Sh 名称 .Nm fs , .Nm inode .Nd ファイルシステムボリュームのフォーマット .Sh 書式 -.Fd #include -.Fd #include +.In sys/param.h +.In ufs/ffs/fs.h .Pp -.Fd #include -.Fd #include -.Fd #include -.Fd #include +.In sys/types.h +.In sys/lock.h +.In ufs/ufs/quota.h +.In ufs/ufs/inode.h .Sh 解説 ファイル .Aq Pa fs.h と .Aq Pa inode.h は、ランダムアクセスデバイス (ディスク) 上のファイルシステムオブジェクト の基本フォーマットを作成、管理する際に使われるいくつかの構造体、 定義済み変数、マクロを宣言します。 .Pp ファイルシステムはブロックサイズとブロック数から構成されており、 これらはファイルシステムのパラメータになります。 .Dv BBLOCK から始まり 大きさ .Dv BBSIZE だけ続くセクタは、 ディスクラベルといくつかの一次、二次ハードウェアブートストラッププログラム のために使われます。 .Pp 実際のファイルシステムは、 .Dv SBLOCK セクタから始まり、そこには 大きさが .Dv SBSIZE である .Em スーパブロック があります。 ファイル .Aq Pa ufs/ffs/fs.h にある以下の構造体は、スーパブロックを記述しています。 .Bd -literal /* * FFS ファイルシステムのスーパブロック */ struct fs { int32_t fs_firstfield; /* 内部スーパブロック用に使われる、歴史的な */ int32_t fs_unused_1; /* ファイルシステムのリンク済みリスト */ ufs_daddr_t fs_sblkno; /* ファイルシステム内のスーパブロックのアドレス */ ufs_daddr_t fs_cblkno; /* ファイルシステム内のシリンダブロックのオフセット */ ufs_daddr_t fs_iblkno; /* ファイルシステム内の inode ブロックのオフセット */ ufs_daddr_t fs_dblkno; /* cg 後の最初のデータのオフセット */ int32_t fs_cgoffset; /* シリンダ内のシリンダグループオフセット */ int32_t fs_cgmask; /* mod fs_ntrak の計算に使われる */ time_t fs_time; /* 最後に書き込まれた時刻 */ int32_t fs_size; /* fs 内のブロック数 */ int32_t fs_dsize; /* fs 内のデータブロック数 */ int32_t fs_ncg; /* シリンダグループの数 */ int32_t fs_bsize; /* fs 内の基本ブロックサイズ */ int32_t fs_fsize; /* fs 内のフラグメントブロックサイズ */ int32_t fs_frag; /* fs の 1 ブロック中のフラグメント数 */ /* 以下はコンフィギュレーションパラメータ */ int32_t fs_minfree; /* フリーブロックの最小パーセンテージ */ int32_t fs_rotdelay; /* 最適な次ブロックのための ms 数 */ int32_t fs_rps; /* 1 秒あたりのディスク回転 */ /* これらのフィールドは他のフィールドから計算できる */ int32_t fs_bmask; /* ``blkoff'' ブロックオフセットの計算 */ int32_t fs_fmask; /* ``fragoff'' フラグメントオフセットの計算 */ int32_t fs_bshift; /* ``lblkno'' 論理ブロック番号の計算 */ int32_t fs_fshift; /* ``numfrags'' フラグメント数の計算 */ /* 以下はコンフィギュレーションパラメータ */ int32_t fs_maxcontig; /* 連続したブロックの最大数 */ int32_t fs_maxbpg; /* シリンダグループあたりの最大ブロック数 */ /* これらのフィールドは他のフィールドから計算できる */ int32_t fs_fragshift; /* フラグメントシフトするブロック */ int32_t fs_fsbtodb; /* fsbtodb と dbtofsb シフト定数 */ int32_t fs_sbsize; /* スーパブロックの実際の大きさ */ int32_t fs_csmask; /* csum ブロックオフセット */ int32_t fs_csshift; /* csum ブロック数 */ int32_t fs_nindir; /* NINDIR の値 */ int32_t fs_inopb; /* INOPB の値 */ int32_t fs_nspf; /* NSPF の値 */ /* 別のコンフィギュレーションパラメータ */ int32_t fs_optim; /* 最適化の選択、以下を参照 */ /* これらのフィールドはハードウェアから引き出される */ int32_t fs_npsect; /* 予備を含むトラックあたりのセクタ数 */ int32_t fs_interleave; /* ハードウェアセクタインタリーブ */ int32_t fs_trackskew; /* トラックあたりのセクタ 0 ゆがみ */ /* fs_id は未使用の fs_headswitch と fs_trkseek のフィールドの空間を保持 */ int32_t fs_id[2]; /* ユニークなファイルシステム ID */ /* シリンダグループの数とサイズにより決められるサイズ */ ufs_daddr_t fs_csaddr; /* シリンダグループ総括領域のブロックアドレス */ int32_t fs_cssize; /* シリンダグループ総括領域のサイズ */ int32_t fs_cgsize; /* シリンダグループサイズ */ /* これらのフィールドはハードウェアから引き出される */ int32_t fs_ntrak; /* シリンダあたりのトラック数 */ int32_t fs_nsect; /* トラックあたりのセクタ数 */ int32_t fs_spc; /* シリンダあたりのセクタ数 */ /* これはディスクドライバパーティション作成時のもの */ int32_t fs_ncyl; /* ファイルシステムのシリンダ数 */ /* これらのフィールドは他のフィールドから計算できる */ int32_t fs_cpg; /* グループあたりのシリンダ数 */ int32_t fs_ipg; /* グループあたりの inode 数 */ int32_t fs_fpg; /* グループあたりのブロック数 * fs_frag */ /* このデータはクラッシュ後に再計算されなければならない */ struct csum fs_cstotal;/* シリンダ総括情報 */ /* 以下のフィールドはマウント時にクリアされる */ int8_t fs_fmod; /* スーパブロック変更フラグ */ int8_t fs_clean; /* ファイルシステムがクリーンであるフラグ */ int8_t fs_ronly; /* 読み込み専用でマウントされたフラグ */ int8_t fs_flags; /* 現在未使用のフラグ */ int8_t fs_fsmnt[MAXMNTLEN]; /* マウントされている名前 */ /* これらのフィールドは現在のブロックの配置情報を保持する */ int32_t fs_cgrotor; /* 最後に検索された cg */ struct csum *fs_csp[MAXCSBUFS]; /* fs_cs 情報バッファのリスト */ int32_t *fs_maxcluster;/* 各シリンダグループの最大クラスタ */ int32_t fs_cpc; /* postbl 内のサイクルあたりのシリンダ */ int16_t fs_opostbl[16][8]; /* 旧回転ブロックリストヘッド */ int32_t fs_sparecon[50]; /* 将来のために予約された定数 */ int32_t fs_contigsumsize; /* クラスタ総括配列の大きさ */ int32_t fs_maxsymlinklen; /* 内部シンボリックリンクの最大長 */ int32_t fs_inodefmt; /* ディスク上の inode のフォーマット */ u_int64_t fs_maxfilesize;/* 最大表示可能ファイルサイズ */ int64_t fs_qbmask; /* ~fs_bmask - 64 ビットサイズで使う */ int64_t fs_qfmask; /* ~fs_fmask - 64 ビットサイズで使う */ int32_t fs_state; /* fs_clean フィールドが有効であることを示す */ int32_t fs_postblformat;/* 位置レイアウトテーブルのフォーマット */ int32_t fs_nrpos; /* 回転位置の数 */ int32_t fs_postbloff; /* (u_int16) 回転ブロックリストヘッド */ int32_t fs_rotbloff; /* (u_int8) 各回転毎のブロック */ int32_t fs_magic; /* マジックナンバ */ u_int8_t fs_space[1]; /* 各回転毎のブロックのリスト */ /* 実際はもっと長い */ }; /* * ファイルシステム識別 */ #define FS_MAGIC 0x011954 /* fast ファイルシステムのマジックナンバ */ #define FS_OKAY 0x7c269d38 /* スーパブロックチェックサム */ #define FS_42INODEFMT -1 /* 4.2BSD inode フォーマット */ #define FS_44INODEFMT 2 /* 4.4BSD inode フォーット */ /* * 最適化のための選択 */ #define FS_OPTTIME 0 /* 最小アロケーション時間 */ #define FS_OPTSPACE 1 /* 最小ディスクフラグメンテーション */ /* * 回転レイアウトテーブルフォーマットタイプ */ #define FS_42POSTBLFMT -1 /* 4.2BSD 回転テーブルフォーマット */ #define FS_DYNAMICPOSTBLFMT 1 /* 動的回転テーブルフォーマット */ .Ed .Pp 各ディスクドライブはいくつかのファイルシステムを含んでいます。 1 つのファイルシステムは、いくつかのシリンダグループから成ります。 各シリンダグループには inode とデータがあります。 .Pp ファイルシステムは、シリンダグループを順番に記述するスーパブロックに よって記述されています。 スーパブロックは重要なデータであり、壊滅的な損失から守るために 各シリンダグループに複製されています。 これはファイルシステム作成時に行なわれ、重要なスーパブロックデータは 変更されないので、特に惨事がふりかからなければ、複製が参照される 必要はありません。 .Pp inode に保存されたアドレスによって、`ブロック' のフラグメントの 位置を決めることができます。 ファイルシステムブロックのほとんどは .Dv MAXBSIZE ですが、2, 4, 8 個に分けることが自由にでき、 それぞれを位置指定できます。 これらの断片は .Dv DEV_BSIZE または .Dv DEV_BSIZE 単位の倍数であれば良いのです。 .Pp 大きなファイルは、非常に大きなデータブロックからなります。 ディスクスペースの過度の浪費を避けるために、小さなファイルの 最後のデータブロックは、 大きなブロックのフラグメントが必要な数だけ配置されます。 ファイルシステムフォーマットは、そのようなフラグメント (大きなブロックを 分割した一片) の 1 つへのポインタだけを保持します。 そのようなフラグメントの大きさは、 inode にある情報から決定することができ、 .Fn blksize fs ip lbn マクロが使っています。 .Pp ファイルシステムは、提供可能な空きをフラグメントレベルで記録します。 つまり、ブロックの空きを決定するために、フラグメントを並べて調べます。 .Pp root inode は、ファイルシステムのおおもとです。 inode 0 は、通常の目的では使われず、歴史的に バッドブロックは inode 1 にリンクされます。 したがって root inode は、2 です (inode 1 は、もはやこの目的では使われませんが、 多くのダンプテープがこの仮定をしているので、それについては変更できません)。 .Pp .Fa fs_minfree 要素は、空いているファイルシステムブロックの最低許容割合を与えます。 空きリストがこのレベル以下になった場合、スーパユーザ だけがブロックの確保を続けることができます。 .Fa fs_minfree 要素は、空きブロックの予備が必要ないと思われたら 0 にセットしても かまいませんが、ファイルシステムが 90% 以上詰まった状態で動いているときには、 かなり性能が低下するでしょう。 そのためデフォルトの .Fa fs_minfree の値は 10% になっています。 .Pp 経験上、ブロックフラグメンテーションと 90% 使用中のディスク全体の利用 の兼ね合いが最も良いのは、フラグメンテーション 8 のときです。 そのためデフォルトのフラグメントサイズはブロックサイズの 8 倍になっています。 .Pp 要素 .Fa fs_optim はファイルシステムがブロックを確保するのに要する時間を最小に しようとするか、それともディスク上の領域のフラグメンテーションを最小に しようとするかを指定します。 fs_minfree (上記参照) の値が 10% より小さい場合は、ファイルシステム は空間の最適化をデフォルトとし、 完全な大きさのブロックがなくならないようにします。 minfree の値が 10% と等しいかそれ以上の場合には、フラグメンテーション が問題とはなりにくく、ファイルシステムは時間の最適化をデフォルトに します。 .Pp .Em シリンダグループに関連した制限 : 連続したブロックを最小の回転遅れで配置することができるよう、 各シリンダは異なる回転位置での利用可能なブロック数を保持し続けます。 デフォルトでは回転位置を 8 分割で表し、このときの総括情報の分解能は 典型的な 3600 rpm のドライブで 2ms になります。 .Pp 要素 .Fa fs_rotdelay は、同一シリンダ上で別のディスク転送を開始する 最小ミリ秒数を与えます。 これは、あるファイル中のディスクブロックの周回の中での最適な配置を 決定するのに使われます。 デフォルトの .Fa fs_rotdelay の値は 2ms です。 .Pp 各ファイルシステムは、静的に割り当てられた数の inode を持っています。 inode は、ディスク空間あたり .Dv NBPI バイト確保されます。 inode を配置する戦略は、極端に保守的です。 .Pp .Dv MINBSIZE が許される最小のブロックサイズです。 .Dv MINBSIZE が 4096 では、2 段までの(ブロック)間接参照を使って 2^32 の大きさのファイルを作ることができます。 .Dv MINBSIZE は、シリンダグループブロックを保持するのに十分な大きさでなければ なりません。 したがって .Pq Fa 構造体 cg への変更は大きさを .Dv MINBSIZE 以内にしておかなければなりません。 スーパブロックは決して .Dv SBSIZE の大きさ以上ではないということに注意して下さい。 .Pp ファイルシステムがマウントされているパス名は、 .Fa fs_fsmnt に保持されます。 .Dv MAXMNTLEN は、この名前のためにスーパブロックに割り当てられた領域の量を定義します。 ファイルシステム毎の総括情報の量の上限は、 .Dv MAXCSBUFS により定義されています。 4096 バイトブロックサイズの場合では、これは現在最大 200 万シリンダ分 用意されています。 .Pp それぞれのシリンダグループ情報は、先頭のシリンダグループ データブロックから確保されたブロックに要約されます。 これらのブロックはスーパブロックに加えて .Fa fs_csaddr ( .Fa fs_cssize の大きさ) から読み込まれます。 .Pp .Sy 注意: .Fn sizeof "struct csum" は .Fn fs_cs マクロを動かすために 2 のべき乗でなければなりません。 .Pp .Em "ファイルシステムのスーパブロック" : 周回レイアウトテーブルの大きさは、スーパブロックが .Dv SBSIZE の大きさを持つことにより制限されています。 これらのテーブルの大きさは、ファイルシステムのブロックサイズに .Em 逆比例 します。 セクタサイズが 2 のべき乗でないときには、周回パターンを .Pq Fa fs_cpc だけ繰り返すまでに含まれるシリンダ数が増加するので、 同様にテーブルの大きさも増加します。 周回レイアウトテーブルの大きさは、 .Pq Fa struct fs に残っているバイト数から割り出されます。 .Pp シリンダグループあたりのデータブロック数は、シリンダグループが たかだか 1 ブロックであるので、制限されています。 inode と空きブロックテーブルは、単一ブロックから シリンダグループ構造体 .Pq Fa struct cg のための領域を除いた残りにぴったり合っていなければなりません。 .Pp .Em Inode : inode は、 .Tn UNIX ファイルシステム内のすべてのファイルに関する動作の中心です。 各アクティブなファイル、カレントディレクトリ、マウントされたファイル、 テキストファイル、root には、それぞれユニークな inode が割り当てられます。 inode はそのデバイス / i 番号によって `名前付け' されています。 詳しくはインクルードファイル .Aq Pa ufs/ufs/inode.h を参照して下さい。 .Sh 歴史 filsys と名付けられたスーパブロック構造は .At v6 から登場しました。このマニュアルで記述されているファイルシステムは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/fstab.5 b/ja_JP.eucJP/man/man5/fstab.5 index 56223710ea..46a1a1dae6 100644 --- a/ja_JP.eucJP/man/man5/fstab.5 +++ b/ja_JP.eucJP/man/man5/fstab.5 @@ -1,250 +1,254 @@ .\" Copyright (c) 1980, 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)fstab.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man5/fstab.5,v 1.11.2.5 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/fstab.5,v 1.11.2.7 2001/12/21 02:13:31 sheldonh Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/fstab.5,v 1.10 2001/07/23 02:26:59 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd June 5, 1993 .Dt FSTAB 5 .Os .Sh 名称 .Nm fstab .Nd ファイルシステムに関する静的情報 .Sh 書式 -.Fd #include +.In fstab.h .Sh 解説 .Nm ファイルは、さまざまなファイルシステムについて記述した情報を格納します。 .Nm はプログラムによって読み出されるだけで、書き込みはされません。 このファイルを適切に作成、保守するのはシステム管理者の責務です。 各ファイルシステムは個別の行に記述されます。 各々の行のフィールドはタブまたはスペースによって区切られます。 .Xr fsck 8 , .Xr mount 8 , .Xr umount 8 が .Nm を通じて必要な処理を連続して繰り返すため、 .Nm のレコードの順序は重要な意味を持ちます。 .Pp 第 1 フィールド .Pq Fa fs_spec はマウントされるブロック型スペシャルデバイス、またはリモートのファイル システムを表します。 .Em ufs 形式のファイルシステムでは、特殊ファイル名はブロック型特殊ファイル名であり、 キャラクタ型特殊ファイル名ではありません。 プログラムがキャラクタ型特殊ファイル名を必要とする場合、そのプログラム が特殊ファイル名の中の最後の ``/'' の後ろに ``r'' を追加することで キャラクタ特殊ファイル名を作成する必要があります。 .Pp 第 2 フィールド .Pq Fa fs_file はファイルシステムのマウントポイントを表します。 スワップパーティションでは、このフィールドには ``none'' と記述すべきです。 .Pp 第 3 フィールド .Pq Fa fs_vfstype はファイルシステムの形式を表します。 システムはさまざまなファイルシステム形式をサポートできます。 ルート、 /usr および /tmp のファイルシステムだけはカーネルに静的に組み 込まれている必要があります。 他のすべてのファイルシステムはマウント時に自動的にロードされます (例外 : UFS 系 - FFS, MFS, LFS は現在のところデマンドロードは できません)。 いまだに他のファイルシステムも同様に静的に組み込むのを好む人もいるようです。 .Bl -tag -width indent -offset indent .It Em ufs ローカルの .Tn UNIX ファイルシステム .It Em mfs ローカルのメモリベース .Tn UNIX ファイルシステム .It Em nfs Sun Microsystems 互換 ``Network File System'' .It Em swap スワッピングに使用されるディスクパーティション .It Em msdos DOS 互換ファイルシステム .It Em cd9660 ( ISO 9660 による) CD-ROM ファイルシステム .\" おそらく、例えばRock Ridge extension形式なども処理される? .It Em procfs プロセスデータへのアクセスのためのファイルシステム .It Em kernfs カーネルパラメータへのアクセスのためのファイルシステム .El .Pp 第 4 フィールド .Pq Fa fs_mntops は、ファイルシステムに関連するマウントオプションを表します。 これはコンマで区切られたオプションのリストとして記述されます。 これは少なくともマウントの形式 (以下の .Fa fs_type 参照) を含み、加えてファイルシステム形式に特有のいくつかの追加の オプションを含みます。 指定可能なオプションフラグに関しては、 .Xr mount 8 ページおよび .Xr mount_nfs 8 等のファイルシステム固有のページの、オプションフラグ .Pq Fl o を参照してください。 .Pp ``userquota'' および ``groupquota'' オプションの双方、またはいずれかが 指定されている場合、ファイルシステムは自動的に .Xr quotacheck 8 コマンドによって処理され、ユーザおよびグループクォータが .Xr quotaon 8 で有効にされます。 デフォルトでは、ファイルシステムのクォータは関連するファイルシステムの ルートに置かれた .Pa quota.user および .Pa quota.group というファイルで管理されます。 これらのデフォルトは、クォータオプションの直後に等号とデフォルトに代わる 絶対パス名を置くことで変更することができます。 従って、 .Pa /tmp のユーザクォータファイルを .Pa /var/quotas/tmp.user に置く場合、そのファイルの場所は以下のように指定されます。 .Bd -literal -offset indent userquota=/var/quotas/tmp.user .Ed .Pp ``noauto'' オプションが指定されている場合、ファイルシステムはシステム 起動時に自動的にマウントされません。 +NFS 以外の全リモートファイルシステムに対して推奨します。 +NFS マウントのみが、 +.Xr rc +起動スクリプトによるネットワーク初期化まで遅延されるからです。 .Pp マウント形式は .Fa fs_mntops フィールドから取り出され、 .Fa fs_type フィールドに個別に保存されます ( .Fa fs_mntops フィールドからは削除されません)。 .Fa fs_type が ``rw'' または ``ro'' ならば、 .Fa fs_file フィールドで指定されたファイルシステムは、読み書き可能、または読み出し 専用で指定の特殊ファイルに正常にマウントされます。 .Fa fs_type が ``sw'' ならば、特殊ファイルはシステムのリブート処理の最後に .Xr swapon 8 コマンドによってスワップ領域の一部として使用されます。 .Fa fs_spec と .Fa fs_type 以外のフィールドは使用されません。 .Fa fs_type が ``xx'' と指定されている場合、このエントリは無視されます。 これは、現在使用されていないディスクパーティションを表すのに便利です。 .Pp 第 5 フィールド .Pq Fa fs_freq は、どのファイルシステムがダンプされる必要があるか決定するために .Xr dump 8 コマンドによって使用されます。 第5フィールドが与えられていない場合は 0 が返され、 .Nm dump コマンドはそのファイルシステムをダンプする必要がないと見なします。 .Pp 第 6 フィールド .Pq Fa fs_passno は、リブート時にファイルシステムのチェックが行われる順序を決定するために .Xr fsck 8 プログラムによって使用されます。 ルートファイルシステムは .Fa fs_passno に 1、他のファイルシステムは .Fa fs_passno に 2 が指定されているべきです。 1つのドライブ内のファイルシステムは逐次的にチェックされますが、 異なるドライブ上のファイルシステムは、ハードウェアの並列性を利用して 同時にチェックされます。 第6フィールドが与えられていないか 0 の場合、0 が返され、 .Xr fsck 8 コマンドはそのファイルシステムをチェックする必要がないと見なします。 .Bd -literal #define FSTAB_RW "rw" /* 読み書き可能デバイス */ #define FSTAB_RQ "rq" /* クォータ付き読み書き可能デバイス */ #define FSTAB_RO "ro" /* 読み出し専用デバイス */ #define FSTAB_SW "sw" /* スワップデバイス */ #define FSTAB_XX "xx" /* 完全に無視 */ struct fstab { char *fs_spec; /* ブロック型スペシャルデバイス名 */ char *fs_file; /* ファイルシステムのパスのプレフィックス */ char *fs_vfstype; /* ufs,nfs などのファイルシステム形式 */ char *fs_mntops; /* -o に準拠したマウントオプション */ char *fs_type; /* fs_mntops から FSTAB_* のコピー */ int fs_freq; /* ダンプ周期の日数 */ int fs_passno; /* 並列 fsck のパス番号 */ }; .Ed .Pp .Pa fstab のレコードを適切に読み出すには、 .Xr getfsent 3 , .Xr getfsspec 3 , .Xr getfstype 3 , .Xr getfsfile 3 ルーチンを使用します。 .Sh 関連ファイル .Bl -tag -width /etc/fstab -compact .It Pa /etc/fstab .Nm ファイルは .Pa /etc に存在します。 .El .Sh 関連項目 .Xr getfsent 3 , .Xr getvfsbyname 3 , .Xr dump 8 , .Xr fsck 8 , .Xr mount 8 , .Xr quotacheck 8 , .Xr quotaon 8 , .Xr swapon 8 , .Xr umount 8 .Sh 歴史 .Nm ファイルフォーマットは .Bx 4.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/kernfs.5 b/ja_JP.eucJP/man/man5/kernfs.5 index c3e6419d86..469c08db82 100644 --- a/ja_JP.eucJP/man/man5/kernfs.5 +++ b/ja_JP.eucJP/man/man5/kernfs.5 @@ -1,139 +1,139 @@ .\" Copyright (c) 1996 .\" Mike Pritchard . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Mike Pritchard. .\" 4. Neither the name of author nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/kernfs.5,v 1.8.2.2 2001/07/21 09:16:52 schweikh Exp % +.\" %FreeBSD: src/share/man/man5/kernfs.5,v 1.8.2.3 2001/12/21 10:07:13 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/kernfs.5,v 1.8 2001/05/14 01:09:29 horikawa Exp $ +.\" $FreeBSD$ .\"WORD: machine independent 機種に依存しない .\"WORD: decimal ASCII ASCII 表記の 10 進数 .\"WORD: mount point マウントポイント .\" .Dd December 14, 1996 .Dt KERNFS 5 -.Os BSD 4.4 +.Os .Sh 名称 .Nm kernfs .Nd カーネルファイルシステム .Sh 書式 .Bd -literal kern /kern kernfs rw 0 0 .Ed .Sh 解説 カーネルファイルシステム .Nm は、現在実行中のカーネルに関する情報へのアクセス手段を提供するものです。 これは通常 .Pa /kern にマウントされます。 このファイルシステムは読み取り可能な数個の通常ファイルを含んでおり、 これらのファイルの一部には書き込むこともできます。 ファイルの内容は文字列と ASCII 表記の 10 進整数からなり、 機種に依存しない書式になっています。 数値が返されるときは、後ろに改行文字が付け加えられます。 .Pp マウントポイントには以下のファイルが含まれます。 .Bl -tag -width copyright .It Pa bootfile 現在のカーネルが起動したパス。 .It Pa boottime システムが最後に起動した時間 (ASCII 表記の 10 進数)。 .It Pa copyright カーネルの著作権標示。 .It Pa hostname 現在のホスト名。後ろに改行がつきます。 このファイルに書き込むことにより、現在のホスト名を変更することが できます。 ホスト名に後続する改行文字は書き込み時には取り除かれます。 .It Pa hz システムクロックの周波数 (ASCII 表記の 10 進数)。 .It Pa loadavg 過去 1 分間、5 分間および 15 分間のロードアベレージで、カーネル固定小数点 フォーマットで表されます。最後の整数は固定小数のスケーリングファクタ です。全ての数値は ASCII 10 進数で表されます。 .It Pa pagesize マシンのページサイズ (ASCII 10進数)。 .It Pa physmem マシンの物理メモリのページ数 (ASCII 表記の 10 進数)。 .It Pa root システムのルートディレクトリ。chroot した環境では、 .Xr mount_kernfs 8 を、新しい .Pa /kern マウントポイントを生成するために用いることができます。 .Pa /kern/root はカレントプロセスのルートではなく、システム全体のルートを示すことに なる予定です。現在はまだ利用できません。 .It Pa rootdev ルートデバイス。現在はまだ利用できません。 .It Pa rrootdev raw ルートデバイス。現在はまだ利用できません。 .It Pa time システムクロックの秒数およびマイクロ秒数 (ASCII 表記の 10 進数)。 .It Pa version カーネルのバージョン文字列。 .Pa /etc/motd のヘッドラインは .Dq Ic "sed 1q /kern/version" を実行することによって生成することができます。 .El .Pp .Nm によって得られる情報のほとんどは .Xr sysctl 8 からも入手可能です。 .Sh 関連ファイル .Bl -tag -width /kern/XXXXXXX .It Pa /kern .Nm のための通常のマウントポイント。 .El .Sh 関連項目 .Xr sysctl 3 , .Xr mount_kernfs 8 , .Xr sysctl 8 .Sh 歴史 .Nm ファイルシステムは .Bx 4.4 で最初に登場しました。 .Nm マニュアルページは .Fx 2.2 で最初に登場しました。 .Sh 作者 .An -nosplit .Nm マニュアルページは .An Mike Pritchard Aq mpp@FreeBSD.org によって書かれたもので、 .An Jan-Simon Pendry による .Xr mount_kernfs 8 マニュアルページに基づいています。 diff --git a/ja_JP.eucJP/man/man5/link.5 b/ja_JP.eucJP/man/man5/link.5 index 8bd3b295ef..dd5ab47913 100644 --- a/ja_JP.eucJP/man/man5/link.5 +++ b/ja_JP.eucJP/man/man5/link.5 @@ -1,610 +1,610 @@ .\" Copyright (c) 1993 Paul Kranenburg .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Paul Kranenburg. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/link.5,v 1.14.2.8 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/link.5,v 1.14.2.9 2001/12/17 11:30:15 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/link.5,v 1.13 2001/08/10 02:12:54 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd October 23, 1993 .Dt LINK 5 .Os .Sh 名称 .Nm link .Nd ダイナミックローダとリンクエディタインタフェース .Sh 書式 -.Fd #include -.Fd #include -.Fd #include +.In sys/types.h +.In nlist.h +.In link.h .Sh 解説 インクルードファイル .Aq Pa link.h では、ダイナミックにリンクされたプログラムやライブラリに含まれる 数種の構造体が宣言されています。 その構造体は、リンクエディタとローダ機構のいくつかの構成要素間の インタフェースを定義します。 バイナリ中でのこれらの構造体のレイアウトは 多くの点で a.out 形式に類似しており、 シンボル定義 (付随する文字列テーブルを含む) や外部エンティティへの参照を 解決するのに必要なリロケーションレコードといった、 よく似た機能を提供します。 それに加え、ダイナミックロードとリンク処理に固有のいくつかのデータ構造も 記録しています。このようなデータ構造としては、 リンクエディット処理を完結するのに必要な他のオブジェクトへの参照や、 異なるプロセス間でコードページの共有を進めるための .Em 位置独立コード (Position Independent Code 略して PIC) を機能させるための 間接テーブルがあります。 ここで述べるデータ構造全体を .Em ランタイムリロケーションセクション (RRS) と呼び、ダイナミックにリンクされるプログラムや共有オブジェクトの 標準テキスト及びデータセグメントに埋め込まれます。 これは、既存の .Xr a.out 5 形式には RRS のための場所が他にないからです。 .Pp あるプログラムを実行可能とする処理が、 システムリソースの使用を最適化しつつ正しく完了するよう、 複数のユーティリティが協調して働きます。 コンパイラは PIC コードを出力し、 それから .Xr ld 1 によって共有ライブラリが作られます。 コンパイラはまた、初期化される各データアイテムのサイズ情報を アセンブラディレクティブ .size を用いて記録します。 PIC コードは、ある間接テーブルを通じてデータ変数にアクセスする点で 従来のコードと異なっています。 この表はグローバルオフセットテーブルと呼ばれ、 慣習によって、予約名 .Dv _GLOBAL_OFFSET_TABLE_ によってアクセス可能です。 ここで用いられるメカニズムの詳細は機種依存ですが、通常は そのマシンのレジスタ 1 本がこの用途に予約されます。 このような仕組みの背景にある合理性は、 実際のロードアドレスとは独立したコードを生成することです。 実行時には、アドレス空間において様々な共有オブジェクトがロードされるアドレス に応じて、グローバルオフセットテーブルに含まれる値のみ変更すればよいのです。 .Pp 同様に、大域的に定義された関数の呼び出しは、 コアイメージのデータセグメント中に置かれている プロシージャリンケージテーブル (PLT) を通じて間接的に行われます。 これもまた、実行時にテキストセグメントを修正せずに済ませるためのものです。 .Pp リンクエディタがグローバルオフセットテーブルとプロシージャリンケージテーブルを 配置するのは、 複数の PIC オブジェクトファイルを結合して プロセスのアドレス空間にマップするのに適した 1 つのイメージにする時です。 リンクエディタはまた、実行時のリンクエディタが必要とする全てのシンボルを集め、 それらをイメージのテキストとデータのビット列と共にストアします。 もう 1 つの予約シンボル .Em _DYNAMIC は、実行時のリンク構造が存在することを示すのに用いられます。 _DYNAMIC が 0 にリロケートされる場合は、実行時リンクエディタを起動する 必要はありません。 もし _DYNAMIC が非 0 なら、_DYNAMIC は、必要なリロケーション情報と シンボル情報の位置を引き出すことができるデータ構造を指しています。 これは特に、スタートアップモジュール .Em crt0 で利用されます。 慣習として、_DYNAMIC 構造体は、 それが属するイメージのデータセグメントの最初に置かれます。 .Sh データ構造 ダイナミックリンクと実行時リロケーションをサポートするデータ構造は、 それらの処理の適用対象イメージのテキスト及びデータセグメントの 両方の中にあります。 テキストセグメントにはシンボル記述や名前といった読み取り専用データが含まれ、 他方データセグメントにはリロケーション処理で更新する必要のあるテーブル類が 含まれます。 .Pp シンボル _DYNAMIC は .Fa _dynamic 構造体を参照します: .Bd -literal -offset indent struct _dynamic { int d_version; struct so_debug *d_debug; union { struct section_dispatch_table *d_sdt; } d_un; struct ld_entry *d_entry; }; .Ed .Bl -tag -width d_version .It Fa d_version このフィールドは異なったバージョンのダイナミックリンク実装用に 提供されています。 .Xr ld 1 及び .Xr ld.so 1 が理解する現在のバージョン番号は、 .Tn SunOS 4.x リリースで用いられている .Em LD_VERSION_SUN (3) と、 .Fx 1.1 以来使用されている .Em LD_VERSION_BSD (8) です。 .It Fa d_un .Em d_version に応じたデータ構造を参照します。 .It Fa so_debug このフィールドは、 共有オブジェクトのシンボルテーブルをアクセスするためのフックを デバッガに提供します。 この共有オブジェクトは、 実行時リンクエディタの処理の結果ロードされたものです。 .El .Pp .Fa section_dispatch_table 構造体がメインとなる .Dq ディスパッチャ テーブルであり、 イメージ内で様々なシンボル情報やリロケーション情報が置かれるセグメントへの オフセットを保持します。 .Bd -literal -offset indent struct section_dispatch_table { struct so_map *sdt_loaded; long sdt_sods; long sdt_filler1; long sdt_got; long sdt_plt; long sdt_rel; long sdt_hash; long sdt_nzlist; long sdt_filler2; long sdt_buckets; long sdt_strings; long sdt_str_sz; long sdt_text_sz; long sdt_plt_sz; }; .Ed .Pp .Bl -tag -width sdt_filler1 .It Fa sdt_loaded ロードされた最初のリンクマップ (後述) へのポインタ。 このフィールドは .Nm ld.so によって設定されます。 .It Fa sdt_sods .Em この オブジェクトが必要とする共有オブジェクトデスクリプタの (リンク) リストの先頭。 .It Fa sdt_filler1 使用しないで下さい (SunOS では ライブラリの検索ルールを指定するのに使用されていました)。 .It Fa sdt_got このイメージ中でのグローバルオフセットテーブルの位置。 .It Fa sdt_plt このイメージ中でのプロシージャリンケージテーブルの位置。 .It Fa sdt_rel 実行時のリロケーションを指定する .Fa relocation_info 構造体 ( .Xr a.out 5 参照) の配列の位置。 .It Fa sdt_hash このオブジェクトのシンボルテーブルでシンボル検索を高速化するための ハッシュテーブルの位置。 .It Fa sdt_nzlist シンボルテーブルの位置。 .It Fa sdt_filler2 現在使用されていません。 .It Fa sdt_buckets .Fa sdt_hash 中のバケット数。 .It Fa sdt_strings .Fa sdt_nzlist に対応するシンボル文字列テーブルの位置。 .It Fa sdt_str_sz 文字列テーブルのサイズ。 .It Fa sdt_text_sz このオブジェクトのテキストセグメントのサイズ。 .It Fa sdt_plt_sz プロシージャリンケージテーブルのサイズ。 .El .Pp .Fa sod 構造体は、それを含むオブジェクトのリンクエディット処理を完了するのに 必要な共有オブジェクトを記述します。 そのようなオブジェクトのリスト ( .Fa sod_next で連結されます) は section_dispatch_table 構造体の .Fa sdt_sods によって指し示されます。 .Bd -literal -offset indent struct sod { long sod_name; u_int sod_library : 1, sod_reserved : 31; short sod_major; short sod_minor; long sod_next; }; .Ed .Pp .Bl -tag -width sod_library .It Fa sod_name このリンクオブジェクトを記述する文字列の、 テキストセグメントにおけるオフセット。 .It Fa sod_library もし設定されていれば、 .Fa sod_name は .Nm ld.so が検索することになるライブラリを指定します。 そのパス名は、あるディレクトリ群 ( .Xr ldconfig 8 参照) で .Em lib\&\&.so.n.m. にマッチする共有オブジェクトを検索することで得られます。 もし設定されていなければ、 .Fa sod_name は希望する共有オブジェクトに対するフルパス名を指し示す必要があります。 .It Fa sod_major ロードすべき共有オブジェクトのメジャーバージョン番号を指定します。 .It Fa sod_minor ロードすべき共有オブジェクトの希望するマイナーバージョン番号を指定します。 .El .Pp プロセスのアドレス空間にロードされる共有オブジェクト全てを追跡するために、 実行時リンクエディタは .Em リンクマップ と呼ばれる構造体のリストを管理しています。 これらの構造体は実行時にのみ用いられ、 実行可能ファイルや共有ライブラリのテキストあるいはデータセグメントには ありません。 .Bd -literal -offset indent struct so_map { caddr_t som_addr; char *som_path; struct so_map *som_next; struct sod *som_sod; caddr_t som_sodbase; u_int som_write : 1; struct _dynamic *som_dynamic; caddr_t som_spd; }; .Ed .Bl -tag -width som_dynamic .It Fa som_addr このリンクマップに対応する共有オブジェクトがロードされるアドレス。 .It Fa som_path ロードされるオブジェクトのフルパス名。 .It Fa som_next 次のリンクマップへのポインタ。 .It Fa som_sod この共有オブジェクトのロードをつかさどる .Fa sod 構造体。 .It Fa som_sodbase 将来のバージョンにおいては、実行時リンカに渡されます。 .It Fa som_write このオブジェクトのテキストセグメント (の一部分) が現在書き込み可能である 場合にセットされます。 .It Fa som_dynamic このオブジェクトの .Fa _dynamic 構造体へのポインタ。 .It Fa som_spd 実行時リンクエディタが管理するプライベートデータと連結するためのフック。 .El .Pp サイズ付きシンボル記述。 これは単に .Fa nlist 構造体にフィールド .Pq Fa nz_size を 1 つ追加したものです。 共有オブジェクトのデータセグメントにあるアイテムの サイズ情報を伝達するのに用いられます。 この構造体の配列は共有オブジェクトのテキストセグメントに存在し、 そのアドレスは .Fa section_dispatch_table の .Fa sdt_nzlist フィールドで指定されます。 .Bd -literal -offset indent struct nzlist { struct nlist nlist; u_long nz_size; #define nz_un nlist.n_un #define nz_strx nlist.n_un.n_strx #define nz_name nlist.n_un.n_name #define nz_type nlist.n_type #define nz_value nlist.n_value #define nz_desc nlist.n_desc #define nz_other nlist.n_other }; .Ed .Bl -tag -width nz_size .It Fa nlist ( .Xr nlist 3 参照)。 .It Fa nz_size このシンボルで表現されるデータのサイズ。 .El .Pp 実行時のリンクエディットで行われるシンボル検索を高速化するため、 共有オブジェクトのテキストセグメントにハッシュテーブルが含まれています。 .Fa section_dispatch_table の .Fa sdt_hash フィールドは .Fa rrs_hash 構造体を指し示します: .Bd -literal -offset indent struct rrs_hash { int rh_symbolnum; /* シンボル番号 */ int rh_next; /* 次のハッシュエントリ */ }; .Ed .Pp .Bl -tag -width rh_symbolnum .It Fa rh_symbolnum 共有オブジェクトのシンボルテーブル ( .Fa ld_symbols で与えられます) での当該シンボルのインデックス。 .It Fa rh_next 衝突が起きたとき、このフィールドはこのハッシュテーブルのバケットにおける 次のエントリのオフセットを保持します。 最終バケット要素の場合は 0 となります。 .El .Fa rt_symbol 構造体は、 実行時にアロケートされるコモン(commons)と 共有オブジェクトからコピーされるデータアイテムを 追跡するのに用いられます。 これらのアイテムはリンクリストで管理され、デバッガでの利用のために .Fa so_debug 構造体 (後述) 中の .Fa dd_cc フィールドによって公開されます。 .Bd -literal -offset indent struct rt_symbol { struct nzlist *rt_sp; struct rt_symbol *rt_next; struct rt_symbol *rt_link; caddr_t rt_srcaddr; struct so_map *rt_smp; }; .Ed .Pp .Bl -tag -width rt_scraddr .It Fa rt_sp シンボル記述。 .It Fa rt_next 次の rt_symbol の仮想アドレス。 .It Fa rt_link ハッシュバケットにおける次の要素。 .Nm ld.so の内部で用いられます。 .It Fa rt_srcaddr 共有オブジェクト中での初期化済データのソース位置。 .It Fa rt_smp この実行時シンボルが記述するデータの元のソースとなる共有オブジェクト。 .El .Pp .Fa so_debug 構造体は、 実行時リンクエディットの結果、当該プロセスのアドレス空間にロードされた あらゆる共有オブジェクトの情報を得るために、 デバッガによって利用されます。 実行時リンクエディタはプロセスの初期化処理の一部として実行されるため、 共有オブジェクトからシンボルにアクセスしようとするデバッガは、 crt0 からリンクエディタが呼ばれた後でのみそれが可能となります。 ダイナミックリンクされているバイナリは .Fa so_debug 構造体を持っています。この構造体の場所は .Fa _dynamic 中の .Fa d_debug フィールドで指示されます。 .Bd -literal -offset indent struct so_debug { int dd_version; int dd_in_debugger; int dd_sym_loaded; char *dd_bpt_addr; int dd_bpt_shadow; struct rt_symbol *dd_cc; }; .Ed .Pp .Bl -tag -width dd_in_debugger .It Fa dd_version このインタフェースのバージョン番号。 .It Fa dd_in_debugger 当該プログラムがデバッガの制御下にあることを実行時リンカに知らせるために デバッガによってセットされます。 .It Fa dd_sym_loaded 共有オブジェクトをロードすることで実行時リンカがシンボルを追加した場合、 実行時リンカによってセットされます。 .It Fa dd_bpt_addr デバッガに制御を移すために実行時リンカによってセットされる ブレークポイントアドレス。 このアドレスは、_main 呼び出しの前に、スタートアップモジュール .Em crt0.o によってある適切な場所に決定されます。 .It Fa dd_bpt_shadow アドレス .Fa dd_bpt_addr にあった元の機械命令を保持します。 デバッガは、プログラム実行を再開する前にこの機械命令を元に戻すことに なっています。 .It Fa dd_cc デバッガが必要とする可能性のある、実行時にアロケートしたシンボルの リンクリストへのポインタ。 .El .Pp .Em ld_entry 構造体は .Nm ld.so 中のサービスルーチン一式を定義します。 .\" See .\" .Xr libdl.a .\" for more information. .Bd -literal -offset indent struct ld_entry { void *(*dlopen)(char *, int); int (*dlclose)(void *); void *(*dlsym)(void *, char *); char *(*dlerror)(void); }; .Ed .Pp .Fa crt_ldso 構造体は、crt0 中のスタートアップコードと .Nm ld.so との間のインタフェースを定義します。 .Bd -literal -offset indent struct crt_ldso { int crt_ba; int crt_dzfd; int crt_ldfd; struct _dynamic *crt_dp; char **crt_ep; caddr_t crt_bp; char *crt_prog; char *crt_ldso; struct ld_entry *crt_ldentry; }; #define CRT_VERSION_SUN 1 #define CRT_VERSION_BSD_2 2 #define CRT_VERSION_BSD_3 3 #define CRT_VERSION_BSD_4 4 .Ed .Bl -tag -width crt_dzfd .It Fa crt_ba crt0 によって .Nm ld.so がロードされた仮想アドレス。 .It Fa crt_dzfd SunOS では、このフィールドは .Dq Pa /dev/zero へのオープンされたファイル記述子を保持し、 0 クリアされたデマンドページを得ます。 .Fx ではこのフィールドは -1 を保持します。 .It Fa crt_ldfd .Nm ld.so をロードするために crt0 が用いる、オープンされたファイル記述子 を保持します。 .It Fa crt_dp main の .Fa _dynamic 構造体へのポインタ。 .It Fa crt_ep 環境文字列へのポインタ。 .It Fa crt_bp メインプログラムがデバッガで実行される場合、 実行時リンカがブレークポイントを置くアドレス。 .Fa so_debug を参照してください。 .It Fa crt_prog crt0 で決定されるメインプログラムの名前 (CRT_VERSION_BSD3 のみ)。 .It Fa crt_ldso crt0 でマップされる実行時リンカのパス (CRT_VERSION_BSD4 のみ)。 .El .Pp .Fa hints_header 構造体及び .Fa hints_bucket 構造体は、通常 .Dq Pa /var/run/ld.so.hints に置かれるライブラリヒントのレイアウトを定義します。 ライブラリヒントは、ファイルシステム中で共有オブジェクトイメージの在処を すばやく見つけるために .Nm ld.so によって利用されます。 ヒントファイルの構成は .Dq a.out とそれほど異なりません。つまりヒントファイルは、 固定長ハッシュバケットのオフセットとサイズを決定するためのヘッダと、 共通の文字列プールを持っています。 .Bd -literal -offset indent struct hints_header { long hh_magic; #define HH_MAGIC 011421044151 long hh_version; #define LD_HINTS_VERSION_1 1 long hh_hashtab; long hh_nbucket; long hh_strtab; long hh_strtab_sz; long hh_ehints; }; .Ed .Bl -tag -width hh_strtab_sz .It Fa hh_magic ヒントファイルのマジックナンバ。 .It Fa hh_version インタフェースのバージョン番号。 .It Fa hh_hashtab ハッシュテーブルのオフセット。 .It Fa hh_strtab 文字列テーブルのオフセット。 .It Fa hh_strtab_sz 文字列テーブルのサイズ。 .It Fa hh_ehints ヒントファイルで利用可能な最大オフセット。 .El .Pp .Bd -literal -offset indent /* * ヒントファイルのハッシュテーブル要素 */ struct hints_bucket { int hi_namex; int hi_pathx; int hi_dewey[MAXDEWEY]; int hi_ndewey; #define hi_major hi_dewey[0] #define hi_minor hi_dewey[1] int hi_next; }; .Ed .Bl -tag -width hi_ndewey .It Fa hi_namex ライブラリを指定する文字列のインデックス。 .It Fa hi_pathx ライブラリのフルパス名を表す文字列のインデックス。 .It Fa hi_dewey 共通ライブラリのバージョン番号。 .It Fa hi_ndewey .Fa hi_dewey 中の有効エントリ数。 .It Fa hi_next ハッシュ衝突の際の次のバケット。 .El .Sh 警告 現在のところ、共有ライブラリ生成をサポートしているのは (GNU) C コンパイラ のみです。他のプログラミング言語では利用できません。 diff --git a/ja_JP.eucJP/man/man5/make.conf.5 b/ja_JP.eucJP/man/man5/make.conf.5 index e6396bfaa9..d562dda0e8 100644 --- a/ja_JP.eucJP/man/man5/make.conf.5 +++ b/ja_JP.eucJP/man/man5/make.conf.5 @@ -1,789 +1,793 @@ .\" Copyright (c) 2000 .\" Mike W. Meyer .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/make.conf.5,v 1.12.2.11 2001/09/30 12:40:03 dd Exp % +.\" %FreeBSD: src/share/man/man5/make.conf.5,v 1.12.2.12 2001/12/17 11:30:15 ru Exp % .\" .\" $FreeBSD$ .\" .Dd November 3, 2000 .Dt MAKE.CONF 5 .Os .Sh 名称 .Nm make.conf .Nd システムビルド情報 .Sh 解説 .Nm ファイルには .Fx のソースや ports アプリケーションの制御に関する設定が含まれています。 通常 .Nm ファイルは、システム管理者が、 これらの値をデフォルトから変更したい場合に作成します。 .Pp .Nm の用途は、コマンド実行やコンパイル動作を直接行うことではなく、 .Pa /usr/src , .Pa /usr/ports , .Pa /usr/doc などにある様々な makefile にインクルードされることです。 そのような makefile では、 内部の動作が .Nm の与える条件によって変化するようになっているのです。 .Pp .Pa /etc/make.conf ファイルはそれぞれ適切な .Pa Makefile からインクルードされます。 各々の Makefile の中では、 利用可能なすべてのオプションに対し、デフォルトの設定が与えられています。 .Pa /etc/make.conf で指定する必要があるオプションは、 システム管理者がデフォルトから変更したいと思ったものだけです。 .Pp ビルドの手続きは、大きく 4 つの領域に分けられます。 world、カーネル、ドキュメント、ports です。 .Nm で設定された変数はこれらの領域の 1 つ、2 つ、 あるいは全てに適用されます。 変数は、特定のビルドに対して .Xr make 1 の .Fl D オプションを用いて指定することもできます。 .Pp 以下のリストでは、それぞれ指定したビルドの途中で用いることのできる 各変数の名前と簡単な説明を記述します。 .Vt bool と指定されている変数では、その値は意味を持ちません。 変数が設定されていれば (たとえ値が .Dq Li FALSE や .Dq Li NO でも)、変数が設定されているものとして扱われます。 .Pp 次のリストは、すべてのビルド (あるいはビルド以外の目的で使われる .Pa Makefile ) で用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va CFLAGS .Pq Vt str C のコードをコンパイルするときのコンパイラの設定を制御します。 .Fl O を越えた最適化レベル .Pq Fl O2 , No ... はサポートされていません。 .Va BDECFLAGS は、 .An "Bruce Evans" Aq bde@FreeBSD.org が開発や変更のテスト用に勧めている .Xr gcc 1 設定です。 -これは以下のように使用可能です。 +これは、設定すれば、以下のように使用可能です。 .Pp .Bd -literal -offset indent CXFLAGS+=${BDECFLAGS} .Ed .It Va CVS_UPDATE .Pq Vt bool .Dq Li "make update" で ports を更新するときに .Xr cvs 1 を用いる場合、設定します。 .It Va CXXFLAGS .Pq Vt str C++ のコードをコンパイルするときのコンパイラの設定を制御します。 .Va CXXFLAGS は最初は .Va CFLAGS の値に設定されます。この .Va CXXFLAGS の値に追加を行いたい場合は、 .Dq Li = ではなく .Dq Li += を用いてください。 .It Va INSTALL .Pq Vt str デフォルトのインストールコマンドです。 インストールを行う前に比較を行いたい場合は、次の例を用いてください。 .Bd -literal -offset indent INSTALL="install -C" .Ed .It Va LOCAL_DIRS .Pq Vt str この変数には .Pa /usr/src で make を行うときに入るべきディレクトリをすべてリストします。 .It Va MTREE_FOLLOWS_SYMLINKS .Pq Vt str .Xr mtree 8 にシンボリックリンクを追跡させたい場合は、 これを .Dq Fl L に設定します。 .It Va NO_DOCUPDATE .Pq Vt bool .Dq Li "make update" で doc ツリーを更新させない場合これを設定します。 .It Va NO_PORTSUPDATE .Pq Vt bool .Dq Li "make update" で ports ツリーを更新させない場合これを設定します。 .It Va SUP_UPDATE .Pq Vt bool .Dq Li "make update" による ports の更新に .Xr cvsup 1 を使う場合これを設定します。 .It Va SUP .Pq Vt str .Dq Li "make update" で用いられる .Xr cvsup 1 コマンドの置き場所です。 .It Va SUPFLAGS .Pq Vt str .Dq Li "make update" を行うとき .Xr sup 1 に与えるフラグ。デフォルトは .Op Fl g L Ar 2 です。 .It Va SUPHOST .Pq Vt str .Dq Li "make update" を行うときに用いる sup サーバのホスト名です。 .It Va SUPFILE .Pq Vt str .Dq Li "make update" を行うとき、最初に用いる .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/standard\-supfile です。 .It Va SUPFILE1 .Pq Vt str .Dq Li "make update" を行うとき、二番目に用いる .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/secure\-supfile です。 .It Va SUPFILE2 .Pq Vt str .Dq Li "make update" を行うとき、三番目に用いる .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/secure\-supfile です。 .It Va PORTSSUPFILE .Pq Vt str .Dq Li "make update" を行うときの ports 用の .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/ports\-supfile です。 .It Va DOCSUPFILE .Pq Vt str .Dq Li "make update" を行うときのドキュメント用の .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/doc\-supfile です。 .It Va WARNS_WERROR WARNS が有効な場合、 -Werror を .Va CFLAGS へ追加させます。 .El .Pp 次のリストは、カーネルのビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va BOOT_COMCONSOLE_PORT .Pq Vt str ブートブロックが、 キーボード/ビデオカードの代わりに シリアルコンソールを用いるよう設定された場合に、 コンソールとして用いるポートアドレスです。 .It Va BOOT_COMCONSOLE_SPEED .Pq Vt int ブートブロックが、 キーボード/ビデオカードの代わりに シリアルコンソールを用いるよう設定された場合に、 コンソールで用いるボーレートです。 .It Va BOOTWAIT .Pq Vt int カーネルがデフォルトカーネルのブートを開始する前に、 コンソールのキーが押されるのを待つ時間を制御します。 値はだいたいミリ秒単位となります。 ディスクからブートする前のキー入力の認識は BIOS が行うので、 これが 0 に設定されていた場合でも、 ユーザの選択したブートパラメータを与えることは可能です。 .It Va COPTFLAGS .Pq Vt str カーネルをコンパイルするときのコンパイラの設定を制御します。 .Op Fl O を越えた最適化レベル .Pq Op Fl O2 , No ...\& は、動作が保証されていません。 .It Va KERNCONF .Pq Vt str .Dq Li "${MAKE} buildkernel" によるビルドと .Dq Li "${MAKE} installkernel" . によるインストールとで、 どのカーネル設定を用いるかを制御します。例えば .Bd -literal -offset indent KERNCONF=MINE DEBUG GENERIC OTHERMACHINE .Ed .Pp とすると、 .Pa MINE , DEBUG , GENERIC , OTHERMACHINE といった各設定ファイルに対応するカーネルをビルドし、 .Pa MINE に対応するカーネルをインストールします。 デフォルトは .Pa GENERIC です。 .It Va NO_KERNELCONFIG .Pq Vt bool .Dq Li "${MAKE} buildkernel" の際に .Xr config 8 を実行しない場合には、これを設定します。 .It Va NO_KERNELDEPEND .Pq Vt bool .Dq Li "${MAKE} buildkernel" の際に .Dq Li "${MAKE} depend" を実行しない場合には、これを設定します。 .It Va NO_MODULES .Pq Vt bool カーネルといっしょにモジュールをビルドしない場合に設定します。 .El .Pp 次のリストは、world のビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va COMPAT1X .Pq Vt bool .Fx 1 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT20 .Pq Vt bool .Fx 2.0 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT21 .Pq Vt bool .Fx 2.1 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT22 .Pq Vt bool .Fx 2.2 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT3X .Pq Vt bool .Fx 3 互換ライブラリをインストールする場合に設定します。 +.It Va COMPAT4X +.Pq Vt bool +.Fx +4 互換ライブラリをインストールする場合に設定します。 .It Va ENABLE_SUIDPERL .Pq Vt bool suid .Xr perl 1 バイナリのインストールを行う場合に設定します。 .It Va FETCH_CMD .Pq Vt str ファイルの取得に用いるコマンドです。 通常は .Xr fetch 1 です。 .It Va MAKE_IDEA .Pq Vt bool IDEA 暗号化コードをビルドする場合に設定します。 このコードは米国やヨーロッパの多くの国々で特許が取得されています。 合法的に IDEA を使えるかどうか決めるのは .Em あなたの責任 です。 .It Va MAKE_KERBEROS4 .Pq Vt bool KerverosIV (KTH eBones) をビルドする場合に設定します。 .It Va MAKE_KERBEROS5 .Pq Vt bool Kerveros5 (KTH Heimdal) をビルドする場合に設定します。 .Em 注意! これはまだ実験的なコードです。 安定している Kerberos5 が必要ならば、 ports を用いてください。 .It Va MODULES_WITH_WORLD .Pq Vt bool カーネルと同時にではなく、 システムと同時にモジュールをビルドする場合に設定します。 .It Va NO_CVS .Pq Vt bool CVS をビルドしない場合に設定します。 .It Va NO_BIND .Pq Vt bool BIND をビルドしない場合に設定します。 .It Va NO_FORTRAN .Pq Vt bool .Xr g77 1 と関連ライブラリをビルドしない場合に設定します。 .It Va NO_I4B .Pq Vt bool isdn4bsd パッケージをビルドしない場合に設定します。 .It Va NO_LPR .Pq Vt bool .Xr lpr 1 と関連プログラムをビルドしない場合に設定します。 .It Va NO_MAILWRAPPER .Pq Vt bool MTA セレクタである .Xr mailwrapper 8 をビルドしない場合に設定します。 .It Va NO_MAKEDEV .Pq Vt bool インストールの際に .Pa /dev で .Dq Li "MAKEDEV all" を実行しない場合に設定します。 .It Va NO_OBJC .Pq Vt bool Objective C のサポートをビルドしない場合に設定します。 .It Va NO_OPENSSH .Pq Vt bool OpenSSH をビルドしない場合に設定します。 .It Va NO_OPENSSL .Pq Vt bool OpenSSL をビルドしない場合に設定します (同時に .Va NO_OPENSSH も設定されたことになります)。 .It Va NO_SENDMAIL .Pq Vt bool .Xr sendmail 8 と関連プログラムをビルドしない場合に設定します。 .It Va NO_SHAREDOCS .Pq Vt bool .Bx 4.4 の古い文書をビルドしない場合に設定します。 .It Va NO_TCSH .Pq Vt bool .Pa /bin/csh (これは .Xr tcsh 1 です) をビルド・インストールしない場合に設定します。 .It Va NO_X .Pq Vt bool X\-Windows のサポート (例えば .Xr doscmd 1 など) をコンパイルしない場合に設定します。 .It Va NOCLEAN .Pq Vt bool .Dq Li "make buildworld" の途中で clean を行わない場合に設定します。 何をやっているかわからない人は設定すべきではありません。 .It Va NOCLEANDIR .Pq Vt bool .Dq Li "${MAKE} cleandir" の代わりに .Dq Li "${MAKE} clean" を実行する場合に設定します。 .It Va NOCRYPT .Pq Vt bool crypto コードを一切ビルドしない場合に設定します。 .It Va NOGAMES .Pq Vt bool ゲームをビルドしない場合に設定します。 .It Va NOINFO .Pq Vt bool .Xr info 5 各ファイルを作成・インストールしない場合に設定します。 .It Va NOLIBC_R .Pq Vt bool .Nm libc_r .Pf ( Nm libc のリエントラント版) をビルドしない場合に設定します。 .It Va NOMANCOMPRESS .Pq Vt bool man ページのインストールの際に圧縮を行わない場合に設定します。 .It Va NOPERL .Pq Vt bool .Xr perl 1 をビルドしない場合に設定します。 .It Va NOPROFILE .Pq Vt bool profile 版ライブラリをコンパイルしない場合に設定します。 .It Va NOSECURE .Pq Vt bool .Pa secure サブディレクトリで crypto コードをビルドしない場合に設定します。 .It Va NOSHARE .Pq Vt bool .Pa share サブディレクトリをビルドしない場合に設定します。 .It Va NOUUCP .Pq Vt bool .Xr uucp 1 と関連プログラムをビルドしない場合に設定します。 .It Va PERL_THREADED .Pq Vt bool .Xr perl 1 をスレッドサポート機能込みでビルド・インストールする場合に設定します。 .It Va PPP_NOSUID .Pq Vt bool .Xr ppp 8 を suid root プログラムとしてはインストールしない場合に設定します。 .It Va SENDMAIL_MC .Pq Vt str インストール時に用いるデフォルトの m4 設定ファイルです。 この値には .Pa .mc ファイルのフルパスを与えます。例えば .Pa /etc/mail/myconfig.mc 。 make install すると、既存の .Pa /etc/mail/sendmail.cf を上書きしてしまうので、注意して使ってください。 .Va SENDMAIL_CF はもう推奨されなくなりました。 .It Va SENDMAIL_ADDITIONAL_MC .Pq Vt str ビルド時に .Pa .cf ファイルに変換される追加分の .Pa .mc ファイル (複数指定可) です。 値には、これらの .Pa .mc ファイルへのフルパスを与えます。 例えば .Pa /etc/mail/foo.mc .Pa /etc/mail/bar.mc など。 .It Va SENDMAIL_M4_FLAGS .Pq Vt 文字列 .Pa .mc ファイルから .Pa .cf ファイルを作成するときに m4 に渡されるフラグ。 .It Va SENDMAIL_CFLAGS .Pq Vt str .Xr sendmail 8 をビルドするときにコンパイルコマンドに渡すフラグです。 .Va SENDMAIL_* 各フラグを用いれば、 SASL サポートをその設定と共に指定できます。 例えば次のようにします。 .Bd -literal -offset indent SENDMAIL_CFLAGS=-I/usr/local/include -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl .Ed .It Va SENDMAIL_LDFLAGS .Pq Vt str .Xr sendmail 8 をビルドするときに .Xr ld 1 コマンドに渡すフラグです。 .It Va SENDMAIL_LDADD .Pq Vt str .Xr sendmail 8 をビルドするときに .Xr ld 1 コマンドの末尾に追加するフラグです。 .It Va SENDMAIL_DPADD .Pq Vt str この変数の説明は与えられていません。 .El .Pp 次のリストは、ドキュメントのビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va DISTDIR .Pq Vt str distfiles が保存されている場所です。 通常これは .Va PORTSDIR の .Pa distfiles です。 .It Va DOC_LANG .Pq Vt str ビルド・インストール対象の言語とエンコーディングのリストです。 .It Va PRINTERDEVICE .Pq Vt str システム文書のデフォルトのフォーマットです。 プリンタに依存します。 簡単なプリンタなら .Dq Li ascii に、PostScript プリンタや グラフィックスプリンタ + ghostscript フィルタなら .Dq Li ps に設定できます。 .El .Pp 次のリストは、ports のビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va FORCE_PKG_REGISTER .Pq Vt bool 既存の package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) の登録情報を上書きする場合に設定します。 .It Va HAVE_MOTIF .Pq Vt bool システムに Motif がある場合に設定します。 .It Va KRB5_HOME .Pq Vt str MIT Kerberos5 の port を .Pa /usr/local 以外にインストールしたい場合に設定します。 .\"translator: "ports" で固有単語とみなすべき? .It Va LOCALBASE .Pq Vt str X 以外の ports をインストールする際のベースディレクトリを与えます。 これは .Pa /usr/ports でビルドを行う際に .Va PREFIX にデフォルト値として与えられます。 .It Va MASTER_SITE_AFTERSTEP .Pq Vt str AfterStep の ports のマスタサイトを変更します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_BACKUP .Pq Vt str .Pa Makefile にリストされている場所が使えない場合、 ports が distfile をチェックしに行く場所を制御します。 パスの最後の部分は .Dq Li /${DIST_SUBDIR}/ でなければなりません。 .It Va MASTER_SITE_COMP_SOURCES .Pq Vt str .Pa comp.sources ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_GNOME .Pq Vt str GNOME ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_GNU .Pq Vt str GNU ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_KDE .Pq Vt str KDE ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_FREEBSD .Pq Vt bool 設定されていると、すべてのファイルをマスタの .Fx サイトから取得します。 .It Va MASTER_SITE_MOZILLA .Pq Vt str Mozilla ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_OVERRIDE .Pq Vt str 設定されていると、ports の .Pa Makefile にリストされているサイトよりも先に、このサイトをチェックしに行きます。 次のようにすればバックアップサイトを先にチェックさせることができます。 .Bd -literal -offset indent MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP} .Ed .It Va MASTER_SITE_PERL_CPAN .Pq Vt str Perl ports のマスタサイトの場所を制御します。 パスの最後の部分は .\".Bd -literal -offset indent .\" /%SUBDIR%/ .\".Ed .Dq Li /%SUBDIR%/ でなければなりません。 .\"translator: ここの .Bd .Ed はコメントアウトしました。 .It Va MASTER_SORT_REGEX .Pq Vt str ミラーセットのソート順を制御する場合に設定します。 .Pa .jp ドメインのミラーを優先的に用いたければ、以下のような設定をします。 .Bd -literal -offset indent MASTER_SORT_REGEX?= ^file: ^ftp://ftp\.FreeBSD\.org/pub/FreeBSD/ports/local-distfiles/ ://[^/]*\.jp/ ://[^/]*\.jp\. .Ed .Pp 他の国別 TLD ドメインのユーザは、 .Dq Li jp を適切なドメインに変更してください。 .It Va MASTER_SITE_RINGSERVER .Pq Vt str Ringserver ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_RUBY .Pq Vt str Ruby ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_SUNSITE .Pq Vt str Sunsite ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_TCLTK .Pq Vt str Tcl/Tk ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_TEX_CTAN .Pq Vt str TeX ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_WINDOWMAKER .Pq Vt str WindowMaker ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_XCONTRIB .Pq Vt str X contrib の ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_XEMACS .Pq Vt str Xemacs ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_XFREE .Pq Vt str XFree ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MOTIFLIB .Pq Vt str .Pa libXm.a と .Pa libXm.so の場所です。 .It Va MOTIF_STATIC .Pq Vt bool Motif を用いる ports を、Motif の共有ライブラリを持たない システム上でも実行させたい場合に設定します。 .It Va NOCLEANDEPENDS .Pq Vt bool .Dq Li "make clean" によって clean される他の ports から依存されている ports を clean したくない場合に設定します。 .It Va NOPORTDOCS .Pq Vt bool ports と同時に追加ドキュメントをインストールしない場合に設定します。 .It Va PACKAGES .Pq Vt str package ターゲットのみに用いられます。 package ツリーのディレクトリです。 .It Va PATCH_SITES .Pq Vt str パッチファイルの配布をしている一次サイトの場所です。 .It Va PORTSDIR .Pq Vt str ports ツリーの場所です。 .It Va USA_RESIDENT .Pq Vt bool 米国居住者は設定してください。 設定すると、米国輸出規制に従う必要がある ports が、 この規制に従うようになります。 .It Va WITHOUT_X11 .Pq Vt bool 設定すると、X11 サポート有り無しの両方で構築可能な ports を、 デフォルトで X11 サポート無しで構築するようにします。 .It Va WRKDIRPREFIX .Pq Vt str ports をビルドする際に用いる一時ファイルを作成する場所です。 .It Va X11BASE .Pq Vt str X11 ディストリビューションを .Pa /usr/X11R6 以外の場所にインストールしたい場合、その場所を設定します。 .El .Sh 関連ファイル .Bl -tag -width /etc/defaults/make.conf -compact .It Pa /etc/defaults/make.conf .It Pa /etc/make.conf .It Pa /usr/doc/Makefile .It Pa /usr/src/Makefile .It Pa /usr/src/Makefile.inc1 .It Pa /usr/ports/Mk/bsd.port.mk .It Pa /usr/ports/Mk/bsd.sites.mk .El .Sh 関連項目 .Xr gcc 1 , .Xr install 1 , .Xr make 1 , .Xr ports 7 , .Xr lpd 8 , .Xr sendmail 8 .Sh 歴史 .Nm ファイルは .Fx 4.0 以前のいつかに登場しました。 .Sh 作者 このマニュアルページは .An "Mike W. Meyer" Aq mwm@mired.org が書きました。 .Sh バグ このマニュアルページは現在の .Nm で利用できるオプションに比べると、 古くなることが時々あるかもしれません。 現在利用できる最新のオプションについては、 .Pa /etc/defaults/make.conf ファイルを調べてください。 diff --git a/ja_JP.eucJP/man/man5/nologin.5 b/ja_JP.eucJP/man/man5/nologin.5 index 8146cabc20..821dec322e 100644 --- a/ja_JP.eucJP/man/man5/nologin.5 +++ b/ja_JP.eucJP/man/man5/nologin.5 @@ -1,73 +1,73 @@ .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)nologin.8 8.1 (Berkeley) 6/19/93 -.\" %FreeBSD: src/sbin/nologin/nologin.5,v 1.7.2.3 2001/07/22 11:32:31 dd Exp % +.\" %FreeBSD: src/sbin/nologin/nologin.5,v 1.7.2.4 2001/12/14 15:17:53 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/nologin.5,v 1.10 2001/05/14 01:09:30 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd June 19, 1993 .Dt NOLOGIN 5 -.Os FreeBSD +.Os .Sh 名称 .Nm nologin .Nd ログインを拒否する .Sh 解説 .Xr login 1 等のプログラムは、 .Pa /var/run/nologin ファイルがあるとログインを拒否します。 このプログラムはユーザに .Pa /var/run/nologin の内容を表示し、終了します。 これにより、一時的にシステム全体でログインを防ぐことを簡単に実現します。 .Pp アカウント毎にログインを無効にしたい場合は、 .Xr nologin 8 を調べてください。 .Sh セキュリティ ユーザ root の .Xr login 1 では無視されます。 .Sh 関連ファイル .Bl -tag -width /var/run/nologinxxx -compact .It Pa /var/run/nologin .Nm ファイルは .Pa /var/run にあります。 .El .Sh 関連項目 .Xr login 1 , .Xr rlogin 1 , .Xr telnet 1 , .Xr nologin 8 , .Xr shutdown 8 diff --git a/ja_JP.eucJP/man/man5/ranlib.5 b/ja_JP.eucJP/man/man5/ranlib.5 index 7deb76d309..c5bdcebf91 100644 --- a/ja_JP.eucJP/man/man5/ranlib.5 +++ b/ja_JP.eucJP/man/man5/ranlib.5 @@ -1,74 +1,74 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ranlib.5.5 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/ranlib/ranlib.5,v 1.4 1999/08/28 01:05:03 peter Exp % +.\" %FreeBSD: src/usr.bin/ranlib/ranlib.5,v 1.4.2.1 2001/12/14 15:53:31 ru Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt RANLIB 5 .Os .Sh 名称 .Nm ranlib .Nd アーカイブ (ライブラリ) の目次テーブルのフォーマット .Sh 書式 -.Fd #include +.In ranlib.h .Sh 解説 アーカイブの目次テーブルコマンド .Nm は、オブジェクトファイルを含むアーカイブの目次テーブルを作成します。 このテーブルはリンクエディタ .Xr ld 1 が使用します。 このコマンドは、ユーティリティ .Xr ar 1 が作成したアーカイブに対して操作を行ないます。 .Pp .Nm の機能により、 3 つの部分からなる新しいファイルがアーカイブの先頭に付加されます。 最初の部分は標準のアーカイブヘッダであり、特別な名前フィールド \&"__.SYMDEF" を持ちます。 .Pp 2 番目の部分は ``long'' に ranlib 構造のリストが続きます。 long は ranlib 構造のバイトでの大きさです。 各 ranlib 構造は、 次の部分 (シンボルの文字列テーブル) への 0 を基準としたオフセットと、 シンボルを定義するアーカイブファイルへのアーカイブの先頭からのオフセット からなります。 実際の ranlib 構造の個数は、 この数値を個々の ranlib 構造の大きさで割ったものです。 .Pp 3 番目の部分は ``long'' に文字列テーブルが続きます。 long は文字列テーブルのバイト数です。 .Sh 関連項目 .Xr ar 1 , .Xr ranlib 1 diff --git a/ja_JP.eucJP/man/man5/rc.conf.5 b/ja_JP.eucJP/man/man5/rc.conf.5 index 4ec9b9e3b7..d8ab5924bb 100644 --- a/ja_JP.eucJP/man/man5/rc.conf.5 +++ b/ja_JP.eucJP/man/man5/rc.conf.5 @@ -1,1787 +1,1807 @@ .\" Copyright (c) 1995 .\" Jordan K. Hubbard .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/rc.conf.5,v 1.64.2.35 2001/12/17 11:30:15 ru Exp % +.\" %FreeBSD: src/share/man/man5/rc.conf.5,v 1.64.2.36 2001/12/19 22:25:36 brooks Exp % .\" .\" $FreeBSD$ .\" .Dd February 4, 2001 .Dt RC.CONF 5 .Os .Sh 名称 .Nm rc.conf .Nd システム設定情報 .Sh 解説 .Nm ファイルは、ローカルホスト名、任意の潜在的なネットワークインタフェースに 関する設定の詳細、システムの初期起動時に立ち上げるべき サービスに関して記述される情報を含んでいます。 初めてインストールする際には、一般に .Nm ファイルはシステムインストールユーティリティ .Pa /stand/sysinstall によって初期化されます。 .Pp .Nm の目的は、 直接コマンドを実行したりシステム起動操作を行うことではありません。 そうではなく、 このファイルで見つかる設定に従って内部の動作を条件付きで制御する .Pa /etc 配下のさまざまな起動スクリプトも含まれています。 .Pp .Pa /etc/rc.conf ファイルは、 使用可能な全オプションのデフォルト設定を指定するファイル .Pa /etc/defaults/rc.conf からインクルードされます。 オプションを .Pa /etc/rc.conf に指定する必要があるのは、 システム管理者がこれらのデフォルトを上書きしたい場合だけです。 ファイル .Pa /etc/rc.conf.local は、 .Pa /etc/rc.conf の設定を上書きするために使用されます。これは歴史的事情のためです。 後述の .Dq rc_conf_files を参照してください。 .Pp 次に示すリストは、 .Nm ファイル中で設定可能な各変数について、 その名前と簡単な解説をしたものです。 .Bl -tag -width Ar .It Va swapfile .Pq Vt 文字列 .Dq NO にすると スワップファイルはインストールされません。 .Dq NO 以外の場合、その値は追加スワップ領域に利用するファイルの フルパス名として用いられます。 .It Va apm_enable .Pq Vt ブール値 .Va YES に設定すると .Xr apm 8 コマンドでの自動電源管理 (Automatic Power Management) のサポートを有効に します。 .It Va apmd_enable .Pq Vt ブール値 .Xr apmd 8 を実行し、ユーザランドから APM イベントを扱います。 APM サポートも有効にします。 .It Va apmd_flags .Pq Vt 文字列 .Va apmd_enable が .Dq YES の場合、これらは .Xr apmd 8 デーモンに渡すフラグになります。 .It Va pccard_enable .Pq Vt ブール値 .Dq YES に設定すると、起動時に PCCARD のサポートを有効にします。 .It Va pccard_mem .Pq Vt 文字列 PCCARD コントローラメモリアドレスを設定します。 .Va DEFAULT とするとデフォルト値になります。 .It Va pccard_ifconfig .Pq Vt 文字列 ブート時またはカード挿入時に .Xr ifconfig 8 に渡される引数のリストです (例えば、 固定アドレスの場合は "inet 192.168.1.1 netmask 255.255.255.0" などですし、 DHCP クライアントの場合は "DHCP" です)。 .It Va pccard_beep .Pq Vt 整数 0 である場合、PCCARD コントローラを静寂モードにします。 1 である場合、ビープモードにします。 2 である場合、メロディモードにします。 .It Va pccard_conf .Pq Vt 文字列 .Xr pccardd 8 デーモンの設定ファイルのパスです。 .It Va pccardd_flags .Pq Vt 文字列 .Va pccard_enable が .Dq YES の場合、これらは .Xr pccardd 8 デーモンに渡すフラグになります。 .It Va pccard_ether_delay .Pq Vt 文字列 .Xr pccard_ether 8 スクリプト中で .Xr dhclient 8 を起動するまでの遅延時間を設定します。 デフォルトは 5 秒です。 これは、 .Xr ed 4 ベースの新しいカードを使用した時にシステムがハングしてしまうという .Xr ed 4 ドライバのバグを回避するためのものです。 .It Va local_startup .Pq Vt 文字列 起動スクリプトファイルを検索するためのディレクトリのリストです。 .It Va script_name_sep .Pq Vt 文字列 起動スクリプトファイルのリストを各々のファイル名に分割するために 使用するフィールドセパレータです。 デフォルトは空白です。 名前に空白を含む起動スクリプトを持っていない限り、変更不要です。 .It Va hostname .Pq Vt 文字列 ネットワーク上でのホストの完全な形のドメイン名 (The Fully Qualified Domain Name) です。 ネットワークに接続されていない場合でも、 この変数は確実に何か意味のあるものに設定すべきです。 ホスト名を DHCP を介して設定するために .Xr dhclient 8 を使用している場合、この変数は空文字列に設定すべきです。 .It Va nisdomainname .Pq Vt 文字列 ホストの NIS ドメイン名。NIS が動いてないときは .Dq NO とします。 .It Va dhcp_program .Pq Vt 文字列 DHCP クライアントプログラムのパスです (ISC DHCP クライアントの .Pa /sbin/dhclient がデフォルトです)。 .It Va dhcp_flags .Pq Vt 文字列 DHCP クライアントプログラムに渡す追加のフラグです。 ISC DHCP クライアント用に利用可能なコマンドラインオプションについては、 .Xr dhclient 8 ページを参照してください。 .It Va firewall_enable .Pq Vt ブール値 ファイアウォール規則を起動時にロードするには、 .Dq YES に設定します。 カーネルが .Dv IPFIREWALL 付きで作られなかった場合、ipfw カーネルモジュールがロードされます。 .Va ipfilter_enable も参照してください。 .It Va firewall_script .Pq Vt 文字列 この変数は、実行するファイアウォールスクリプトのフルパスを指定します。 デフォルトは .Pa /etc/rc.firewall です。 .It Va firewall_type .Pq Vt 文字列 .Pa /etc/rc.firewall 中にある選択肢から選んだファイアウォールタイプもしくは ローカルファイアウォール規則の組を含むファイル名をつけます。 .Pa /etc/rc.firewall からは以下のものが選択可能です: .Dq open - 無制限の IP アクセス; .Dq closed - lo0 経由を除く全ての IP サービスを禁止; .Dq client - ワークステーション向けの基本的な保護; .Dq simple - LAN 向けの基本的な保護。 ファイル名が指定される場合にはフルパス名でなければなりません。 .It Va firewall_quiet .Pq Vt ブール値 .Dq YES に設定すると、起動時にコンソール上で ipfw 規則の表示を行ないません。 .It Va firewall_logging .Pq Vt ブール値 .Dq YES に設定すると、ipfw のイベントロギングを有効にします。 .Dv IPFIREWALL_VERBOSE カーネルオプションと等価です。 .It Va firewall_flags .Pq Vt 文字列 .Va firewall_type でファイル名を指定する場合、 .Xr ipfw 8 に渡されるフラグです。 .It Va natd_program .Pq Vt 文字列 .Xr natd 8 のパス。 .It Va natd_enable .Pq Vt ブール値 .Dq YES に設定すると、natd を有効にします。 .Va firewall_enable もまた .Dq YES に設定され、 .Xr divert 4 ソケットがカーネルで有効にされている必要があります。 .It Va natd_interface .Pq Vt 文字列 natd が実行されるパブリックインタフェースの名前です。 .Va natd_enable が .Dq YES に設定されている場合には必須です。 インタフェースの指定は、インタフェース名でも IP アドレスでもかまいません。 .It Va natd_flags .Pq Vt 文字列 追加の natd フラグはここに記述する必要があります。 .Fl n または .Fl a のフラグは上記 .Va natd_interface とともに自動的に引数として追加されます。 .\" ----- ipfilter_enable setting -------------------------------- .It Va ipfilter_enable .Pq Vt ブール値 デフォルトは .Dq NO に設定されます。 .Dq YES に設定すると、 .Xr ipf 8 パケットフィルタリングを有効にします。 .Pp 典型的な用途では、 .Bd -literal ipfilter_enable="YES" ipnat_enable="YES" ipmon_enable="YES" ipfs_enable="YES" .Ed .Pp を .Pa /etc/rc.conf に記述し、 .Pa /etc/ipf.rules と .Pa /etc/ipnat.rules を適切に編集する必要があるでしょう。 .Pp .Va ipfilter_enable と .Va ipnat_enable とは別々に有効にできることに注意してください。 .Va ipmon_enable および .Va ipfs_enable を有効にするには .Va ipfilter_enable と .Va ipnat_enable の少なくともどちらか 1 つが有効になっている必要があります。 .Pp カーネル構成ファイル中に .Bd -literal options IPFILTER options IPFILTER_LOG options IPFILTER_DEFAULT_BLOCK .Ed .Pp を置くことも良い考えです。 .\" ----- ipfilter_program setting ------------------------------ .It Va ipfilter_program .Pq Vt 文字列 .Xr ipf 8 へのパスです (デフォルトは .Pa /sbin/ipf です)。 .\" ----- ipfilter_rules setting -------------------------------- .It Va ipfilter_rules .Pq Vt 文字列 デフォルトで .Dq /etc/ipf.rules に設定されます。 この変数は、フィルタルール定義ファイルの名前を含みます。 このファイルは、 .Xr ipf 8 コマンドが実行できるよう、読み取り可能であることが期待されます。 .\" ----- ipfilter_flags setting -------------------------------- .It Va ipfilter_flags .Pq Vt 文字列 デフォルトは空文字列です。 この変数には、 .Xr ipf 8 プログラムに渡されるフラグが含まれます。 .\" ----- ipnat_enable setting ---------------------------------- .It Va ipnat_enable .Pq Vt ブール値 デフォルトで .Dq NO に設定されます。 .Dq YES に設定すると、 .Xr ipnat 1 ネットワークアドレス変換を有効にします。 詳細は .Va ipfilter_enable を参照してください。 .\" ----- ipnat_program setting --------------------------------- .It Va ipnat_program .Pq Vt 文字列 .Xr ipnat 1 へのパスです (デフォルトは .Pa /sbin/ipnat です)。 .\" ----- ipnat_rules setting ----------------------------------- .It Va ipnat_rules .Pq Vt 文字列 デフォルトで .Dq /etc/ipnat.rules に設定されます。 この変数は、ネットワークアドレス変換を定義するファイルの名前を含みます。 このファイルは、 .Xr ipnat 1 コマンドが実行できるよう、読み取り可能であることが期待されます。 .\" ----- ipnat_flags setting ----------------------------------- .It Va ipnat_flags .Pq Vt 文字列 デフォルトは空文字列です。 この変数には、 .Xr ipnat 1 プログラムへ渡されるフラグが含まれます。 .\" ----- ipmon_enable setting ---------------------------------- .It Va ipmon_enable .Pq Vt ブール値 デフォルトで .Dq NO に設定されます。 .Dq YES に設定すると、 .Xr ipmon 8 モニタリング ( .Xr ipf 8 と .Xr ipnat 1 のイベントのログ) を有効にします。 この変数を設定する場合、 .Va ipfilter_enable あるいは .Va ipnat_enable も設定することが必要です。 詳細は .Va ipfilter_enable を参照してください。 .\" ----- ipmon_program setting --------------------------------- .It Va ipmon_program .Pq Vt 文字列 .Xr ipmon 8 へのパスです (デフォルトは .Pa /sbin/ipmon です)。 .\" ----- ipmon_flags setting ----------------------------------- .It Va ipmon_flags .Pq Vt 文字列 デフォルトで .Va -Ds に設定されます。 この変数は、 .Xr ipmon 8 プログラムに渡されるフラグを含みます。 他の典型的な例は .Dq -D /var/log/ipflog であり、これは .Xr ipmon 8 に .Xr syslogd 8 をバイパスさせて、直接ファイルにログを書かせます。 このような場合、必ず .Pa /etc/newsyslog.conf を次のように修正してください: .Bd -literal /var/log/ipflog 640 10 100 * Z /var/run/ipmon.pid .Ed .\" ----- ipfs_enable setting ----------------------------------- .It Va ipfs_enable .Pq Vt ブール値 デフォルトでは .Dq NO に設定されます。 この変数を .Dq YES に設定すると .Xr ipfs 8 が有効になり、シャットダウン時にフィルタおよび NAT 状態テーブルを 保存し、再起動時に読み込み直されるようになります。 この変数を設定するには .Va ipfilter_enable あるいは .Va ipnat_enable も .Dq YES に設定する必要があります。 詳細は .Va ipfilter_enable を参照してください。 .Va kern_securelevel を 3 に設定した場合、 .Va ipfs_enable は使用できなくなることに注意してください。 なぜなら、セキュアレベルを引き上げることでシャットダウン時に .Xr ipfs 8 が状態テーブルを保存できなくなるからです。 .\" ----- ipfs_program setting ---------------------------------- .It Va ipfs_program .Pq Vt 文字列 .Xr ipfs 8 へのパスです (デフォルトは .Pa /sbin/ipfs です)。 .\" ----- ipfs_flags setting ------------------------------------ .It Va ipfs_flags .Pq Vt 文字列 デフォルトは空文字列です。 この変数には、 .Xr ipfs 8 プログラムに渡されるフラグが含まれます。 .\" ----- end of added ipf hook --------------------------------- .It Va tcp_extensions .Pq Vt ブール値 デフォルトでは .Dq YES です。NO に設定すると、 .%T RFC 1323 で述べられているような ある TCP オプションを無効にします。 .Dq NO に設定すると、ネットワークコネクションが不規則にハングアップしたり、 それに類する他の不具合を回避する助けとなるかもしれません。 ネットワークデバイスには、これらのオプションに関連する部分において、 壊れているものがあることが知られています。 .It Va log_in_vain .Pq Vt ブール値 デフォルトで .Dq NO に設定されています。 YES に設定すると、 待機中のソケットが無いポートに対する接続の試みをログするようになります。 .It Va tcp_keepalive .Pq Vt ブール値 デフォルトで .Dq YES に設定されています。 NO に設定すると、アイドルになっている TCP 接続を検出し、 通信相手がまだ立ち上がっていて、到達可能であることを確認する のをやめます。 .It Va tcp_drop_synfin .Pq Vt ブール値 デフォルトで .Dq NO に設定されています。 YES に設定すると、 TCP フレームで SYN と FIN のフラグが共に設定されているものを、 カーネルが無視するようになります。 これにより、OS が指紋を残すのを防ぎますが、 正当なアプリケーションが動作しなくなるかもしれません。 .Dv TCP_DROP_SYNFIN オプション付きでカーネルを構築した場合のみ、 本オプションが使用可能です、 .It Va icmp_drop_redirect .Pq Vt ブール値 デフォルトで .Dq NO に設定されています。 YES に設定すると、 ICMP REDIRECT パケットを、カーネルが無視するようになります。 .It Va icmp_log_redirect .Pq Vt ブール値 デフォルトで .Dq NO に設定されています。 YES に設定すると、 ICMP REDIRECT パケットを、カーネルが記録するようになります。 ログメッセージの速度制限はありませんので、 あなたのネットワーク内の問題解決にのみ使用すべきです。 .It Va network_interfaces .Pq Vt 文字列 このホスト上で設定するネットワークインタフェースのリストを 設定します。 たとえば、ループバックデバイス (lo0) および ed0 ドライバの NIC があるなら、 .Dq "lo0 ed0" に設定されるでしょう。 .Em interface の各値に対して .No ifconfig_ Ns Em interface という変数も存在すると仮定されます。 1 つのインタフェースに複数の IP アドレスを登録したい場合は、 ここに IP エイリアスのエントリを追加することも可能です。 対象とするインタフェースが ed0 であると仮定すると、 .Bd -literal ifconfig_ed0_alias0="inet 127.0.0.253 netmask 0xffffffff" ifconfig_ed0_alias1="inet 127.0.0.254 netmask 0xffffffff" .Ed .Pp というようになります。 見つかった各 .Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n エントリについて、 その内容が .Xr ifconfig 8 に渡されます。最初にアクセスに失敗した時点で実行は中止されるので .Bd -literal ifconfig_ed0_alias0="inet 127.0.0.251 netmask 0xffffffff" ifconfig_ed0_alias1="inet 127.0.0.252 netmask 0xffffffff" ifconfig_ed0_alias2="inet 127.0.0.253 netmask 0xffffffff" ifconfig_ed0_alias4="inet 127.0.0.254 netmask 0xffffffff" .Ed .Pp のようにすると、alias4 は追加され .Em ない ことに注意してください。これは alias3 エントリを抜かしたことで検索が中止されるからです。 .Pp .No ifconfig_ Ns Em interface 変数を .Dq DHCP に設定することで、インタフェースを DHCP で立ち上げることが 可能です。 例えば ed0 デバイスを DHCP で初期化するには、 次のような行を指定すればよいです: .Bd -literal ifconfig_ed0="DHCP" .Ed .It Va cloned_interfaces .Pq Vt 文字列 このホストに生成する、複製可能なネットワークインタフェースの リストを設定します。 .Va cloned_interfaces のエントリは、設定を行うため自動的に .Va network_interfaces に追加されます。 +.It Va gif_interfaces +.Pq Vt 文字列 +このホストで設定する、 +.Xr gif 4 +トンネルインタフェースのリストを設定します。 +.Em interface +の各値に対して、 +.No gifconfig_ Ns Em interface +変数が存在すると想定されます。 +本変数の値を使用し、 +.Xr ifconfig 8 +の +.Cm tunnel +オプションの書式に従って、トンネルのリンク層を設定します。 +さらに本オプションは、リストされたインタフェースの設定を試みる前に、 +これらが +.Xr ifconfig 8 +の +.Cm create +オプションで作成されていることを保証します。 .It Va ppp_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr ppp 8 デーモンを実行します。 .It Va ppp_mode .Pq Vt 文字列 .Xr ppp 8 デーモンを実行するモードです。受け付けられるモードは .Dq auto , .Dq ddial , .Dq direct , .Dq dedicated のいずれかです。 完全な解説はマニュアルを参照してください。 .It Va ppp_nat .Pq Vt ブール値 .Dq YES に設定すると、パケットエイリアスを有効にします。 .Va gateway_enable と共に使用することにより、 本ホストをネットワークアドレス変換ルータとして使用して、 プライベートネットワークアドレスのホストからの インターネットへのアクセスを可能にします。 .It Va ppp_profile .Pq Vt 文字列 .Pa /etc/ppp/ppp.conf から使用するプロファイル名です。 .It Va ppp_user .Pq Vt 文字列 このユーザ名の元で ppp を起動します。 デフォルトでは ppp は .Dq root が起動します。 .It Va rc_conf_files .Pq Vt 文字列 本オプションは、 .Pa /etc/defaults/rc.conf の設定を上書きするファイルのリストを指定するために使用されます。 ファイルは指定された順序に読み込まれますし、 また、ファイルへの完全なパスを含む必要があります。 デフォルトでは、指定されるファイルは .Pa /etc/rc.conf と .Pa /etc/rc.conf.local です。 .It Va fsck_y_enable .Pq Vt ブール値 .Dq YES に設定すると、 ファイルシステムの初期調整に失敗した場合、 .Xr fsck 8 を -y フラグ付きで実行します。 .It Va syslogd_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr syslogd 8 デーモンを起動します。 .It Va syslogd_program .Pq Vt str .Xr syslogd 8 へのパス (デフォルトは .Pa /usr/sbin/syslogd です)。 .It Va syslogd_flags .Pq Vt 文字列 .Va syslogd_enable が .Dq YES の場合、これらは .Xr syslogd 8 に渡すフラグになります。 .It Va inetd_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr inetd 8 デーモンを起動します。 .It Va inetd_program .Pq Vt str .Xr inetd 8 へのパス (デフォルトは .Pa /usr/sbin/inetd です)。 .It Va inetd_flags .Pq Vt 文字列 .Va inetd_enable が .Dq YES の場合、これらは .Xr inetd 8 へ渡すフラグとなります。 .It Va named_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr named 8 デーモンを起動します。 .It Va named_program .Pq Vt 文字列 .Xr named 8 へのパス (デフォルトは .Pa /usr/sbin/named です)。 .It Va named_flags .Pq Vt 文字列 .Va named_enable が .Dq YES の場合、これらは .Xr named 8 に渡すフラグとなります。 .It Va kerberos_server_enable .Pq Vt ブール値 ブート時に Kerberos 認証サーバを起動したい場合は .Dq YES に設定します。 .It Va kadmind_server_enable .Pq Vt ブール値 .Xr kadmind 8 (Kerberos 管理デーモン) を実行したい場合は .Dq YES とします。スレーブサーバでは .Dq NO に設定します。 .It Va kerberos_stash .Pq Vt 文字列 .Dq YES なら ( .Va kerberos_server_enable が .Dq YES に設定され、かつ .Xr kerberos 1 および .Xr kadmind 8 の両方に使用するときのみ) マスタキーの入力を促さずに 安全な場所に保存しておいたマスタキーを用いるよう Kerberos サーバに指示します。 .It Va rwhod_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr rwhod 8 デーモンを起動します。 .It Va rwhod_flags .Pq Vt 文字列 .Va rwhod_enable が .Dq YES に設定されている場合、これらは rwhod に渡すフラグになります。 .It Va amd_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr amd 8 デーモンを起動します。 .It Va amd_flags .Pq Vt 文字列 .Va amd_enable が .Dq YES に設定されている場合、これらは amd に渡すフラグとなります。 詳しくは .Xr amd 8 の .Xr info 1 ページを利用してください。 .It Va amd_map_program .Pq Vt 文字列 設定すると、指定されたプログラムが実行され、 .Xr amd 8 マップのリストを受け取ります。 例えば、 .Xr amd 8 マップが NIS に格納されている場合、 .Xr ypcat 1 を実行して .Pa amd.master NIS マップから .Xr amd 8 マップのリストを取得するよう設定可能です。 .It Va update_motd .Pq Vt ブール値 .Dq YES に設定すると、ブート時に実行されているカーネルリリースを反映するように .Pa /etc/motd を更新します。 .Dq NO に設定すると、 .Pa /etc/motd は更新を行いません。 .It Va nfs_client_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に NFS クライアントデーモンを起動します。 .It Va nfs_client_flags .Pq Vt 文字列 .Va nfs_client_enable が .Dq YES の場合、これらは .Xr nfsiod 8 デーモンに渡すフラグとなります。 .It Va nfs_access_cache .Pq Vt 整数 .Va nfs_client_enable が .Dq YES の場合、この変数に .Va 0 を設定して NFS ACCESS RPC キャッシングを無効化することができますし、 NFS ACCESS 結果がキャッシュされる秒数を指定することもできます。 2-10 秒の値を設定すると、 多くの NFS 操作に対するネットワークトラフィックを十分減らします。 .It Va nfs_server_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に NFS サーバデーモンを起動します。 .It Va nfs_server_flags .Pq Vt 文字列 .Va nfs_server_enable が .Dq YES の場合、これらは .Xr nfsd 8 デーモンに渡すフラグとなります。 .It Va single_mountd_enable .Pq Vt ブール値 .Dq YES に設定し .Va nfs_server_enable を設定しないと、 .Xr mountd 8 は起動しますが .Xr nfsd 8 デーモンは起動しません。 実際に NFS は使用せずに CFS を使用する場合に、一般的に必要となります。 .It Va weak_mountd_authentication .Pq Vt ブール値 .Dq YES に設定すると、PCNFSD のようなサービスで権限付けられていない マウント要求ができるようになります。 .It Va nfs_privport .Pq Vt ブール値 .Dq YES に設定すると、安全なポート上でのみ NFS サービスを提供します。 .It Va nfs_bufpackets .Pq Vt 整数 数値を設定すると、そのパケット数分のソケットバッファ空間が、 NFS クライアント上に予約されます。 .Dq DEFAULT に設定すると、カーネルのデフォルト (通常は 4) が使用されます。 ギガビットネットワークでは大きな値を設定すると高性能になるでしょう、 最小値は 2 であり、最大値は 64 です。 .It Va rpc_lockd_enable .Pq Vt ブール値 この変数が .Dq YES に設定され、しかも NFS サーバである場合、ブート時に .Xr rpc.lockd 8 を起動します。 .It Va rpc_statd_enable .Pq Vt ブール値 この変数が .Dq YES に設定され、しかも NFS サーバである場合、ブート時に .Xr rpc.statd 8 を起動します。 .It Va portmap_program .Pq Vt 文字列 .Xr portmap 8 へのパス (デフォルトは .Pa /usr/sbin/portmap です)。 .It Va portmap_enable .Pq Vt ブール値 .Dq YES の場合、ブート時に .Xr portmap 8 サービスを起動します。 .It Va portmap_flags .Pq Vt 文字列 .Va portmap_enable が .Dq YES の場合、これらは .Xr portmap 8 デーモンに渡すフラグとなります。 .It Va xtend_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr xtend 8 デーモンを起動します。 .It Va xtend_flags .Pq Vt 文字列 .Va xtend_enable が .Dq YES の場合、これらは .Xr xtend 8 デーモンに渡すフラグとなります。 .It Va pppoed_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr pppoed 8 デーモンを起動し、PPP オーバイーサネットサービスを提供します。 .It Va pppoed_ Ns Ar provider .Pq Vt 文字列 .Xr pppoed 8 はこの .Ar provider に対する要求を待ち受け、最終的にはこの名前を .Ar system 引数として .Xr ppp 8 を実行します。 .It Va pppoed_flags .Pq Vt 文字列 .Xr pppoed 8 へ渡す追加のフラグ。 .It Va pppoed_interface pppoed が実行されるネットワークインタフェース。 .Va pppoed_enable が .Dq YES に設定された場合、必須です。 .It Va timed_enable .Pq Vt ブール値 .Dq YES なら、ブート時に .Xr timed 8 サービスを実行します。このコマンドは、全ホストについて一貫した .Qq "ネットワーク時間" が確立されなければならないマシンネットワークのためにあります。 これが有用である典型例は、 ファイルのタイムスタンプがネットワーク全体で一貫性をもつことが 期待されるような、大規模 NFS 環境です。 .It Va timed_flags .Pq Vt 文字列 .Va timed_enable が .Dq YES の場合、これらは .Xr timed 8 サービスに渡すフラグとなります。 .It Va ntpdate_enable .Pq Vt ブール値 .Dq YES に設定すると、システムスタートアップ時に ntpdate を実行します。 このコマンドは、ある標準的な参照先を元に、ただ .Em 1 回 だけシステム時刻を同期させるためにあります。 また、システムを最初にインストールする際、 この値を (知られているサービスのリストから) 最初に設定するオプションが .Pa /stand/sysinstall プログラムによって提供されます。 .It Va ntpdate_program .Pq Vt 文字列 .Xr ntpdate 8 へのパス (デフォルトは .Pa /usr/sbin/ntpdate です)。 .It Va ntpdate_flags .Pq Vt 文字列 .Va ntpdate_enable が .Dq YES の場合、これらは .Xr ntpdate 8 コマンドに渡すフラグとなります (通常はホスト名)。 .It Va xntpd_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr ntpd 8 コマンドが起動されます。 .It Va xntpd_program .Pq Vt 文字列 .Xr ntpd 8 へのパス (デフォルトは .Pa /usr/sbin/ntpd です)。 .It Va xntpd_flags .Pq Vt 文字列 .Ar xntpd_enable が .Ar YES の場合、これらは .Xr ntpd 8 デーモンに渡すフラグとなります。 .It Va nis_client_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr ypbind 8 サービスを起動します。 .It Va nis_client_flags .Pq Vt 文字列 .Va nis_client_enable が .Dq YES の場合、これらは .Xr ypbind 8 サービスに渡すフラグとなります。 .It Va nis_ypset_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr ypset 8 デーモンを起動します。 .It Va nis_ypset_flags .Pq Vt 文字列 .Va nis_ypset_enable が .Dq YES の場合、これらは .Xr ypset 8 デーモンに渡すフラグとなります。 .It Va nis_server_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr ypserv 8 デーモンを起動します。 .It Va nis_server_flags .Pq Vt 文字列 .Va nis_server_enable が .Dq YES の場合、これらは .Xr ypserv 8 デーモンに渡すフラグとなります。 .It Va nis_ypxfrd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr rpc.ypxfrd 8 デーモンを起動します。 .It Va nis_ypxfrd_flags .Pq Vt 文字列 .Va nis_ypxfrd_enable が .Dq YES の場合、これらは .Xr rpc.ypxfrd 8 デーモンに渡すフラグとなります。 .It Va nis_yppasswdd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr rpc.yppasswdd 8 デーモンを起動します。 .It Va nis_yppasswdd_flags .Pq Vt 文字列 .Va nis_yppasswdd_enable が .Dq YES の場合、これらは .Xr rpc.yppasswdd 8 デーモンに渡すフラグとなります。 .It Va defaultrouter .Pq Vt 文字列 .Dq NO を設定しないと、このホスト名または IP アドレスへのデフォルトルートを 作成します (このルータがネームサーバへも到達する必要がある 場合は IPアドレスを使用すること!)。 .It Va static_routes .Pq Vt 文字列 システムブート時に追加したいスタティックルートのリストを 設定します。 .Dq NO 以外を設定した場合、その値を空白で区切った各要素について、 .Em element ごとに変数 .No route_ Ns element が存在すると仮定され、後でその内容が .Dq route add 操作に渡されます。 .It Va gateway_enable .Pq Vt ブール値 .Dq YES に設定すると、IP ルータとして動作するように、 たとえばインタフェース間でパケットをフォワードするように ホストを設定します。 .It Va router_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Va router および .Va router_flags の設定に基づいて、ある種のルーティングデーモンを実行します。 .It Va router .Pq Vt 文字列 .Va router_enable が .Dq YES に設定されると、これが使用するルーティングデーモン名になります。 .It Va router_flags .Pq Vt 文字列 .Va router_enable が .Dq YES に設定されると、これらがルーティングデーモンへ渡すフラグとなります。 .It Va mrouted_enable .Pq Vt ブール値 .Dq YES に設定すると、マルチキャストルーティングデーモン .Xr mrouted 8 を起動します。 .It Va mrouted_flags .Pq Vt 文字列 .Va mrouted_enable が .Dq YES の場合、これらはマルチキャストルーティングデーモンへ渡すフラグとなります。 .It Va ipxgateway_enable .Pq Vt ブール値 .Dq YES に設定すると、IPX トラフィックのルーティングを有効にします。 .It Va ipxrouted_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr IPXrouted 8 デーモンを起動します。 .It Va ipxrouted_flags .Pq Vt 文字列 .Va ipxrouted_enable が .Dq YES の場合、これらは .Xr IPXrouted 8 デーモンへ渡すフラグとなります。 .It Va arpproxy_all .Pq Vt ブール値 .Dq YES に設定すると、グローバルプロキシ ARP を有効にします。 .It Va forward_sourceroute .Pq Vt ブール値 これが .Dq YES に設定され、更に .Va gateway_enable もまた .Dq YES に設定されている場合、 送信元が経路指定したパケット (source routed packets) はフォワードされます。 .It Va accept_sourceroute .Pq Vt ブール値 .Dq YES に設定すると、 システムは自分宛の送信元経路指定パケットを受け付けます。 .It Va rarpd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr rarpd 8 デーモンを起動します。 .It Va rarpd_flags .Pq Vt 文字列 .Va rarpd_enable が .Dq YES の場合、これらは .Xr rarpd 8 デーモンへ渡すフラグとなります。 .It Va atm_enable .Pq Vt ブール値 .Dq YES システムブート時に ATM インタフェースの設定を有効にします。 次に説明する ATM 関連の変数に関し、 利用可能なコマンドパラメータの更なる詳細については、 .Xr atm 8 のマニュアルページを参照してください。 更なる詳細な設定情報に関しては、 .Pa /usr/share/examples/atm 中のファイルも参照してください。 .It Va atm_netif_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、 作成される ATM ネットワークインタフェース名の プレフィックスと数字を指定します。 値はコマンド .Dq atm set netif Va のパラメータとして渡されます。 .It Va atm_sigmgr_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は使用すべき ATM シグナリングマネージャを定義します。 値はコマンド .Dq atm attach Va のパラメータとして渡されます。 .It Va atm_prefix_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、 UNI シグナリングマネージャを使用するインタフェースの NSAP プレフィックスを定義します。 .Em ILMI に設定すると、プレフィックスは自動的に .Xr ilmid 8 デーモンを介して設定されます。 そうでない場合、値はコマンド .Dq atm set prefix Va のパラメータとして渡されます。 .It Va atm_macaddr_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、 UNI シグナリングマネージャを使用するインタフェースの MAC アドレスを定義します。 .Em NO に設定すると、ATM インタフェースカードに格納されている ハードウェア MAC アドレスが使用されます。 そうでない場合、値はコマンド .Dq atm set mac Va のパラメータとして渡されます。 .It Va atm_arpserver_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、ATMARP サービスを提供するホストの ATM アドレスを定義します。 本変数は、UNI シグナリングマネージャを使用するインタフェースにおいてのみ 利用可能です。 .Em local に設定すると、本ホストが ATMARP サーバになります。 値はコマンド .Dq atm set arpserver Va のパラメータとして渡されます。 .It Va atm_scsparp_ .Pq Vt ブール値 .Em YES に設定すると、ネットワークインタフェース .Va に対する SCSP/ATMARP サービスが、 .Xr scspd 8 および .Xr atmarpd 8 を使用して開始されます。 本変数は .So .No atm_arpserver_ Ns Va .No = Ns Qq local .Sc が定義されている場合にのみ利用可能です。 .It Va atm_pvcs .Pq Vt 文字列 システムブート時に追加したい ATM PVC のリストを設定します。 この値の中で空白で区切られた .Em element ごとに、変数 .No atm_pvc_ Ns Em element が存在するものと仮定されます。これらの変数の値がコマンド .Dq atm add pvc のパラメータとして渡されます。 .It Va atm_arps .Pq Vt 文字列 システムブート時に追加したい、 永続的な ATM ARP エントリのリストを設定します。 この値の中で空白で区切られた .Em element ごとに、変数 .No atm_arp_ Ns Em element が存在するものと仮定されます。これらの変数の値がコマンド .Dq atm add arp のパラメータとして渡されます。 .It Va keymap .Pq Vt 文字列 .Dq NO に設定すると、キーマップはインストールされません。それ以外の場合、 ここで指定した .Ar value がキーマップファイル .Pa /usr/share/syscons/keymaps/.kbd をインストールするのに用いられます。 .It Va keyrate .Pq Vt 文字列 キーボードのリピートスピードです。以下のいずれかに設定します。 .Dq slow , .Dq normal , .Dq fast デフォルト値を希望する場合は .Dq NO とします。 .It Va keychange .Pq Vt 文字列 .Dq NO 以外に設定すると、その値でファンクションキーをプログラムしようとします。 指定できる値は単一の文字列で, .Qq Va " [ ]..." という形式でないといけません。 .It Va cursor .Pq Vt 文字列 カーソルの動作を明示的に指定する場合は .Dq normal , .Dq blink , .Dq destructive のいずれかの値に設定します。デフォルト動作を選ぶには .Dq NO とします。 .It Va scrnmap .Pq Vt 文字列 .Dq NO に設定すると、スクリーンマップはインストールされません。 それ以外の場合には、ここで指定した .Ar value がスクリーンマップファイル .Pa /usr/share/syscons/scrnmaps/ をインストールするのに用いられます。 .It Va font8x16 .Pq Vt 文字列 .Dq NO に設定すると、スクリーンサイズの要求に対しデフォルトの 8x16 フォント値が 用いられます。それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Va font8x14 .Pq Vt 文字列 .Dq NO に設定すると、スクリーンサイズの要求に対しデフォルトの 8x14 フォント値が 用いられます。それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Va font8x8 .Pq Vt 文字列 .Dq NO に設定すると、スクリーンサイズの要求に対しデフォルトの 8x8 フォント値が 用いられます。それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Va blanktime .Pq Vt 整数 .Dq NO に設定すると、デフォルトのスクリーンブランク時間間隔が用いられます。 それ以外の場合は .Ar value 秒に設定されます。 .It Va saver .Pq Vt 文字列 .Dq NO 以外に設定すると、これが実際に使用する スクリーンセーバ (ブランク, 蛇, デーモンなど) となります。 .It Va moused_enable .Pq Vt 文字列 .Dq YES に設定すると、コンソール上でのカット/ペーストセレクション用に .Xr moused 8 デーモンが起動されます。 .It Va moused_type .Pq Vt 文字列 利用したいマウスのプロトコルのタイプ。 .Va moused_enable が .Dq YES の場合、この変数は必ず設定しなければなりません。 多くの場合、 .Xr moused 8 デーモンは適切なマウスタイプを自動的に検出することができます。 デーモンにマウスを検出させるには、この変数を .Dq auto に設定します。 自動検出が失敗する場合、以下のリストから 1 つを選びます。 .Pp マウスが PS/2 マウスポートに接続されている場合、 .Dq auto か .Dq ps/2 を常に指定する必要があります。マウスのブランドやモデルには無関係です。 同様に、マウスがバスマウスポートに接続されている場合、 .Dq auto か .Dq busmouse を選択してください。 他のプロトコルはシリアルマウス用であり、 PS/2 マウスおよびバスマウスでは動作しません。 USB マウスの場合、 .Va auto のみが、動作する唯一のプロトコルです。 .Bd -literal microsoft Microsoft マウス (シリアル) intellimouse Microsoft IntelliMouse (シリアル) mousesystems Mouse system 社製のマウス (シリアル) mmseries MM シリーズのマウス (シリアル) logitech Logitech 製のマウス (シリアル) busmouse バスマウス mouseman Logitech の MouseMan および TrackMan (シリアル) glidepoint ALPS 製の GlidePoint (シリアル) thinkingmouse Kensignton 製の ThinkingMouse (シリアル) ps/2 PS/2 マウス mmhittab MM の HitTablet (シリアル) x10mouseremote X10 MouseRemote (シリアル) versapad Interlink VersaPad (シリアル) .Ed .Pp お使いのマウスが上記のリストにない場合でも、 リスト中のいずれかと互換性があるかも知れません。 互換性に関する情報については .Xr moused 8 のマニュアルページを参照してください。 .Pp また、 この変数が有効であるときは、(Xサーバのような) 他の全ての マウスクライアントは仮想マウスデバイス .Pa /dev/sysmouse を通してマウスにアクセスし、 それを sysmouse タイプのマウスとして構成すべきであると いうことにも注意すべきです。これは、 .Xr moused 8 使用時は、全てのマウスデータがこの単一の標準フォーマットに 変換されるためです。 クライアントプログラムが sysmouse タイプを サポートしないなら次に望ましいタイプとして mousesystems を 指定してください。 .It Va moused_port .Pq Vt 文字列 .Va moused_enable が .Dq YES の場合、これはマウスが接続されている実際のポートになります。 たとえば、COM1 シリアルマウスに対しては .Pa /dev/cuaa0 、PS/2 マウスに対しては .Pa /dev/psm0 、バスマウスに対しては .Pa /dev/mse0 となります。 .It Va moused_flags .Pq Vt 文字列 .Va moused_type が設定されている場合、これらは .Xr moused 8 デーモンに渡す追加のフラグとなります。 .It Va allscreens_flags .Pq Vt 文字列 設定すると、各仮想端末 .Pq Pa /dev/ttyv* に対し、これらのオプションを使用して .Xr vidcontrol 1 を実行します。 例えば .Dq -m on は、 .Va moused_enable が .Dq YES に設定されている場合、全仮想端末上でマウスポインタを有効にします。 .It Va cron_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr cron 8 デーモンを起動します。 .It Va cron_program .Pq Vt 文字列 .Xr cron 8 へのパス (デフォルトは .Pa /usr/sbin/cron です)。 .It Va cron_flags .Pq Vt 文字列 .Va cron_enable が .Dq YES を設定されている場合、これが .Xr cron 8 へ渡すフラグとなります。 .It Va lpd_program .Pq Vt 文字列 .Xr lpd 8 へのパス (デフォルトは .Pa /usr/sbin/lpd です)。 .It Va lpd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr lpd 8 デーモンを起動します。 .It Va lpd_flags .Pq Vt 文字列 .Va lpd_enable が .Dq YES の場合、これらは .Xr lpd 8 デーモンに渡すフラグとなります。 .It Va sendmail_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr sendmail 8 デーモンを起動します。 .It Va sendmail_flags .Pq Vt 文字列 .Va sendmail_enable が .Dq YES の場合、これらは .Xr sendmail 8 デーモンに渡すフラグとなります。 .It Va sendmail_outbound_enable .Pq Vt ブール値 .Dq YES に設定し .Va sendmail_enable を .Dq NO に設定すると、 .Va sendmail_flags の代りに .Va sendmail_outbound_flags を使用して .Xr sendmail 8 を実行します。 SMTP サービスを待ち受けずに、ローカルのメールキュー管理が 出来るようにすることを意図しています。 .It Va sendmail_outbound_flags .Pq Vt 文字列 .Va sendmail_enable を .Dq NO に設定し、 .Va sendmail_outbound_enable を .Dq YES に設定すると、これらは .Xr sendmail 8 デーモンに渡されるフラグになります。 .It Va dumpdev .Pq Vt 文字列 .Dq NO に設定しないと、カーネルクラッシュダンプ出力先を .Em value で指定したスワップデバイスに向けます。 システム再開時に、 .Xr savecore 8 プログラムは、指定したデバイスからクラッシュダンプを探し、通常 .Pa /var/crash ディレクトリに格納します。 .It Va enable_quotas .Pq Vt ブール値 .Dq YES に設定すると、システム起動時に、 .Xr quotaon 8 コマンドによってユーザディスクのクォータチェックを有効にします。 .It Va check_quotas .Pq Vt ブール値 .Dq YES に設定すると、 .Xr quotacheck 8 コマンドによってユーザディスクのクォータチェックを有効にします。 .It Va accounting_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr accton 8 機能でシステムアカウンティングを有効にします。 .It Va ibcs2_enable .Pq Vt ブール値 .Dq YES に設定すると、 システム初期ブート時に iBCS2 (SCO) バイナリエミュレーションを有効にします。 .It Va ibcs2_loaders .Pq Vt 文字列 これを .Dq NO に設定せずに .Va ibcs2_enable を .Dq YES に設定した場合、 この文字列は有効化すべき追加の iBCS2 ローダのリストを指定します。 .It Va linux_enable .Pq Vt ブール値 .Dq YES に設定すると、 システムブート時に Linux/ELF バイナリエミュレーションを有効にします。 .It Va osf1_enable .Pq Vt ブール値 システムブート時に OSF/1 (Digital UNIX) バイナリエミュレーションを 有効にしたいなら .Dq YES に設定します (Alpha)。 .It Va rand_irqs .Pq Vt 文字列 乱数生成用に監視する IRQ のリストを設定します ( .Xr rndcontrol 8 のマニュアル参照)。 .It Va clear_tmp_enable .Pq Vt ブール値 .Dq YES に設定すると、 起動時に .Pa /tmp 下を消去します。 .It Va ldconfig_paths .Pq Vt 文字列 .Xr ldconfig 8 で使用する共有ライブラリのパスのリストを設定します。注意: .Pa /usr/lib は常に先頭に追加されるので、このリストに指定する必要はありません。 .It Va ldconfig_insecure .Pq Vt ブール値 .Xr ldconfig 8 ユーティリティは、通常、 root 以外が書き込み可能なディレクトリの使用を拒否します。 .Dq YES に設定すると、 システムの起動中はこのセキュリティチェックを無効化します。 .It Va kern_securelevel_enable .Pq Vt ブール値 カーネルのセキュリティレベルをシステムスタートアップ時に設定したい場合に、 .Dq YES に設定します。 .It Va kern_securelevel .Pq Vt 整数 スタートアップ時に設定されるカーネルセキュリティレベルです。 .Va 値 として許される範囲は -1 (コンパイル時のデフォルト) から 3 (最も安全) です。 利用可能なセキュリティレベルとシステム操作への影響については、 .Xr init 8 を参照してください。 .It Va start_vinum .Pq Vt ブール値 .Dq YES に設定すると、 システムブート時に .Xr vinum 8 を開始します。 .It Va sshd_program .Pq Vt 文字列 SSH サーバプログラムへのパスです ( .Pa /usr/sbin/sshd がデフォルトです)。 .It Va sshd_enable .Pq Vt ブール値 .Dq YES に設定すると、 ブート時に .Xr sshd 8 を起動します。 .It Va sshd_flags .Pq Vt 文字列 .Va sshd_enable が .Dq YES の場合、これらは .Xr sshd 8 デーモンに渡すフラグになります。 .It Va unaligned_print .Pq Vt ブール値 .Dq NO に設定すると、境界調整されていないアクセスの警告は表示されません (Alpha)。 .\" ----- isdn settings --------------------------------- .It Va isdn_enable .Pq Vt ブール値 デフォルトは .Dq NO です。 .Dq YES に設定すると、isdn デーモン .Pa /usr/sbin/isdnd をシステム起動時に起動します。 .It Va isdn_flags .Pq Vt 文字列 デフォルトは .Dq -dn -d0x1f9 です。 .Xr isndn 8 に渡される追加のフラグです (調整可能なパラメータについては .Va isdn_fsdev と .Va isdn_ttype を参照してください)。 .It Va isdn_ttype .Pq Vt 文字列 デフォルトは .Dq cons25 です。 .Xr idsnd 8 が全画面モードで動作する場合の出力端末の型です。 .It Va isdn_screenflags .Pq Vt 文字列 デフォルトで .Dq NO に設定されます。 全画面モード用のビデオモードです ( .Xr syscons 4 コンソールドライバ専用です。 .Xr vidcontrol 1 を参照してください。 .It Va isdn_fsdev .Pq Vt 文字列 デフォルトは .Dq /dev/ttyv4 です。 .Xr idsnd 8 が全画面モードで動作する場合の出力端末です (デーモンモード時は .Dq NO です)。 .It Va isdn_trace .Pq Vt ブール値 デフォルトは .Dq NO です。 .Dq YES に設定すると、ISDN プロトコルトレースユーティリティ .Pa /usr/sbin/isdntrace をシステム起動時に有効にします。 .It Va isdn_traceflags .Pq Vt 文字列 デフォルトは .Dq -f /var/tmp/isdntrace0 です。 .Pa /usr/sbin/isdntrace へのフラグです。 .\" ----------------------------------------------------- .El .Sh 関連ファイル .Bl -tag -width /etc/defaults/rc.conf -compact .It Pa /etc/defaults/rc.conf .It Pa /etc/rc.conf .It Pa /etc/rc.conf.local .El .Sh 関連項目 .Xr catman 1 , .Xr gdb 1 , .Xr info 1 , .Xr makewhatis 1 , .Xr vidcontrol 1 , .Xr yp 4 , .Xr exports 5 , .Xr motd 5 , .Xr accton 8 , .Xr amd 8 , .Xr apm 8 , .Xr atm 8 , .Xr cron 8 , .Xr dhclient 8 , .Xr gated 8 , .Xr ifconfig 8 , .Xr inetd 8 , .Xr isdnd 8 , .Xr isdntrace 8 , .Xr lpd 8 , .Xr moused 8 , .Xr mrouted 8 , .Xr named 8 , .Xr nfsd 8 , .Xr nfsiod 8 , .Xr ntpd 8 , .Xr ntpdate 8 , .Xr pcnfsd 8 , .Xr portmap 8 , .Xr quotacheck 8 , .Xr quotaon 8 , .Xr rc 8 , .Xr rndcontrol 8 , .Xr route 8 , .Xr routed 8 , .Xr rpc.lockd 8 , .Xr rpc.statd 8 , .Xr rpcbind 8 , .Xr rwhod 8 , .Xr savecore 8 , .Xr sendmail 8 , .Xr sshd 8 , .Xr swapon 8 , .Xr sysctl 8 , .Xr syslogd 8 , .Xr timed 8 , .Xr vidcontrol 1 , .Xr vinum 8 , .Xr vnconfig 8 , .Xr ntpd 8 , .Xr xtend 8 , .Xr ypbind 8 , .Xr ypserv 8 , .Xr ypset 8 .Sh 歴史 .Nm ファイルは .Fx 2.2.2 で登場しました。 .Sh 作者 .An Jordan K. Hubbard . diff --git a/ja_JP.eucJP/man/man5/stab.5 b/ja_JP.eucJP/man/man5/stab.5 index bd1f7ea095..a9f512e159 100644 --- a/ja_JP.eucJP/man/man5/stab.5 +++ b/ja_JP.eucJP/man/man5/stab.5 @@ -1,225 +1,225 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stab.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man5/stab.5,v 1.4.2.4 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/stab.5,v 1.4.2.5 2001/12/17 11:30:15 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/stab.5,v 1.10 2001/07/29 05:15:22 horikawa Exp $ +.\" $FreeBSD$ .\" WORD: symbol table シンボルテーブル .\" WORD: directive ディレクティブ(命令、指令の類) .\" .Dd June 5, 1993 .Dt STAB 5 .Os .Sh 名称 .Nm stab .Nd シンボルテーブルの型 .Sh 書式 -.Fd #include +.In stab.h .Sh 解説 .Aq Pa stab.h ファイルは a.out ファイルで使われる、シンボルテーブルのいくつかの .Fa n_type フィールド値の定義します。 これらは、恒久的なシンボル形式であり (つまり、ローカルなラベルなどではない)、古いデバッガである .Em sdb や Berkeley パスカルコンパイラ .Xr pc 1 で使われます。 .\" (訳注) BerkeleyパスカルコンパイラはFreeBSDディストリビューション .\" に含まれない。 .\" 1998/05/05 Takeshi MUTOH シンボルテーブルエントリは .Pa .stabs アセンブラディレクティブによって生成することができます。 ここでは、ダブルクオートで区切られた名前、シンボルの型、シンボルに ついての char 1 つと short 1 つ分の情報、 そして (通常はアドレスを示す) unsigned long の整数を指定できます。 アドレスフィールドに明示的なラベルを生成するのを避けるため、 .Pa .stabd ディレクティブを使い、現在の場所を指すようにすることができます。 もし名前が必要ない場合、 .Pa .stabn ディレクティブを使うことで、シンボルテーブルエントリを生成することができます。 ローダは、 .Pa .stab ディレクティブによって生成されたシンボルテーブルのエントリ順を変えないこと を保証します。 .Xr a.out 5 に記述されているように、シンボルテーブルの要素は以下の構造を持ちます。 .Bd -literal /* * シンボルテーブルエントリの書式 */ struct nlist { union { char *n_name; /* コア内部 (in-core) で使用 */ long n_strx; /* ファイル文字列表へのインデックス */ } n_un; unsigned char n_type; /* 型のフラグ */ char n_other; /* 使用されていない */ short n_desc; /* 以下の struct desc 参照 */ unsigned n_value; /* アドレスまたはオフセットまたは行 */ }; .Ed .Pp .Fa n_type フィールドの下位ビットは、シンボルをたかだか 1 つのセグメントに置くため に使用します。どのセグメントに置くかは .Aq Pa a.out.h 内で定義されている以下のマスクに基づきます。 これらのセグメントビットを設定しないようにすることで、シンボルをどの セグメントにも属さないようにすることができます。 .Bd -literal /* * n_type の単純な値 */ #define N_UNDF 0x0 /* 定義されていない */ #define N_ABS 0x2 /* 絶対指定 */ #define N_TEXT 0x4 /* テキスト */ #define N_DATA 0x6 /* データ */ #define N_BSS 0x8 /* bss */ #define N_EXT 01 /* 外部参照を表すビット(or して使う) */ .Ed .Pp シンボルの .Fa n_value フィールドは、リンカ .Xr ld 1 によって、正しいセグメント内のアドレスに再配置されます。 どのセグメントにも入っていないシンボルの .Fa n_value フィールドは、リンカによって変更されません。 さらに、 .Fa n_type フィールドで、以下のビットのいずれもセットされていない場合は、 リンカは自分が持っている規則にしたがって、 いくつかのシンボルを破棄します。 .Bd -literal /* * その他の永続的なシンボルテーブルエントリでは、N_STAB のいくつかのビットが * セットされています。これらは、 内に記述があります。 */ #define N_STAB 0xe0 /* もしこれらのビットのいずれかがセットされていれば破棄されません */ .Ed .Pp これで、112 (7 \(** 16) 個までのシンボルを、さまざまなセグメントで分けて 定義できるようになります。 これらのいくつかについては既に述べられています。 古いシンボリックデバッガ .Em sdb は、以下の n_type 値を使います。 .Bd -literal #define N_GSYM 0x20 /* グローバルシンボル : name,,0,type,0 */ #define N_FNAME 0x22 /* 手続き名 (f77 kludge): name,,0 */ #define N_FUN 0x24 /* 手続き: name,,0,linenumber,address */ #define N_STSYM 0x26 /* 静的シンボル: name,,0,type,address */ #define N_LCSYM 0x28 /* .lcomm シンボルl: name,,0,type,address */ #define N_RSYM 0x40 /* レジスタシンボル: name,,0,type,register */ #define N_SLINE 0x44 /* ソース行: 0,,0,linenumber,address */ #define N_SSYM 0x60 /* structure elt: name,,0,type,struct_offset */ #define N_SO 0x64 /* ソースファイル名: name,,0,0,address */ #define N_LSYM 0x80 /* ローカルシンボル: name,,0,type,offset */ #define N_SOL 0x84 /* #includeされたファイル名: name,,0,0,address */ #define N_PSYM 0xa0 /* パラメータ: name,,0,type,offset */ #define N_ENTRY 0xa4 /* 別のエントリ: name,linenumber,address */ #define N_LBRAC 0xc0 /* 左かっこ: 0,,0,nesting level,address */ #define N_RBRAC 0xe0 /* 右かっこ: 0,,0,nesting level,address */ #define N_BCOMM 0xe2 /* 共通の開始符号: name,, */ #define N_ECOMM 0xe4 /* 共通の終了符号: name,, */ #define N_ECOML 0xe8 /* (ローカル名の)共通の終了符号: ,,address */ #define N_LENG 0xfe /* 長さ情報を持った2番目の stab エントリ */ .Ed .Pp ここで、コメントには 与えられた .Fa n_type の .Fa n_name , .Fa n_other , .Fa n_desc , .Fa n_value フィールド と .Pa .stab .Fa s の典型的な利用法が書かれています。 .Em sdb は、ポータブル C コンパイラ .Xr cc 1 によって使われる形式の型の指定子を持っている .Fa n_desc フィールドを使います。これらの型の値のフォーマットの詳細はヘッダファイル .Pa pcc.h を参照して下さい。 .Pp Berkeley パスカルコンパイラ .Xr pc 1 は、以下の .Fa n_type 値をつかいます: .Bd -literal #define N_PC 0x30 /* グローバルなパスカルシンボル: name,,0,subtype,line */ .Ed .Pp と、以下のサブ型を使い、別々のコンパイルファイルにまたがる型チェックを 行います。 .Bd -unfilled -offset indent 1 ソースファイル名 2 インクルードされたファイル名 3 グローバルなラベル 4 グローバルな定数 5 グローバルな型 6 グローバルな変数 7 グローバルな関数 8 グローバルな手続き 9 外部関数 10 外部手続き 11 ライブラリ変数 12 ライブラリルーチン .Ed .Sh 関連項目 .Xr as 1 , .Xr ld 1 , .Xr a.out 5 .Sh バグ もっと基本的な形式が必要でしょう。 .Sh 歴史 .Nm ファイルは .Bx 4.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/sysctl.conf.5 b/ja_JP.eucJP/man/man5/sysctl.conf.5 index d148690bc2..caefa626a5 100644 --- a/ja_JP.eucJP/man/man5/sysctl.conf.5 +++ b/ja_JP.eucJP/man/man5/sysctl.conf.5 @@ -1,79 +1,79 @@ .\" Copyright (c) 1999 Chris Costello .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/sysctl.conf.5,v 1.3.4.6 2001/08/17 13:08:47 ru Exp % +.\" %FreeBSD: src/share/man/man5/sysctl.conf.5,v 1.3.4.7 2001/12/17 11:30:15 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/sysctl.conf.5,v 1.9 2001/08/15 03:17:00 horikawa Exp $ +.\" $FreeBSD$ .Dd December 30, 1999 .Dt SYSCTL.CONF 5 .Os .Sh 名称 .Nm sysctl.conf .Nd カーネルの状態のデフォルト .Sh 解説 .Pa /etc/sysctl.conf ファイルは、カーネルのデフォルト設定のために、 システムがマルチユーザモードになるときに読み込まれます。 .Pa /etc/sysctl.conf は .Xr sysctl 8 コマンドの書式であり、すなわち次のようなものです。 .Bd -literal -offset indent sysctl_mib=value .Ed .Pp コメントは、行頭に .Dq # を付けることで記述します。 コメントは行末にも付けられます。 後述の .Sx 使用例 を見てください。 .Sh 関連ファイル .Bl -tag -width /etc/sysctl.conf -compact .It Pa /etc/sysctl.conf .Xr sysctl 8 の初期設定。 .El .Sh 使用例 致命的なシグナルにより終了したプログラムのロギングを無効にし、 Linux プログラムに対して -.Fx -3.4-STABLE で実行していると通知するには、 +.Fx 3.4 Ns -STABLE +で実行していると通知するには、 次のような設定を使用します: .Bd -literal -offset indent # Configure logging and Linux execution. kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11) compat.linux.osname=FreeBSD compat.linux.osrelease=3.4-STABLE .Ed .Sh 関連項目 .Xr rc.conf 5 , .Xr rc 8 , .Xr sysctl 8 .Sh 歴史 .Nm ファイルは .Fx 4.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/tacplus.conf.5 b/ja_JP.eucJP/man/man5/tacplus.conf.5 index 53a273cd1d..3fde24750d 100644 --- a/ja_JP.eucJP/man/man5/tacplus.conf.5 +++ b/ja_JP.eucJP/man/man5/tacplus.conf.5 @@ -1,124 +1,129 @@ .\" Copyright 1998 Juniper Networks, Inc. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/lib/libtacplus/tacplus.conf.5,v 1.3.2.2 2001/08/17 15:43:07 ru Exp % +.\" %FreeBSD: src/lib/libtacplus/tacplus.conf.5,v 1.3.2.3 2001/12/17 10:08:32 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/tacplus.conf.5,v 1.5 2001/05/14 01:09:32 horikawa Exp $ +.\" $FreeBSD$ .\" WORD: sensitive (情報を)極めて慎重に扱うべき[radius.5 tacplus.conf.5] .Dd July 29, 1998 .Dt TACPLUS.CONF 5 .Os .Sh 名称 .Nm tacplus.conf .Nd TACACS+ クライアントの設定ファイル .Sh 書式 .Pa /etc/tacplus.conf .Sh 解説 .Nm は、TACACS+ クライアントライブラリの設定に必要な情報を含みます。 本ファイルは -.Xr tac_config 3 -が解釈します。 +.Fn tac_config +が解釈します ( +.Xr libtacplus 3 +参照)。 本ファイルは 1 行以上のテキスト行を含み、 各行は、ライブラリが使用する単一の TACACS+ サーバについて記述します。 行先頭の空白は、空行および、コメントのみの行と同様、無視されます。 .Pp 1 つの TACACS+ サーバは、2 から 4 フィールドからなる 1 行により表現されます。 フィールドは空白によって区切られます。 フィールドの先頭にある .Ql # 文字はコメントを開始し、行末まで続きます。 フィールドはダブルクォートで括ることができ、 この場合空白を含んだり、 .Ql # 文字で開始することができます。 クォートされた文字列中では、ダブルクォート文字は .Ql \e\&" で表現可能であり、バックスラッシュは .Ql \e\e で表現可能です。 他のエスケープシーケンスはサポートされません。 .Pp 最初のフィールドはサーバホストを指定します。 完全な形でのドメイン名でもかまいませんし、 ドット付き 4 つ組の IP アドレスでもかまいません。 ホストの後には .Ql \&: と数値によるポート番号を続けることができます。間に空白を狭んではなりません。 ポートを指定しない場合、 標準の TACACS+ ポート 49 になります。 .Pp 第 2 フィールドには共有鍵が置かれます。 これは、クライアントとサーバホスト以外には知られてはなりません。 共有鍵は任意の文字列ですが、 空白を含む場合や空の場合はダブルクォートで括る必要があります。 共有鍵を空にすると、通常の暗号化機構が無効化され、 ネットワークを行き来する全データはクリアテキストになります。 .Pp 第 3 フィールドは、 サーバとの通信時のタイムアウト秒数であり、 10 進数で指定します。 タイムアウトは、接続・書き込み・読み込みの各操作に別々に適用されます。 このフィールドを省略すると、デフォルトの 3 秒になります。 .Pp 省略可能な第 4 フィールドは、文字列 .Ql single-connection を含んでかまいません。 これを指定されると、ライブラリはサーバと交渉して、 複数のセッション用に TCP 接続をオープンしたままにしようとします。 古い TACACS+ サーバには、本オプションを指定すると混乱するものがあります。 .Pp 10 個の TACACS+ サーバまで指定可能です。 サーバは指定した順序で試され、有効な返答が返されるか、 リストが終わるまで続けられます。 .Pp このファイルの標準的な置き場所は .Pa /etc/tacplus.conf です。しかし、 -.Xr tac_config 3 +.Fn tac_config +( +.Xr libtacplus 3 +参照) を呼び出すときに別のパス名を指定できます。 共有鍵という形で極めて慎重に扱うべき情報を格納するファイルですから、 root 以外には読めないようにすべきです。 .Sh 関連ファイル .Pa /etc/tacplus.conf .Sh 使用例 .Bd -literal # 全部デフォルトである単純なエントリ: tacserver.domain.com OurLittleSecret # サーバは標準ではないポートを使用しており、 # タイムアウトを増加し、"single-connection" オプションを指定しています。 auth.domain.com:4333 "Don't tell!!" 15 single-connection # サーバを IP アドレスで指定: 192.168.27.81 $X*#..38947ax-+= .Ed .Sh 関連ファイル .Xr libtacplus 3 .Sh 作者 この文書を .An John Polstra が書き、Juniper Networks, Inc. が .Fx プロジェクトに寄贈しました。 diff --git a/ja_JP.eucJP/man/man5/types.5 b/ja_JP.eucJP/man/man5/types.5 index d085e9d2ba..9c8e2f03a4 100644 --- a/ja_JP.eucJP/man/man5/types.5 +++ b/ja_JP.eucJP/man/man5/types.5 @@ -1,240 +1,240 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)types.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man5/types.5,v 1.10.2.1 2001/08/17 13:08:47 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/types.5,v 1.6 2001/05/14 01:09:32 horikawa Exp $ +.\" %FreeBSD: src/share/man/man5/types.5,v 1.10.2.2 2001/12/17 11:30:15 ru Exp % +.\" $FreeBSD$ .\" .Dd June 5, 1993 .Dt TYPES 5 .Os .Sh 名称 .Nm types .Nd システムのデータ型 .Sh 書式 -.Fd #include +.In sys/types.h .Sh 解説 ファイル .Pa sys/types.h はカーネル内部で (ほとんどの物はシステム全体を通じて) 用いられる、 定義済みのデータ型を含みます。 .Bd -literal #ifndef _SYS_TYPES_H_ #define _SYS_TYPES_H_ /* 機種に依存するパラメータ。 */ #include /* をインクルードします */ #include #ifndef _POSIX_SOURCE typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned short ushort; /* Sys V との互換性 */ typedef unsigned int uint; /* Sys V との互換性 */ #endif typedef __uint8_t u_int8_t; typedef __uint16_t u_int16_t; typedef __uint32_t u_int32_t; typedef __uint64_t u_int64_t; typedef u_int64_t u_quad_t; /* 4 倍長語 */ typedef int64_t quad_t; typedef quad_t * qaddr_t; typedef char * caddr_t; /* コアアドレス */ typedef __const char * c_caddr_t; /* コアアドレスの const へのポインタ */ typedef __volatile char *v_caddr_t; /* コアアドレスの volatile へのポインタ */ typedef int32_t daddr_t; /* ディスクアドレス */ typedef u_int32_t u_daddr_t; /* 符号無しのディスク番号 */ typedef u_int32_t fixpt_t; /* 固定小数点数 */ typedef u_int32_t fixpt_t; /* 固定小数点数 */ typedef u_int32_t gid_t; /* グループ ID */ typedef u_int32_t ino_t; /* i ノード番号 */ typedef long key_t; /* IPC キー (Sys V プロセス間通信用) */ typedef u_int16_t mode_t; /* パーミッション */ typedef u_int16_t nlink_t; /* リンクカウント */ typedef _BSD_OFF_T_ off_t; /* ファイルオフセット */ typedef _BSD_PID_T_ pid_t; /* プロセス ID */ typedef quad_t rlim_t; /* リソースリミット */ #ifdef __alpha__ /* XXX should be in */ typedef int64_t segsz_t; /* セグメントサイズ */ #else typedef int32_t segsz_t; /* セグメントサイズ */ #endif typedef int32_t swblk_t; /* スワップオフセット */ typedef int32_t ufs_daddr_t; typedef u_int32_t uid_t; /* ユーザ id */ #ifdef _KERNEL typedef int boolean_t; typedef u_int64_t uoff_t; typedef struct vm_page *vm_page_t; #endif #ifdef _KERNEL struct specinfo; typedef u_int32_t udev_t; /* デバイス番号 */ typedef struct specinfo *dev_t; #else /* !_KERNEL */ typedef u_int32_t dev_t; /* デバイス番号 */ #define udev_t dev_t #ifndef _POSIX_SOURCE /* * minor() はインデックスの代わりにクッキーを与えます。この理由は、 * ビット0-15 の意味の変更を避けるためと、ビット 16-31 をシフトする * ことに起因してこれを使わないデバイスにとっては時間と空間の無駄遣い * になることを避けるためです。 */ .\" 「昔は dev_t は 16 ビットで、 .\" 16 bit の上位 8 bit が major で下位 8 bit が minor だった」 .\" ということを暗に言っている? .\" だとすると原文は以上のような前提知識を要求しており、読解難だと思う .\" horikawa@jp.FreeBSD.org 2000/02/19 #define major(x) ((int)(((u_int)(x) >> 8)&0xff)) /* メジャー番号 */ #define minor(x) ((int)((x)&0xffff00ff)) /* マイナ番号 */ #define makedev(x,y) ((dev_t)(((x) << 8) | (y))) /* dev_t を生成する */ #endif /* _POSIX_SOURCE */ #endif /* !_KERNEL */ #include #ifdef _BSD_CLOCK_T_ typedef _BSD_CLOCK_T_ clock_t; #undef _BSD_CLOCK_T_ #endif #ifdef _BSD_CLOCKID_T_ typedef _BSD_CLOCKID_T_ clockid_t; #undef _BSD_CLOCKID_T_ #endif #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; #undef _BSD_SIZE_T_ #endif #ifdef _BSD_SSIZE_T_ typedef _BSD_SSIZE_T_ ssize_t; #undef _BSD_SSIZE_T_ #endif #ifdef _BSD_TIME_T_ typedef _BSD_TIME_T_ time_t; #undef _BSD_TIME_T_ #endif #ifdef _BSD_TIMER_T_ typedef _BSD_TIMER_T_ timer_t; #undef _BSD_TIMER_T_ #endif #ifndef _POSIX_SOURCE #define NBBY 8 /* 1 バイトに含まれるビット数 */ /* * select は long 型のファイル記述子ビットマスクを用います。これらの * マクロはこの型のビットフィールドを操作します (ファイルシステムの * マクロは char 型を用います)。 * FD_SETSIZE はユーザによって定義することもできますが、ほとんどの * ユーザにとっては、ここに示すデフォルトで十分でしょう。 */ #ifndef FD_SETSIZE #define FD_SETSIZE 1024 #endif typedef long fd_mask; #define NFDBITS (sizeof(fd_mask) * NBBY) /* マスクごとのビット */ #ifndef howmany #define howmany(x, y) (((x) + ((y) - 1)) / (y)) #endif typedef struct fd_set { fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; } fd_set; #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) #define FD_COPY(f, t) bcopy(f, t, sizeof(*(f))) #define FD_ZERO(p) bzero(p, sizeof(*(p))) /* * これらの宣言は別のところに属しますが、ここと で繰り返して * います。壊れたプログラムが 64 ビットの off_t で動作するようにする * 機会を増すためです。 */ #ifndef _KERNEL __BEGIN_DECLS #ifndef _FTRUNCATE_DECLARED #define _FTRUNCATE_DECLARED int ftruncate __P((int, off_t)); #endif #ifndef _LSEEK_DECLARED #define _LSEEK_DECLARED off_t lseek __P((int, off_t, int)); #endif #ifndef _MMAP_DECLARED #define _MMAP_DECLARED void * mmap __P((void *, size_t, int, int, int, off_t)); #endif #ifndef _TRUNCATE_DECLARED #define _TRUNCATE_DECLARED int truncate __P((const char *, off_t)); #endif __END_DECLS #endif /* !_KERNEL */ #endif /* !_POSIX_SOURCE */ #endif /* !_SYS_TYPES_H_ */ .Ed .Sh 関連項目 .Xr gdb 1 , .Xr lseek 2 , .Xr time 3 , .Xr fs 5 .Sh 歴史 .Nm ファイルは .At v7 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/utmp.5 b/ja_JP.eucJP/man/man5/utmp.5 index cb822fb2b9..a764a56264 100644 --- a/ja_JP.eucJP/man/man5/utmp.5 +++ b/ja_JP.eucJP/man/man5/utmp.5 @@ -1,219 +1,263 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)utmp.5 8.2 (Berkeley) 3/17/94 -.\" %FreeBSD: src/share/man/man5/utmp.5,v 1.9.2.6 2001/11/01 17:17:06 yar Exp % +.\" %FreeBSD: src/share/man/man5/utmp.5,v 1.9.2.8 2001/12/17 11:30:15 ru Exp % .\" .\" $FreeBSD$ -.Dd March 17, 1994 +.Dd November 14, 2001 .Dt UTMP 5 .Os .Sh 名称 .Nm utmp , .Nm wtmp , .Nm lastlog .Nd ログイン記録 .Sh 書式 -.Fd #include -.Fd #include +.In sys/types.h +.In utmp.h .Sh 解説 .Aq Pa utmp.h ファイルは、 .Nm ファイルでの現在のユーザについての情報や .Nm wtmp ファイル中でのログインやログアウトの情報、 .Nm lastlog ファイル中での最終ログイン情報の記録のために使われる構造体を 宣言しています。 時刻の変更やシャットダウンおよびリブートのタイムスタンプは、同じように .Nm wtmp ファイルに記録されます。 -.Pp -これらのファイルは、忙しいシステムでは急速に大きくなりますので、 -毎日もしくは毎週ローテションすることを推奨します。 -もし、これらのファイルのどれかが存在しない場合、そのファイルは作成されません。 -これらのファイルは、手動で作成されなければならず、 -.Xr newsyslog 8 -によって管理されます。 .Bd -literal -offset indent #define _PATH_UTMP "/var/run/utmp" #define _PATH_WTMP "/var/log/wtmp" #define _PATH_LASTLOG "/var/log/lastlog" #define UT_NAMESIZE 16 #define UT_LINESIZE 8 #define UT_HOSTSIZE 16 struct lastlog { - time_t ll_time; - char ll_line[UT_LINESIZE]; - char ll_host[UT_HOSTSIZE]; + time_t ll_time; /* ユーザが何時ログインしたか */ + char ll_line[UT_LINESIZE]; /* 端末線名 */ + char ll_host[UT_HOSTSIZE]; /* ユーザの出身ホスト */ }; struct utmp { - char ut_line[UT_LINESIZE]; - char ut_name[UT_NAMESIZE]; - char ut_host[UT_HOSTSIZE]; - time_t ut_time; + char ut_line[UT_LINESIZE]; /* 端末線名 */ + char ut_name[UT_NAMESIZE]; /* ユーザのログイン名 */ + char ut_host[UT_HOSTSIZE]; /* ユーザの出身ホスト */ + time_t ut_time; /* ユーザが何時ログインしたか */ }; .Ed .Pp +.Nm lastlog +ファイルは、 +.Vt lastlog +構造体の線型配列であり、ユーザの +.Tn UID +でインデックスされています。 +.Nm +ファイルは、 +.Vt utmp +構造体の線型配列であり、端末線番号 ( +.Xr ttyslot 3 +参照) でインデックスされています。 +.Nm wtmp +ファイルは、 +.Vt utmp +構造体から成るバイナリログファイルであり、 +ファイルの終端に追記されていきます。 +.Pp ユーザがログインするたびに、 .Xr login 1 プログラムは .Nm lastlog ファイル中のユーザの .Tn UID を検索します。 もし見つかった場合、ユーザが最後にログインした時刻のタイムスタンプ、 端末線、ホスト名が標準出力に書き出されます ( ログインが .Em メッセージを表示しない ように設定されていない場合。 .Xr login 1 を参照 )。 -.Nm login +.Xr login 1 プログラムは、その後 .Nm lastlog ファイルに新しいログイン時刻を記録します。 .Pp 新しい -.Fa lastlog +.Vt lastlog への記録が書き出された後で、 .\" the .\" .Xr libutil 3 .\" routine .Nm ファイルがオープンされ、ユーザに対する -.Fa utmp +.Vt utmp 記録が挿入されます。 この記録は、ユーザがログアウトして削除される時まで保持されます。 .Nm ファイルは、 .Xr rwho 1 , .Xr users 1 , .Xr w 1 , .Xr who 1 プログラムで使われます。 .Pp 次に、 .Xr login 1 プログラムは .Nm wtmp ファイルをオープンし、ユーザの -.Fa utmp +.Vt utmp 記録を追加します。 -同じ -.Fa utmp -記録が更新されたタイムスタンプ付きで、ユーザがログアウトした時に、 -ファイルに追加されます ( +その後ユーザが端末線からログアウントすると、特別な +.Vt utmp +レコードが記録されます。 +すなわち +.Va ut_line +が適切に設定され、 +.Va ut_time +が更新されますが、 +.Va ut_name +と +.Va ut_host +は空であるものが記録されます ( .Xr init 8 参照)。 .Nm wtmp ファイルは、 .Xr last 1 と .Xr ac 8 プログラムで使われます。 .Pp 時刻変更やシャットダウン・リブートの際には、 以下の項目が .Nm wtmp ファイルに記録されます。 .Pp -.Bl -tag -width shutdownxx -compact +.Bl -tag -width ".Li shutdown" -compact .It Li reboot .It Li shutdown システムのリブートやシャットダウンが開始された。 -.Fa ut_line +.Va ut_line フィールドに .Ql \&~ と言う文字が、 -.Fa ut_name +.Va ut_name フィールド中に .Li reboot もしくは .Li shutdown が記録されます ( .Xr shutdown 8 と .Xr reboot 8 参照)。 .Pp .It Li date システム時刻が手動もしくは自動で更新された ( .Xr date 1 参照)。 コマンド名 -.Xr date +.Li date がフィールド -.Fa ut_name +.Va ut_name に記録されます。 .Fa ut_line フィールド中の .Ql \&| 文字は、変更前の時刻を示し、 .Ql \&{ 文字は新しい時刻を示しています。 .El +.Sh 注 +.Nm wtmp +ファイルは、忙しいシステムでは急速に大きくなりますので、 +毎日もしくは毎週ローテションすることを推奨します。 +このファイルは、 +.Xr newsyslog 8 +によって管理されます。 +.Pp +これらのファイルが存在しない場合、 +.Xr login 1 +はこれらを作成しません。 +これらのファイルは、手動で作成する必要があります。 +.Pp +.Nm +および +.Nm wtmp +のファイルに対する通常の操作は、提供された +.Xr login 3 , +.Xr logout 3 , +.Xr logwtmp 3 +ユーティリティ関数で行い、 +これらのファイルの書式が異なるシステム間での互換性を維持すべきです。 .Sh 関連ファイル -.Bl -tag -width /var/log/lastlog -compact +.Bl -tag -width ".Pa /var/log/lastlog" -compact .It Pa /var/run/utmp .Nm ファイル。 .It Pa /var/log/wtmp .Nm wtmp ファイル。 .It Pa /var/log/lastlog .Nm lastlog ファイル。 .El .Sh 関連項目 .Xr last 1 , .Xr login 1 , .Xr w 1 , .Xr who 1 , +.Xr login 3 , +.Xr logout 3 , +.Xr logwtmp 3 , +.Xr ttyslot 3 , .Xr ac 8 , .Xr init 8 .Sh 歴史 -A .Nm と .Nm wtmp ファイル書式は .At v6 から登場しました。 .Nm lastlog ファイル書式は .Bx 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man6/fortune.6 b/ja_JP.eucJP/man/man6/fortune.6 index c651700ac5..279594e42c 100644 --- a/ja_JP.eucJP/man/man6/fortune.6 +++ b/ja_JP.eucJP/man/man6/fortune.6 @@ -1,200 +1,200 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Ken Arnold. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)fortune.6 8.3 (Berkeley) 4/19/94 -.\" %FreeBSD: src/games/fortune/fortune/fortune.6,v 1.9.2.5 2001/08/16 10:08:22 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man6/fortune.6,v 1.12 2001/07/29 05:15:24 horikawa Exp $ +.\" %FreeBSD: src/games/fortune/fortune/fortune.6,v 1.9.2.6 2001/12/14 14:26:32 ru Exp % +.\" $FreeBSD$ .\" .\" 以下は Linux JM のクレジット .\" Japanese Version Copyright (c) 1997,1998 MAEHARA Kohichi .\" Japanese Version Copyright (c) 1997,1998 HANAYAKA Sinya .\" all rights reserved. .\" Translated Tue Feb 10 00:00:00 JST 1998 .\" by HANATAKA Sinya .\" by MAEHARA Kohichi .\" .\" .Dd April 19, 1994 .Dt FORTUNE 6 .Os .Sh 名称 .Nm fortune .Nd "おもしろくためになる格言を無作為に表示する" .Sh 書式 .Op Fl aDefilosw .Op Fl m Ar pattern .Oo .Op Ar \&N% .Ar file/dir/all .Oc .Sh 解説 .Nm を引数なしで実行すると、無作為に選んだ格言を一つ表示します。 格言はいくつかの種類に分類されていて、それぞれの分類はさらに、 耳に痛いものとそうでないものとに分けられています。 オプションを以下に示します: .Bl -tag -width flag .It Fl a 耳に痛いものもそうでないものも、格言をすべて含めた リストから選びます (耳に痛いものについての詳細は .Fl o オプションを参照してください)。 .It Fl D 更なるデバッグ出力を有効にします。 本オプションを複数回指定すると、出力が更に冗長になります。 -DDEBUG 付きでコンパイルされている場合のみ、利用可能です。 .It Fl e すべての fortune のファイルが同一サイズであることを仮定します (複数ファイルの扱いについての下記の解説を参照してください)。 .It Fl f 検索されるファイルの一覧を表示し、格言は表示しません。 .It Fl l 長めの格言に限ります。 .It Fl m 正規表現 .Ar pettern に合致する格言を表示します。 正規表現のパターンの記述方法については .Xr regex 3 を参照してください。 .It Fl o 耳に痛い格言に限り、 その中から選んで出力します。 .Bf -symbolic ぜひ、ぜひ、ぜひとも、 耳に痛い格言を喜んで 受け入れられる気分であると心の底から確信しているときに限って、 耳に痛そうな格言を指定して下さい (そして、 もし受け入れられない気分のときなら、出てきた文言についてわれわれに 文句を言うことをせず、黙って .Fl o オプションの使用を止めるはずですよね)。 .Ef .Bd -ragged -offset indent \&...人類愛について基本的かつ支配的な哲学を心に留めるよう にしよう、これは以下の言葉に簡潔にまとめられている: 心からの笑いは健康のためによい -- 必要とあらば全人類を 犠牲にしたとしても。 .Bd -ragged -offset indent-two -compact --H. Allen Smith, "Rude Jokes" .Ed .Ed .It Fl s 短めの格言に限ります。 .It Fl i .Fl m オプションで指定された (正規表現の) パターンについて、 大文字小文字の別を無視します。 .It Fl w 終了前に、メッセージの文字数に応じた長さから算出される時間だけ停止します。 ログアウト手順に組み込んだ場合、 スクリーンがクリアされる前に メッセージを読み取る時間を確保するのに役に立ちます。 .El .Pp 別の格言集の使用を指定することができます。この指定では、 特定のファイル、1 つ以上のファイルを含むディレクトリ、 もしくは標準データベース全てを使用するという .Em all という特殊語のいずれかを指定可能です。 これらの前にはパーセンテージを付けることが可能です。 パーセンテージは、0 以上 100 以下の数字 .Ar N に .Ar % を続けたものです。 パーセンテージを指定した場合、ある格言が .Ar N パーセントの確率でそのファイルあるいはディレクトリから選択されます。 パーセントの合計が 100 に満たず、パーセント無しの指定がある場合、 残りのパーセントが、パーセント無しのファイルとディレクトリに割当てられます。 この場合、パーセント無しのものが選択される確率は、これらのサイズに依存します。 .Pp 例として、2 個のデータベース .Em funny と .Em not-funny とを用います。この時 .Em funny が 2 倍の大きさとするならば、 .Bd -literal -offset indent fortune funny not-funny .Ed .Pp と指示すると 3 回に 2 回の割合で .Em funny から選択されます。 コマンドを .Bd -literal -offset indent fortune 90% funny 10% not-funny .Ed .Pp のように指定すると 90 % を .Em funny から選び出します (この場合残りが 10% であることが明らかなので .Dq 10% not-funny は不要です)。 .Fl e オプションを指定すると、全てのファイルから均等に選び出します; すなわち .Bd -literal -offset indent -fortune \-e +fortune \-e funny not-funny .Ed .Pp とするのは .Bd -literal -offset indent fortune 50% funny 50% not-funny .Ed .Pp と指定するのと同等です。 .Sh 関連ファイル .Bl -tag -width Pa -compact .It Pa /usr/games/fortune .Pp .It Pa /usr/share/games/fortune/* fortune のデータベース (名前が .Dq -o で終るファイルには、 .Bf -symbolic 耳に痛い .Ef 格言が含まれます) .El .Sh 関連項目 .Xr regcomp 3 , .Xr regex 3 , .Xr strfile 8 .\" Amended by kuma, based on fortune.6,v 1.2 1998/02/24 14:51:07 horikawa Stab .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja_JP.eucJP/man/man6/rogue.6 b/ja_JP.eucJP/man/man6/rogue.6 index 668e1ff379..365f3e3db5 100644 --- a/ja_JP.eucJP/man/man6/rogue.6 +++ b/ja_JP.eucJP/man/man6/rogue.6 @@ -1,114 +1,114 @@ .\" Copyright (c) 1988, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rogue.6 8.1 (Berkeley) 5/31/93 -.\" %FreeBSD: src/games/rogue/rogue.6,v 1.4.2.2 2001/03/05 18:10:24 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man6/rogue.6,v 1.5 2001/05/14 01:09:39 horikawa Exp $ +.\" %FreeBSD: src/games/rogue/rogue.6,v 1.4.2.3 2001/12/14 14:26:32 ru Exp % +.\" $FreeBSD$ .\" .Dd December 7, 2000 .Dt ROGUE 6 .Os .Sh 名称 .Nm rogue .Nd 運命の洞窟を探検する .Sh 書式 .Nm .Op Fl r .Op Ar save_file .Op Fl s .Op Fl d .Sh 解説 .Nm は新しい方式のコンピュータファンタジーゲームです。 .Nm は多くのコンピュータファンタジーゲームのようにパズルを解くことを目的とする というよりはむしろ画面志向であり、ゲームの目的は様々な怪物の攻撃から 行きのびてたくさんの金塊を獲得することです。 .Pp 始めるにあたって本当に必要なのは 2 つのコマンドを知ることです。コマンド .Ic ?\& は使用可能なコマンドのリストを表示し、コマンド .Ic / は画面に表示されている物が何かを調べます。 .Pp (単に他人の最高得点を破るというのではなく)ゲームに勝利するには、洞窟の 20 階よりも下にある .Em イェンダーの魔除け のある位置を突き止めてそれを持ち帰る 必要があります。このことを成し遂げた者はいまだ誰もおらず、もし誰かが成し遂げ たならば、彼らは勇者のなかの勇者として歴史に名を残すでしょう。 .Pp あなたが死んだり、あなたが終了したり、(なにか奇跡が起きて)なんとか 勝利を得たりの如何にかかわらず、ゲームが終了した時には .Nm は上位 10 人の得点リストを表示します。得点は完全にあなたがどれだけ金塊を 獲得したかで決まります。あなたが殺された時には 10% のペナルティが科されます。 .Nm もし .Ar save_file が指定されたら、 .Nm はその保存されたゲームファイルから復帰されます。 .Pp .Fl s オプションは得点のリストを表示します。 .Pp もっと詳細にわたる説明は次の資料を読んでください: .Rs .%B A Guide to the Dungeons of Doom .Re .Sh 作者 .An Timothy Stoehr , .An Michael C. Toy , .An Kenneth C. R. C. Arnold , .An Glenn Wichman .Sh 関連ファイル .Bl -tag -width /var/games/rogue.scoresXX -compact .It Pa /var/games/rogue.scores 得点ファイル .It Pa rogue.save デフォルトのセーブファイル .El .Sh 関連項目 .Rs .%A Michael C. Toy .%A Kenneth C. R. C. Arnold .%B A Guide to the Dungeons of Doom .%O (see /usr/share/doc/usd/30.rogue/) .Re .Sh バグ おそらく無限大にありますが、知られている物はありません。 しかし、 氷の怪物は時々あなたを永久に動けなくしますが、バグでは .Em ありません 。 そういうものです。 .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja_JP.eucJP/man/man7/clocks.7 b/ja_JP.eucJP/man/man7/clocks.7 index be625e8aa4..6dd5033164 100644 --- a/ja_JP.eucJP/man/man7/clocks.7 +++ b/ja_JP.eucJP/man/man7/clocks.7 @@ -1,169 +1,169 @@ .\" .\" Copyright (c) 1996 Joerg Wunsch .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man7/clocks.7,v 1.9.2.4 2001/08/17 13:08:49 ru Exp % +.\" %FreeBSD: src/share/man/man7/clocks.7,v 1.9.2.5 2001/12/17 11:30:15 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man7/clocks.7,v 1.7 2001/07/23 02:27:00 horikawa Exp $ +.\" $FreeBSD$ .\" " .Dd April 1, 1996 .Os .Dt CLOCKS 7 .Sh 名称 .Nm clocks .Nd いろいろなシステムタイマ .Sh 書式 -.Fd #include +.In time.h .Sh 解説 .Ql HZ (ヘルツ) は .Bx におけるアプリケーションインタフェースの一部ではありません。 .Pp 周波数の異なるいろいろな実体をもつクロックおよび仮想的 (計時用) なクロック があります。 .Bl -bullet -offset XXX .It スケジューリングクロック。周波数 100 となるはずの実クロックです。 アプリケーションからは参照できません。 .It 統計クロック。周波数 128 となるはずの実クロックです。 アプリケーションから直接参照することはできません。 .It .Xr clock 3 によって報告されるクロック。 周波数が通常 128 の仮想クロックです。実際の周波数は .Dv CLOCKS_PER_SEC マクロによって与えられます。 .Dv CLOCKS_PER_SEC は浮動小数点値であるかもしれないことに注意してください。 .Fn clock は .Fx での新しいプログラムには使用しないでください。 これは .Xr getrusage 2 に比較して機能的に劣っていますが、ANSI に適合するために 提供されています。 .Fn getrusage をコールし、情報と結果を受け渡すことによって実装されています。 .It .Xr times 3 によって報告されるクロック。 周波数が通常 128 の仮想クロックです。実際の周波数は .Dv CLK_TCK マクロ (これは反対されています。使用しないでください。) と .Fn sysconf _SC_CLK_TCK と .Xr sysctl 3 によって与えられます。 この周波数は .Dv CLOCKS_PER_SEC とは異なりうることに注意してください。 .Xr times 3 は .Fx での新しいプログラムには使用しないでください。 これは .Fn getrusage と組み合わせた .Xr gettimeofday 2 に比較して機能的に劣っていますが、POSIX に適合するために 提供されています。 .Fn gettimeofday と .Fn getrusage をコールし、情報と結果を受け渡すことによって実装されています。 .It プロファイリングクロック。1024 の周波数をもつ実クロックです。 これは主に .Xr moncontrol 3 と .Xr kgmon 8 と .Xr gprof 1 で使用されます。 アプリケーションはこの実際の周波数を決定するためには .Xr sysctl 3 を使うか、プロファイリングデータファイルのヘッダを読んで 調べなければなりません。 .It mc14618a のクロック。32768 の公称周波数をもつ実クロックです。 分周されて統計クロックおよびプロファイリングクロックに使われます。 このクロックはアプリケーションからは参照できません。 .It マイクロ秒クロック。1000000 の周波数をもつ仮想クロックです。 これは .Bx ではほとんどの時間計測に使用され、アプリケーションに対して .Xr getrusage 2 や .Xr gettimeofday 2 や .Xr select 2 や .Xr getitimer 2 などでエクスポートされています。これが通常 .Bx のアプリケーションで 使用されるべきクロックです。 .It i8254 クロック。1193182 の公称周波数をもつ実クロック/タイマです。 分周されてスケジューリングクロックに使われます。 アプリケーションからは参照できません。 .It 第 5 世代以降の x86 システムでの、TSC クロック (64 ビットレジスタ)。 CPU の 1 秒あたりのサイクル数に等しい周波数の、実クロックです。 周波数は、sysctl .Sy machdep.tsc_freq を使用して得られます。 これはスケジューリングクロックの値の間に挿入するために使用されます。 純粋にマシン依存な方法でのみ、アプリケーションから参照可能です。 です。 .El .Pp まとめ: もし .Ql HZ (ヘルツ) が 1000000 でなければ、アプリケーションはおそらく間違った クロックを使用することになるでしょう。 .Sh 関連項目 .Xr gprof 1 , .Xr getitimer 2 , .Xr getrusage 2 , .Xr gettimeofday 2 , .Xr select 2 , .Xr clock 3 , .Xr moncontrol 3 , .Xr times 3 .Sh 作者 .An -nosplit この man ページは .An Bruce Evans によって投稿された説明にもとづいて、 .ie t J\(:org Wunsch .el Joerg Wunsch によって書かれました。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1-21 diff --git a/ja_JP.eucJP/man/man7/hier.7 b/ja_JP.eucJP/man/man7/hier.7 index c66927b60d..c25eb788a4 100644 --- a/ja_JP.eucJP/man/man7/hier.7 +++ b/ja_JP.eucJP/man/man7/hier.7 @@ -1,768 +1,768 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)hier.7 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man7/hier.7,v 1.29.2.12 2001/11/06 09:18:51 cjc Exp % +.\" %FreeBSD: src/share/man/man7/hier.7,v 1.29.2.13 2001/12/17 11:30:15 ru Exp % .\" .\" $FreeBSD$ .Dd June 5, 1993 .Dt HIER 7 .Os .Sh 名称 .Nm hier .Nd ファイルシステムのレイアウト .Sh 解説 ファイルシステムの階層構成についての概略です。 .Bl -tag -width "/stand/" .It Pa / ファイルシステムのルートディレクトリ。 .It Pa /bin/ ユーザ用ユーティリティの基本的なもの。 シングルユーザ環境、マルチユーザ環境どちらでも使用する。 .It Pa /boot/ オペレーティングシステムのブートストラップ中に使用される プログラムと設定ファイル。 .Pp .Bl -tag -width defaults/ -compact .It Pa defaults/ デフォルトのブートストラップ用設定ファイル。 .Xr loader.conf 5 参照。 .El .It Pa /dev/ ブロックデバイスおよびキャラクタデバイスファイル。 .Pp .Bl -tag -width MAKEDEV -compact .It Pa MAKEDEV デバイスファイル作成用スクリプト。 .Xr MAKEDEV 8 参照。 .It Pa fd/ ファイル記述子ファイル。 .Xr \&fd 4 参照。 .El .It Pa /etc/ システムの設定ファイル、およびスクリプト。 .Pp .Bl -tag -width "disklabels/" -compact .It Pa defaults/ デフォルトのシステム設定ファイル。 .Xr rc 8 参照。 .It Pa gnats/ gnats 設定ファイル。 .Xr send-pr 1 参照。 .It Pa isdn/ isdn4bsd の設定ファイル。 .Xr isdnd 8 参照。 .It Pa kerberosIV/ kerberos バージョン IV の設定ファイル。 .Xr kerberos 1 参照。 .It Pa localtime ローカルタイムゾーン情報。 .Xr ctime 3 参照。 .It Pa mail/ sendmail の制御情報。 .It Pa mtree/ mtree 設定ファイル。 .Xr mtree 8 参照。 .It Pa namedb/ named 設定ファイル。 .Xr named 8 参照。 .It Pa periodic/ .Xr cron 8 により、毎日/毎週/毎月実行されるスクリプト。 .Xr periodic 8 参照。 .It Pa ppp/ .Xr ppp 8 ppp 設定ファイル。 .Xr ppp 8 参照。 .It Pa ssl/ OpenSSL 設定ファイル。 .It Pa uucp/ uucp 設定ファイル。 .Xr uucp 1 参照。 .El .It Pa /kernel カーネルの pure な実行可能ファイル (ブート時にメモリに読み込まれる オペレーティングシステム)。 .It Pa /modules/ ロード可能なカーネルモジュール。 .Xr kldstat 8 参照。 .It Pa /mnt/ 通常、システム管理者が一時的なマウントポイントとして使用する 空のディレクトリ。 .It Pa /proc/ プロセスファイルシステム。 .Xr procfs 5 , .Xr mount_procfs 8 参照。 .It Pa /root/ root のホームディレクトリ。 .It Pa /sbin/ システムプログラム、および基本的な管理者用ユーティリティ。 シングルユーザ環境、マルチユーザ環境どちらでも使用する。 .It Pa /stand/ スタンドアロン環境で使用されるプログラム。 .It Pa /tmp/ システムリブートをまたがった永続性が保証されない、一時ファイル。 .It Pa /usr/ ユーザ用ユーティリティ、およびアプリケーションの大部分を含む。 .Pp .Bl -tag -width "libdata/" -compact .It Pa bin/ 一般的なユーティリティ、プログラミングツール、アプリケーション。 .It Pa games/ 有用でちょっとふざけたプログラム。 .It Pa heimdal/ Kerberos サーバデータベース。 -kdc(8) +.Xr kdc 8 参照。 .It Pa include/ 標準 C 言語インクルードファイル。 .Pp .Bl -tag -width "kerberosIV/" -compact .It Pa arpa/ インターネットサービスプロトコルのための C 言語インクルードファイル。 .It Pa cam/ Common Access Methods Layer 用 C インクルードファイル。 .Bl -tag -width "kerberosIV/" -compact .It scsi/ CAM 上の SCSI デバイス。 .El .It Pa dev/ 様々な .Fx デバイスのプログラミング用の C インクルードファイル。 .Bl -tag -width "kerberosIV/" -compact .It Pa ppbus/ パラレルポートバス。 .Xr ppbus 4 参照。 .It usb/ USB サブシステム。 .El .It Pa fs/ .Bl -tag -width "kerberosIV/" -compact .It Pa smbfs/ SMB/CIFS ファイルシステム。 .El .It Pa g++/ GNU C++ 言語インクルードファイル。 .Bl -tag -width "kerberosIV/" -compact .It Pa std/ GNU C++ 言語 libstdc++ インクルードファイル。 .El .It Pa isc/ ISC ユーティリティライブラリ libisc インクルードファイル。 .It Pa isofs/ .Bl -tag -width "kerberosIV/" -compact .It Pa cd9660/ iso9660 形式ファイルシステム。 .El .It Pa kerberosIV/ kerberos 認証パッケージ用 C 言語インクルードファイル。 .Xr kerberos 1 参照。 .It Pa machine/ マシン固有機能の C 言語インクルードファイル。 .It Pa msdosfs/ MS-DOS ファイルシステム。 .It Pa net/ その他のネットワーク機能用 C 言語インクルードファイル。 .It Pa netatalk/ Appletalk プロトコル。 .It Pa netatm/ ATM のインクルードファイル。 .Xr atm 8 参照。 .It Pa netinet/ インターネット標準プロトコル用 C 言語インクルードファイル。 .Xr inet 4 参照。 .It Pa netinet6/ インターネットプロトコルバージョン 6 用の C インクルードファイル。 .Xr inet6 4 参照。 .It Pa netipx/ IPX/SPX プロトコルスタック。 .It Pa netkey/ カーネルの鍵管理サービス。 .It Pa netns/ Xerox 社の NS プロトコル。 .It Pa netsmb/ SMB/CIFS リクエスタ。 .It Pa netnatm/ NATM インクルードファイル。 .Xr natm 4 参照。 .It Pa nfs/ NFS (Network File System) 用 C 言語インクルードファイル。 .It Pa objc/ Objective C のインクルードファイル。 .It Pa posix4/ POSIX リアルタイム拡張のインクルードファイル。 .Xr p1003_1b 9 参照。 .It Pa openssl/ OpenSSL (Cryptography/SSL ツールキットの) ヘッダ。 .It Pa pccard/ PC-CARD コントローラ。 .It Pa protocols/ Berkeley サービスプロトコル用 C 言語インクルードファイル。 .It Pa readline/ ユーザからの一行入力機能 (編集機能付き)。 .Xr readline 3 参照。 .It Pa rpc/ リモート手続き呼び出し。 .Xr rpc 3 参照。 .It Pa rpcsvc/ RPC サービス構造の定義。 .Xr rpc 3 参照。 .It Pa security/ PAM。 .Xr pam 8 参照。 .It Pa ss/ MIT SIPB .Sq サブシステム ライブラリ。Kerberos IV の一部。 .It Pa sys/ システム用 C 言語インクルードファイル (カーネルデータ構造)。 .\" .It Pa tcl/ .\" Tcl 言語。 .\" .Xr Tcl n .\" 参照。 .\" .Bl -tag -width "kerberosIV/" -compact .\" .It Pa generic/ .\" ??? .\" .It Pa unix/ .\" ??? .\" .El .It Pa ufs/ UFS (U-word File System) 用 C 言語インクルードファイル。 .Bl -tag -width "kerberosIV/" -compact .It Pa ffs/ Fast filesystem。 .It Pa mfs/ メモリファイルシステム。 .Xr mount_mfs 8 参照。 .It Pa ufs/ UFS ファイルシステム。 .El .It Pa vm/ 仮想記憶。 .Xr vmstat 8 参照。 .El .Pp .It Pa lib/ アーカイブライブラリ。 .Bl -tag -width Fl -compact .It Pa aout/ a.out アーカイブライブラリ。 .It Pa compat/ 互換性維持用の共有ライブラリ。 .Bl -tag -width Fl -compact .It Pa aout/ a.out 後方互換ライブラリ。 .El .El .Pp .It Pa libdata/ その他のユーティリティデータファイル。 .Bl -tag -width Fl -compact .It Pa doscmd/ doscmd が使用するファイル (ドライバ、フォント等)。 .Xr doscmd 1 参照。 .Bl -tag -width 6n -compact .It Pa fonts/ doscmd が使用するフォント。 .El .It Pa gcc/ ??? .It Pa ldscripts/ リンカスクリプト。 .Xr ld 1 参照。 .It Pa lint/ さまざまな lint 用ライブラリ (事前に構築されている)。 .Xr lint 1 参照。 .It Pa msdosfs/ 文字集合変換表。 .It Pa perl/ .Bl -tag -width Fl -compact .It Pa 5.00503/ Perl バージョン 5.00503 のための Perl モジュール。 .Xr perl 1 参照。 .El .It Pa stallion/ ダウンロードファームウェアのイメージが保持されている。 .El .Pp .It Pa libexec/ システムデーモンおよびシステムユーティリティ。 (他のプログラムから実行されるもの)。 .Bl -tag -width Fl -compact .It Pa aout/ a.out 実行形式を操作するユーティリティ。 .It Pa elf/ ELF 実行形式を操作するユーティリティ。 .It Pa lpr/ LP プリントシステムのユーティリティとフィルタ。 .Xr lpr 1 参照。 .It Pa sm.bin/ sendmail 用制限付きシェル。 .Xr smrsh 8 参照。 .It Pa uucp/ uucp ユーティリティ。 .Xr uucp 1 参照。 .El .Pp .It Pa local/ ローカルの実行可能ファイル、ライブラリなど。 .Fx ports フレームワークのデフォルトのインストール先としても使用されます。 local/以下では、 .Xr hier 7 で /usr に関して 記述された一般的な配置が使用されます。 例外は、man ディレクトリ (local/share/ の下ではなく local/ の直下に存在)、 ports のドキュメント (share/doc// に置かれます)、 /usr/local/etc (/etc の模倣) です。 .It Pa obj/ アーキテクチャ依存のターゲットツリー。 /usr/src ツリーを構築することで作成される。 .It Pa ports/ .Fx ports コレクション (オプション扱い)。 .It Pa sbin/ (ユーザによって実行される) システムデーモン、およびシステムユーティリティ。 .It Pa share/ アーキテクチャに依存しないファイル。 .Pp .Bl -tag -width "calendar/" -compact .It Pa calendar/ 事前に組み立てられた calendar ファイルいろいろ。 .Xr calendar 1 参照。 .It Pa dict/ 単語リスト。 .Xr look 1 参照。 .Pp .Bl -tag -width Fl -compact .It Pa words 一般の単語 .It Pa web2 Webster's 2nd International からの単語 .It Pa papers/ リファレンスデータベース。 .Xr refer 1 参照。 .It Pa special/ 特殊な語のリスト。 .Xr spell 1 参照。 .El .Pp .It Pa doc/ その他の文書。 ( .Tn USENIX association から入手できる) .Bx マニュアルのほとんどのソース。 .Bl -tag -width Fl -compact .It Pa FAQ/ しばしば行なわれる質問とその答え (Frequently Asked Questions)。 .It Pa IPv6/ IPv6 の実装に関する注。 .It Pa bind/ BIND (Berkeley Internet Name Domain) に属する文書。 .It Pa es/ /usr/share/doc 中の文書のスペイン語への翻訳。 .It Pa handbook/ .Fx ハンドブック .It Pa ja/ /usr/share/doc 中の文書の日本語への翻訳。 .It Pa ncurses/ ncurses に属する HTML 文書。 .Xr ncurses 3X 参照 .It Pa ntp/ Network Time Protocol に属する HTML 文書。 .It Pa papers/ UNIX 関連の論文 .It Pa psd/ UNIX プログラマ用補助文書 .It Pa ru/ /usr/share/doc 中の文書のロシア語への翻訳。 .It Pa smm/ UNIX システム管理者用マニュアル .It Pa tutorials/ .Fx チュートリアル。 .It Pa usd/ UNIX ユーザ用補助文書 .It Pa zh/ /usr/share/doc 中の文書の中国語への翻訳。 .El .Pp .It Pa examples/ 一般ユーザやプログラマ向けのさまざまな用例。 .It Pa games/ 各種のゲームで使用される ASCII テキストファイル。 .It Pa groff_font/ デバイス名ごとに用意されたデバイス記述ファイル。 .It Pa info/ GNU Info ハイパーテキストシステム。 .It Pa isdn/ ISDN。 .It Pa libg++/ libg++ genclass のプロトタイプ/テンプレートクラスファイル。 .It Pa locale/ ローカル化関係のファイル。 .Xr setlocale 3 参照。 .It Pa man/ マニュアルページ。 .It Pa me/ me マクロパッケージで使用するマクロ。 .Xr me 7 参照。 .It Pa misc/ その他システム全体の ASCII テキストファイル。 .Bl -tag -width Fl -compact .It Pa fonts/ ??? .It Pa pcvtfonts/ pcvt フォント。 .Xr pcvt 4 参照。 .It Pa termcap 端末の特性を記述するデータベース。 .Xr termcap 5 参照。 .El .It Pa mk/ make 用テンプレート。 .Xr make 1 参照。 .It Pa nls/ 各国語サポート (National Lanuguage Support) ファイル。 .Xr mklocale 1 参照。 .It Pa pcvt/ pcvt の文書とその他の例。 .Xr pcvt 4 参照。 .It Pa perl/ perl ライブラリファイル。 .Xr perl 1 参照。 .It Pa sendmail/ sendmail の設定ファイル。 .Xr sendmail 8 参照。 .It Pa skel/ 新しいアカウントのための . (ドット) ファイルの例。 .It Pa syscons/ syscons が使用するファイル。 .Xr syscons 4 参照。 .Bl -tag -width "scrnmaps/xx" -compact .It Pa fonts/ コンソールフォント。 .Xr vidcontrol 1 と .Xr vidfont 1 参照。 .It Pa keymaps/ コンソールキーボードマップ。 .Xr kbdcontrol 1 と .Xr kbdmap 1 参照。 .It Pa scrnmaps/ コンソールスクリーンマップ。 .El .It Pa tabset/ 各種端末用タブ記述ファイル。termcap ファイルの中で使用される。 .Xr termcap 5 参照。 .It Pa tmac/ テキスト処理マクロ。 .Xr nroff 1 および .Xr troff 1 参照。 .It Pa vi/ .Xr vi 1 のローカライズサポートとユーティリティ。 .It Pa zoneinfo/ タイムゾーン設定情報。 .Xr tzfile 5 参照。 .El .It Pa src/ .Bx とサードバーティとローカルのソースファイル。 .Pp .Bl -tag -width "kerberosIV/" -compact .It Pa bin/ /bin 内のファイルのソース。 .It Pa contrib/ 寄贈されたソフトウェアのソース。 .It Pa crypto/ 寄贈された暗号化ソフトウェアのソース。 .It Pa etc/ /etc 内のファイルのソース。 .It Pa games/ /usr/games 内のファイルのソース。 .It Pa gnu/ GNU Public Licence で保護されたユーティリティ。 .It Pa include/ /usr/include 内のファイルのソース。 .It Pa kerberosIV/ Kerberos version IV のソース。 .It Pa lib/ /usr/lib 内のファイルのソース。 .It Pa libexec/ /usr/libexec 内のファイルのソース。 .It Pa release/ .Fx のリリースを生成するために必要なファイル。 .It Pa sbin/ /sbin 内のファイルのソース。 .It Pa secure/ /usr/src/crypto 中のファイル用のビルドディレクトリ。 .It Pa share/ /usr/share 内のファイルのソース。 .It Pa sys/ カーネルのソースファイル。 .It Pa tools/ .Fx のメンテナンスとテストに使用するツール。 .It Pa usr.bin/ /usr/bin 内のファイルのソース。 .It Pa usr.sbin/ /usr/sbin 内のファイルのソース。 .El .Pp .It Pa X11R6/ X11R6 配布パッケージの実行可能形式ファイル、ライブラリなど (オプション扱い)。 .Bl -tag -width "include/" -compact .It Pa bin/ X11R6 のバイナリ (サーバ、ユーティリティ、ローカルな packages/ports)。 .It Pa etc/ X11R6 の設定ファイルとスクリプト。 .It Pa include/ X11R6 のインクルードファイル。 .It Pa lib/ X11R6 のライブラリ。 .It Pa man/ X11R6 のマニュアルファイル。 .It Pa share/ アーキテクチャ独立なファイル。 .El .El .It Pa /var/ さまざまな用途のログファイル、一時ファイル、遷移的ファイル、 スプールファイル。 .Pp .Bl -tag -width "preserve/" -compact .It Pa account/ システムアカウンティングファイル。 .Pp .Bl -tag -width Fl -compact .It Pa acct 実行アカウントファイル。 .Xr acct 5 参照。 .El .Pp .It Pa at/ 指定した時間に動くコマンドのスケジュールファイル。 .Xr \&at 1 参照。 .Bl -tag -width "preserve/" -compact .It Pa jobs/ ジョブファイルを含むディレクトリ。 .It Pa spool/ 出力スプールファイルを含むディレクトリ。 .El .Pp .It Pa backups/ さまざまなバックアップファイル。 .It Pa crash/ カーネルクラッシュダンプを保存するデフォルトのディレクトリ。 .Xr crash 8 と .Xr savecore 8 参照。 .It Pa cron/ cron が使用するファイル。 .Xr cron 8 参照。 .Bl -tag -width "preserve/" -compact .It Pa tabs/ crontab ファイル。 .Xr crontab 5 参照。 .El .Pp .It Pa db/ システム固有のさまざまなデータベースファイル。自動生成される。 .It Pa games/ さまざまなゲームのステータスおよびスコアファイル。 .It Pa log/ さまざまなシステムログファイル。 .Pp .Bl -tag -width Fl -compact .It Pa wtmp login/logout ログ。 .Xr wtmp 5 参照。 .El .Pp .It Pa mail/ ユーザのメールボックスファイル。 .It Pa preserve/ エディタの不慮の死の際に保存されるファイルを一時的に安置するディレクトリ。 .Xr \&ex 1 参照。 .It Pa msgs/ システムメッセージのデータベース。 .Xr msgs 1 参照。 .It Pa quotas/ ファイルシステムのクォータ情報のファイル。 .It Pa run/ ブートされてからのシステムについての各種情報を記述した システム情報ファイル。 .Pp .Bl -tag -width Fl -compact .It Pa ppp/ -コマンドの接続ソケット用に、network グループが書き込み可能です。 +コマンドの接続ソケット用に、 +.Dq network +グループが書き込み可能です。 .Xr ppp 8 参照。 .It Pa utmp 現在のユーザについてのデータベース。 .Xr utmp 5 参照。 .El .Pp .It Pa rwho/ rwho データファイル。 .Xr rwhod 8 , .Xr rwho 1 , .Xr ruptime 1 参照。 .It Pa spool/ さまざまなプリンタ、メールシステムのスプールディレクトリ。 .Pp .Bl -tag -width Fl -compact .It Pa ftp/ 一般に ~ftp となる部分。anonymous ftp のルートディレクトリ。 .It Pa mqueue/ 配送されていないメールのキュー。 .Xr sendmail 8 参照。 .It Pa output/ ラインプリンタ用スプールディレクトリ。 -.It Pa secretmail/ -機密メール用スプールディレクトリ。 -.Xr xget 1 -参照。 .It Pa uucp/ uucp スプールディレクトリ。 .It Pa uucppublic/ 一般に ~uucp となる部分。共用 uucp 一時ディレクトリ。 .El .Pp .It Pa tmp/ システムがリブートするまでの間保持される一時ファイル。 .Bl -tag -width Fl -compact .It Pa vi.recover/ vi のリカバリファイルを格納しておくディレクトリ。 .El .It Pa yp NIS マップ。 .El .El .Sh 注 -このマニュアルページはデフォルトの FreeBSD ファイルシステムレイアウトを +このマニュアルページはデフォルトの +.Fx +ファイルシステムレイアウトを 記述しており、 各システムの実際の階層構造はシステム管理者の裁量に委ねられています。 よく維持管理されたインストールにおいては、 カスタマイズされた本ドキュメントが付属するでしょう。 .Sh 関連項目 .Xr apropos 1 , .Xr find 1 , .Xr finger 1 , .Xr grep 1 , .Xr ls 1 , .Xr whatis 1 , .Xr whereis 1 , .Xr which 1 , .Xr fsck 8 .Sh 歴史 .Nm マニュアルページは .At v7 で登場しました。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 98-12-26 diff --git a/ja_JP.eucJP/man/man7/security.7 b/ja_JP.eucJP/man/man7/security.7 index 5897c9c3d7..611ff4d882 100644 --- a/ja_JP.eucJP/man/man7/security.7 +++ b/ja_JP.eucJP/man/man7/security.7 @@ -1,757 +1,757 @@ .\" Copyright (c) 1998, Matthew Dillon. Terms and conditions are those of .\" the BSD Copyright as specified in the file "/usr/src/COPYRIGHT" in .\" the source tree. .\" -.\" %FreeBSD: src/share/man/man7/security.7,v 1.13.2.8 2001/08/17 13:08:49 ru Exp % +.\" %FreeBSD: src/share/man/man7/security.7,v 1.13.2.9 2001/12/17 11:30:17 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man7/security.7,v 1.18 2001/08/18 23:50:42 horikawa Exp $ +.\" $FreeBSD$ .Dd September 18, 1999 .Dt SECURITY 7 .Os .Sh 名称 .Nm security .Nd FreeBSD におけるセキュリティ入門 .Sh 解説 セキュリティは、システム管理者とともに始まり、システム管理者と ともに終る機能です。 .Bx マルチユーザシステムは、昔ながらのセキュリティをいくらかは備えて いますが、さらなるセキュリティ機構を組み込んで維持していくことで、ユーザを .Sq 正直に し続ける仕事は、システム管理者の最も大きな責務の一つでしょう。マシンは、 管理者が設定しただけのセキュリティしか示しません。セキュリティに関する 問題は、むしろ、便利さを求める人間との競合問題です。一般に、 .Ux システムは莫大な数のプロセスを同時に実行させることができ、 それも、サーバとして動作するものが多いのです。つまり、外部の何者かが 接続してきて、サーバプロセスと会話することができるということなのです。 昨日まで使われていたミニコンピュータやメインフレームは、今日では デスクトップコンピュータが取って代わり、しかも、それらはネットワークで結ばれて インターネットと接続されるようになりました。これにより、セキュリティは 昔と比べてはるかに大きな問題となっています。 .Pp セキュリティは、タマネギの階層のようなアプローチを通すと最もよく実装できます。 手短に言って、やりたいことは、便利さを損ねない程度にできるだけ多くの 階層を作り、システムに侵入されていないかを注意深く監視することです。 セキュリティの階層を作りすぎたくはありません。作りすぎると、侵入の 検出が妨げられることになるでしょう。どんなセキュリティ機構でも、 侵入の検出をすることが唯一とても重要なことなのですから。 例えば、システムの各バイナリに .Pa schg フラグ ( .Xr chflags 1 参照) を設定するのは大して意味がありません。フラグを設定すると、一時的には バイナリを保護することができますが、侵入してきたクラッカーが、 マシンのセキュリティ機構がクラッカーの侵入を全く検知できなくなるような 変更ではあるが、管理者が容易に検出できるような変更をできなくしてしまう からです。 .Pp システムセキュリティには、さまざまな形での攻撃に対処することも ついて回ります。攻撃には、root を破ろうとはしないが、システムを クラッシュさせたり、さもなければ、システムを使用不能にしたり しようとするものも含まれています。 セキュリティに関する問題は、いくつかのカテゴリに分類することができます。 .Bl -enum -offset indent .It サービス不能攻撃 .It ユーザアカウントにかかる危険 .It アクセス可能なサーバを経由した root 権限にかかる危険 .It ユーザアカウントを通した root 権限にかかる危険 .It 裏口の作成 .El .Pp サービス不能攻撃とは、マシンから必要な資源を奪う行為です。 サービス不能攻撃は、普通は、そのマシンで実行されるサーバや ネットワークスタックを圧倒して、マシンをクラッシュさせたり、 さもなければマシンを使えなくしたりするような力任せの方法です。 サービス不能攻撃のいくつかは、 ネットワークスタックのバグを利用して、パケット一つでマシンを クラッシュさせようとします。後者は、 カーネルにバグ修正を施すことによってのみ修正することができます。 サーバプロセスに対する攻撃は、オプションを適切に指定して、 不利な状況にあるシステムにおいて、サーバプロセスが引き起こす負荷に限界を設けることで 修正することができます。これらに比べると、ネットワークへの力任せの攻撃への 対応はずっと難しくなります。たとえば、偽造パケットによる攻撃 .Pq spoof-packet attack は、インターネットからシステムを切り離す以外の方法で防ぐことは ほとんど不可能です。 それによって、マシンを落としてしまうことはできないかもしれませんが、 インターネット回線をいっぱいにしてしまうことはできます。 .Pp ユーザアカウントを危険に晒してしまう問題は、サービス不能攻撃よりもずっとよくある 問題です。このご時勢でも、自分たちのマシンで標準の telnetd, rlogind, rshd, ftpd サーバを実行させているシステム管理者は多いのです。これらの サーバは、デフォルトでは、暗号化されたコネクション上で動作していません。 その結果、抱えているユーザ数が標準くらいであれば、リモートログイン (そのシステムにログインするには最も普通で便利な方法です) しているユーザのうち一人以上は、パスワードを覗き見られて しまうでしょう。 システム管理者が注意深い人ならば、たとえログインが成功していたとしても、 リモートアクセスログを解析して、疑わしいソースアドレスを探すものです。 .Pp ひとたび攻撃者がユーザアカウントへのアクセス権を入手すると、攻撃者が root の権限を破る可能性があることを仮定するべきです。しかし、 セキュリティを十分維持し、手入れの行き届いたシステムにおいては、 あるユーザアカウントへのアクセスが可能となっても、攻撃者に必ずしも root へのアクセス権を与えるとは限らないのが現実です。この違いは重要です。 というのは、root へのアクセス権がなければ、一般的に、攻撃者は自分の 侵入の痕跡を隠蔽することができませんし、そのユーザのファイルを引っかき回したり、 マシンをクラッシュさせたりできるのがせいぜいです。 ユーザアカウントが危険に晒されるということは、たいへんよく起こることです。 なぜなら、ユーザは、システム管理者ほどには前もって注意を払わない 傾向があるからです。 .Pp システム管理者は、あるマシン上で root の権限を破る方法は、潜在的に 何通りもあるのだということを 心しておかねばなりません。攻撃者が root のパスワードを知ってしまうかも しれません。攻撃者が root の権限で実行されるサーバのバグを見つけ、 ネットワークからそのサーバへ接続して root の権限を破ることができるかも しれません。ひとたびユーザアカウントを破ると、ユーザアカウントから root の権限を破ることが可能であるというバグを持つ suid-root プログラムの 存在を、攻撃者は知っているかもしれません。 あるマシン上で、攻撃者が root の権限を破る方法を知ったとすると、 攻撃者は、裏口を作る必要などないかもしれません。 発見され、ふさがれた root の穴の多くには、クラッカーが侵入した跡を消そうとして たくさん仕事した結果が含まれています。 そのためにこそ、多くのクラッカーは裏口を作るのです。この裏口は、クラッカーの 検出をするのに便利なやり方です。クラッカーに裏口を作らせないようにする ということは、セキュリティにとっては実際には良くないことかもしれません。 なぜなら、そうすることで、クラッカーが最初に侵入してくるために発見した セキュリティホールがふさがるわけではないからです。 .Pp セキュリティを改善する方法は、常に、 .Sq タマネギの皮剥き のように 複数の層のアプローチで実装されるべきです。これらは次のように分類できます。 .Bl -enum -offset indent .It root とスタッフのアカウントの安全性を高める。 .It root の安全性を高める - root 権限のサーバと suid/sgid バイナリ。 .It ユーザアカウントの安全性を高める。 .It パスワードファイルの安全性を高める。 .It カーネルのコア、raw デバイス、ファイルシステムの安全性を高める。 .It システムに対して行なった、不適切な変更をすばやく検出する。 .It 偏執狂的方法。 .El .Sh root アカウントとスタッフアカウントの安全性を高める root のアカウントの安全性を確保しないうちからスタッフのアカウントの安全性を うんぬんしてもしかたがありません。ほとんどのシステムでは、root アカウントに 割り当てたパスワードが 1 つあります。まず最初にすべきことは、 このパスワードは .Sq いつでも 危険に晒されていると仮定することです。 ここでは、root のパスワードを消すべきだと言っているのではありません。 パスワードは、マシンにコンソールからアクセスするのには、ほとんどいつでも 必要なものです。ここで言いたいのは、コンソール以外からは、おそらくは、 .Xr su 1 コマンドを用いてすらパスワードを使えるようにするべきではないということです。 例えば、pty が、 .Sq Pa /etc/ttys ファイルで安全でないものと指定されているのかを確認してください。 そうすることで、telnet や rlogin 越しに root でログインできないようになります。 sshd のような、別のログインサービスを使っている場合でも同様に、 直接 root へログインすることを許していないかどうか確認してください。 アクセスする手段、例えば ftp のようなサービスが、たびたびクラックの手に落ちる ことを考えてみてください。root に直接ログインできるのは、システムコンソール を通したときのみにすべきです。 .Pp システム管理者として、自分は root になれるようにしておかねばならないの はもちろんですから、穴をいくつか空けておきます。しかし、それらの穴を 動作させるには、さらに追加のパスワード認証が必要であるようにして おきます。root でアクセス可能とする方法の一つとして、 適切なスタッフアカウントを ( .Pa /etc/group ) の wheel グループに加えることがあります。 wheel グループに置かれたスタッフメンバには、 .Sq su を使って root になることが許されます。パスワードエントリにおいて、 最小限のメンバを wheel グループを置くことで、スタッフメンバに wheel のアクセス権を与えてはいけません。スタッフメンバのアカウントは .Sq staff に置くべきです。そして .Sq Pa /etc/group ファイルを通して wheel グループに加えるべきです。 実際に root アクセスの必要な staff メンバのみ wheel グループに置くように すべきです。kerberos のような認証方法を使用する場合、root アカウントで .Sq Pa .k5login ファイルを使って、誰も wheel グループに置く必要なく root に .Xr ksu 1 を許すようにすることもできます。 このやり方はよりよい解決策なのかもしれません。なぜなら、wheel のメカニズム では、侵入者がパスワードファイルを手に入れ、staff アカウントのいずれか 1 つを破ることができると、root を破ることがまだできてしまうからです。 wheel のメカニズムを用いる方が、何もしないよりは良いのですが、必ずしも 最も安全な選択肢とは限りません。 .Pp root アカウントの安全性を高める間接的な方法として、別のログインアクセス の方法を用いて、スタッフのアカウントの暗号化パスワードを\ * にして おくことで、スタッフのアカウントの安全性を高めるものがあります。この方法 だと、侵入者がパスワードファイルを盗むことができるかもしれませんが、 スタッフアカウントを破ることはできないでしょう。また、たとえ root が暗号化 パスワードをパスワードファイルに付けていたとしても、間接的には root アカウントも破ることができないでしょう。 スタッフメンバがスタッフアカウントでログインする際には、 .Xr kerberos 1 や .Xr ssh 1 のような、公開鍵 / 秘密鍵の鍵の組を使う 安全性の高いログインの仕組みを使います。kerberos のような仕掛けを使う場合、 一般に、kerberos サーバを実行するマシンと自分のデスクトップ ワークステーションとの安全性を確保しなければなりません。ssh で 公開鍵 / 秘密鍵の組を使う場合、一般に、ログイン元マシン (通常は自分のワークステーション) の安全性を確保しなければなりません。ここで、 .Xr ssh-keygen 1 で公開鍵 / 秘密鍵の組を生成する際、鍵の組をパスワードで防御することにより、 鍵の組への防御層を追加することもできます。スタッフアカウントの パスワードを\ * で外すことができると、管理者自身が設定 した安全性の高い方法でしかスタッフメンバがログインできないことも保証 できます。こうして、多くの侵入者が使う重大なセキュリティの穴 (安全性の低い無関係なマシンからネットワークを覗き見る方法) を塞ぐようなセッションを提供する、安全性の高い暗号化されたコ ネクションを使うことを、スタッフメンバ全員に強制することができ るのです。 .Pp より間接的なセキュリティの仕組みでは、制限の強いサーバから制限の弱い サーバへログインすることを前提としています。例えば、メインマシンで、 様々な種類のサーバを実行させている場合、ワークステーションではそれらの サーバを実行させてはなりません。ワークステーションを十分に 安全にしておくためには、実行するサーバの数を、一つもサーバ が実行されていないというくらいにまでできる限り減らすべきです。 また、パスワードで保護されたスクリーンセーバを走らせておくべきです。 ワークステーションへの物理的アクセスが与えられたとすると、もちろん 言うまでもなく、攻撃者は管理者が設定したいかなる種類のセキュリティ をもうち破ることができるのです。これは、管理者として必ず考えておか ねばならない問題ですが、システム破りの大多数は、ネットワーク経由で リモートから、ワークステーションやサーバへの物理的アクセス手段を持 たない人々によって行われるという事実もまた、念頭に置いておく必要 があります。 .Pp kerberos のような方法を使うことで、スタッフアカウントのパスワードの変更 もしくは停止を一箇所で行なうことと、スタッフメンバがアカウントを持つ すべてのマシンに即時にその効果を及ぼすことが可能となります。スタッフメンバの アカウントが危険に晒されたときに、すべてのマシンでスタッフメンバのパスワードを 即座に変更する能力を過小評価してはいけません。パスワードが分散されている状況では、 N 台のマシンでパスワードを変更すると、てんやわんやの事態を招く可能性が あります。kerberos を使用すると、パスワードの再発行に制限 (re-passwording restriction) を課することもできます。この機能を使うことにより、 ある kerberos チケットをしばらく経つとタイムアウトにすることが できるだけでなく、一定期間 (例えば、1 ヶ月に 1 回) 経つと、ユーザに新しいパスワードを選ぶように要求することもできます。 .Sh root の安全性を高める - root 権限のサーバと suid/sgid バイナリ 用心深いシステム管理者は、自分に必要なサーバプロセスだけを過不足なく 実行させるものです。第三者製のサーバは、よくバグを持っていがちだと いうことに注意して下さい。例えば、古いバージョンの imapd や popper を実行させておくのは、全世界に共通の root の切符を与えてい るようなものです。 自分で注意深くチェックしていないサーバは、決して実行してはいけません。 root で実行させる必要のあるサーバはほとんどありません。例えば、ntalk, comsat, finger デーモンを、特別の「砂場 .Pq sandbox 」ユーザで実行させることができます。 .\"kuma hellofalot of trouble って何や? .\" hell of a lot of trouble みたいですね。;-) (金ん田 '99.02.11) 管理者が膨大な数の問題に直面していないのなら、この「砂場」は完璧では ありませんが、セキュリティに関するタマネギ的アプローチはここでも 成り立ちます。砂場で実行されているサーバプロセスを経由して侵入を 果たすことができたとしても、攻撃者はさらに砂場から外に脱出しなければ なりません。攻撃者が通過せねばならない層の数が増えれば増えるほど、 それだけ攻撃者が侵入に成功する確率が減ります。root の抜け穴は 歴史的に、基本システムサーバも含め、 root 権限で実行されるほとんどすべてのサーバプロセスで発見されています。 ユーザが sshd 経由でのみログインし、 telnetd, rshd, rlogind 経由でログインすること が決してないマシンを稼働させているのであれば、それらのサービスを停止させて下さい。 .Pp .Fx では、今では ntalkd, comsat, finger は砂場で実行させることが デフォルトになっています。次に砂場で実行させるべきプログラムの候補として、 .Xr named 8 があります。デフォルトの rc.conf ファイルには、named を砂場で実行する ために必要な引数がコメントアウトされた形式で含まれています。新しい システムをインストールしているか、それとも既存のシステムを アップグレードして使っているかに依存しますが、砂場として使用する 特別のユーザアカウントがインストールされていないかもしれません。 用心深いシステム管理者であれば、できるだけいつでも研究を怠らず、 サーバに砂場を仕込むものでしょう。 .Pp 通常、砂場で実行しないサーバが他にいくつかあります。sendmail, popper, imapd, ftpd などです。これらのうちいくつかのサーバには代わりとなるも のがありますが、 代わりのものをインストールするには、それだけ多くの仕事が必要になるので、 結局これらを喜んで入れてしまいます (便利さという要素がまたも勝利を収めるわけです)。 これらのサーバは、root 権限で実行せねばならいかもしれません。また、 これらのサーバ経由で生じる侵入 を検出するためには、他の仕組みに頼らなくてはならないかもしれません。 .Pp システムの root 権限の潜在的な穴で他に大きなものとして、システムに インストールされた suid-root/sgid バイナリがあります。 これらのバイナリは、rloginのように、 .Pa /bin , .Pa /sbin , .Pa /usr/bin , .Pa /usr/sbin に存在するものがほとんどです。 100% 安全なものは存在しないとはいえ、システムデフォルトの siud/sgid バイナリは比較的安全といえます。それでもなお、root の穴が これらのバイナリにときおり発見されています。1998 年に Xlib で見つかった root の穴は、xterm (普通、suid 設定されています) を攻撃可能にしていました。 安全である方がよいので、用心深いシステム管理者は残念に思いながらも、 スタッフのみが実行する必要がある suid バイナリは、スタッフのみが アクセス可能な特別なグループに含めるように制限を加え、 誰も使わない suid バイナリは .Pq Li chmod 000 を実行して 片付けてしまうでしょう。 ディスプレイを持たないサーバは、一般的に xterm のバイナリを必要としません。 sgid バイナリもほとんど同様の危険な存在になり得ます。 侵入者が kmem に sgid されたバイナリを破ることができた場合、 その侵入者は .Pa /dev/kmem を読み出すことができるようになります。 つまり、暗号化されたパスワードファイルを読み出すことができる ようになるので、パスワードを持つどのアカウントをも、 .Pq 潜在的な 危険に晒すことになります。 代わりに、kmem グループを破った侵入者が pty を通して送られたキーストロークを 監視できます。キーストロークには、安全な方法でログインするユーザが使っている pty も含まれます。tty グループを破った侵入者は、ほぼ任意のユーザの tty へ 書き込みができます。ユーザが端末プログラムやキーボードをシミュレーション する機能を持ったエミュレータを使っている場合、侵入者は潜在的に、 結局そのユーザとして実行されるコマンドをユーザの端末にエコーさせる データストリームを生成できる可能性があります。 .Sh ユーザアカウントの安全性を高める ユーザアカウントは、普通、安全性を高めることが最も困難です。 スタッフに対して、アテナイのドラコのような厳格なアクセス制限を課し、 スタッフのパスワードを\ * で外すことができるとはいえ、管理者が持ちうる 一般ユーザすべてのアカウントに対して同じことはできないかもしれません。 管理者が十分に統率をとることができるなら、管理者は勝利し、ユーザの アカウントの安全を適切に確保できるかもしれません。それが できないならば、よりいっそう気を配って一般ユーザのアカウントを 監視するよりほかありません。一般ユーザアカウントに対し ssh や kerberos を利用することには、システム管理がさらに増えたり テクニカルサポートが必要になるなどの問題があります。 それでも、暗号化パスワードファイルと比較するとはるかに良い解です。 .Sh パスワードファイルの安全性を高める できるだけ多くのパスワードを\ * で外し、それらのアカウントのアクセスには ssh や kerberos を使うようにすることが、唯一の確実な方法です。たとえ暗号化 パスワードファイル .Pq Pa /etc/spwd.db が root でのみ読み出し可能だとしても、 侵入者がそのファイルの読み出しアクセス権限を得ることは可能かもしれません。 たとえ root の書き込み権限が得られないにしてもです。 .Pp セキュリティスクリプトは常にパスワードファイルの変更をチェックし、報告 するようにすべきです (後述の「ファイルの完全性のチェック」を参照して下さい)。 .Sh カーネルのコア、raw デバイス、ファイルシステムの安全性を高める root の権限を破ると、攻撃者は何でもできますが、 もっと簡便なこともいくつかあります。例えば、最近のカーネルは、 組み込みのパケット覗き見デバイス .Pq packet sniffing device ドライバを備えているものがほとんどです。 .Fx では .Sq bpf デバイスと呼ばれています。侵入者は普通、危険に晒された マシンでパケット覗き見プログラムを実行させようと試みます。侵入者に わざわざそういう機能を提供する必要はないので、ほとんどのシステムで bpf デバイスを組み込むべきではありません。 .Pp bpf デバイスを外し、モジュールローダを無効にしても、 .Pa /dev/mem と .Pa /dev/kmem という悩みの種がまだ残っています。この問題に関しては、侵入者は raw デバイスに書き込むこともできます。 また、 .Xr kldload 8 という、別のカーネル機能があります。 やる気まんまんの侵入者は、KLD モジュールを使って 自分独自の bpf もしくはその他覗き見デバイスを動作中のカーネルに インストールすることができます。 この問題を避けるため、システム管理者は カーネルをより高い安全レベル .Pq securelevel 、少なくとも安全レベル 1 で実行させる必要があります。 sysctl を使って kern.securelevel 変数に安全レベルを設定することが できます。ひとたび安全レベルに 1 を設定すると、 raw デバイスに対する書き込みアクセスは拒否され、例えば .Sq schg のような 特別な chflags フラグが効果を発揮します。これに加えて、 起動時において重要なバイナリ・ディレクトリ・スクリプトファイルなど、 安全レベルが設定されるまでの間に実行されるものすべてに対しても .Sq schg フラグを確実に on にしておく必要があります。この設定をやり過ぎても 構いませんが、より高い安全レベルで動作している場合、システムの アップグレードがはるかに困難になります。システムをより高い安全レベルで 実行させるようにするが、お天道さまの下にあるすべてのシステムファイルと ディレクトリに schg フラグを設定しないという妥協をする方法もあります。 もう一つの可能性としては、単純に / および /usr を読み込み専用でマウント することです。ここで特筆すべきことは、システムを守ろうとしてアテナイのドラコ のように厳しくしすぎると、侵入を検出するという非常に重要なことが できなくなってしまうということです。 .Sh ファイルの完全性のチェック: バイナリ、設定ファイルなど ことこの問題に至ると、システム管理者にできることは、 便利さという要素がその醜い頭を上げない程度に、 コアシステムの設定 / 制御ファイルを防御することだけです。 例えば、/ および /usr にある大部分のファイルに schg ビットを 設定するために chflags を使用するのは、おそらく逆効果でしょう。 なぜなら、そうすることでファイルは保護できますが、侵入を検出 する窓を閉ざしてしまうことにもなるからです。 セキュリティのタマネギの最後の層はおそらく最も重要なもの、すなわち検出です。 セキュリティの残りのものは、突然の侵入を検出できなければ、全然有用では ありません( あるいは、もっと悪ければ、間違った安全性に対する感覚を 植え付けてしまいます )。 タマネギの仕事の半分は、均衡状態にあるとき、攻撃中に検出側に攻撃者を 捕まえるきっかけを与えるため、攻撃者を食い止めるのではなく 侵入を遅らせることなのです。 .Pp 侵入を検出する最も良い方法は、変更されていたり、消えていたり、入れた覚えが ないのに入っているファイルを探すことです。 変更されたファイルを探すのに最も良い方法は、もう一つの ( しばしば中央に集められた ) アクセスが制限されたシステムから行なうものです。 さらに安全でアクセス制限されたシステム上でセキュリティ用スクリプトを書けば、 スクリプトは潜在的なクラッカー達からはほぼ見えなくなります。 これは重要なことです。 最大限に優位に立つために、一般的にビジネスで使う他のマシンへの重要な アクセスは、アクセスの制限されたマシンにやらせなくてはいけません。 普通は、他のマシンからアクセス制限されたマシンへ読み込み専用で NFS エクスポートしたり、アクセス制限されたマシンから他のマシンへ ssh を行なうために、ssh 鍵のペアを作ったりすることで行います。 ネットワークのトラフィックを別にして、NFS は最も可視性のない方法です。 事実上検出されない各クライアント上のファイルシステムを監視できるようになります。 アクセス制限されたサーバがスイッチを通してクライアントに接続する場合、 たいてい NFS がより良い選択肢です。アクセス制限されたサーバがハブを通したり、 いくつかのルーティング層を通したりしてクライアントに接続する場合、 NFS はあまりにも危険な方法かもしれず ( ネットワークの面で ) 、ssh の方が 認証の道筋は跡となって残りますが、それでもより良い方法かもしれません。 .Pp アクセス制限されたマシンに、少なくとも監視することを前提とした クライアントシステムへの読み込みアクセスをひとたび与えると、 実際に監視するためのスクリプトを書かなくてはいけません。 NFS マウントをすれば、 .Xr find 1 や .Xr md5 1 などの単純なシステムユーティリティでスクリプトを書くことができます。 少なくとも 1 日 1 回、クライアントのファイルを直接 md5 にかけ、 さらにもっと頻繁に .Pa /etc および .Pa /usr/local/etc にあるようなコントロール用ファイルを試験するのが一番です。 試験ファイルは、アクセス制限されたマシンが適性であると知っている、基となる md5 情報と比べて違いが見つかった場合、システム管理者に調べて欲しいと 訴えるようにするべきです。 優れたセキュリティ用スクリプトは、 .Pa / および .Pa /usr などのシステムパーティション上で不適当に suid されたバイナリや、 新たに作成されたファイルや削除されたファイルもチェックするのでしょう。 .Pp NFS ではなく、ssh を使用する場合は、セキュリティ用スクリプトを書くのはずっと 難しいことです。スクリプトをクライアントから見えるようにし、 動かすためには、クライアントに対して .Pa scp を必ず行わなくてはいけません。 そして、安全のため、スクリプトが使うバイナリ ( find など ) を scp する必要も あります。クライアントの ssh デーモンはすでに危険に晒されているかもしれません。 以上のことから、安全でないリンク上の場合は ssh は必要かもしれませんが、 ssh を扱うのはとても大変なことです。 .Pp 優れたセキュリティ用スクリプトは、ユーザやスタッフメンバの アクセス設定ファイルもチェックするものです。 .Pa .rhosts , .Pa .shosts , .Pa .ssh/authorized_keys などがそれですが、MD5 のチェックの範囲外になってしまうかもしれません。 .Pp ユーザ用のディスク容量が非常に大きい場合は、パーティション上の各ファイルを 見て回るのに大変な時間がかかるかもしれません。この場合は、マウントフラグを 設定して、このパーティションに suid されたバイナリやデバイスを置けないように するのが良い考えです。 .Sq nodev および .Sq nosuid オプション ( .Xr mount 8 参照) が調べたいものでしょう。私なら、ともかくも週に 1 度はファイルシステムを スキャンするでしょう。なぜなら、この層での目的は、侵入が意味があるかどうかに 関わらず、侵入を検出することだからです。 .Pp プロセスアカウンティング ( .Xr accton 8 参照) は、比較的オーバヘッドの低いオペレーティングシステムの機能で、 マシンに侵入されてしまった後の評価の仕組みとして使用することをお勧め します。 侵入を受けた後でも当該ファイルが無傷である場合に、 侵入者が実際にどのようにしてシステムに侵入したかを 追跡するのに特に有益です。 .Pp 最後に、セキュリティスクリプトはログファイルを処理するようにし、 ログファイル自体もできるだけ安全性の高い方法で .Sq リモート syslog は極めて有益になり得ます 生成するようにすべきです。侵入者は自分の侵入の痕跡を覆い隠そう としますし、また、ログファイルはシステム管理者が最初の侵入の時 刻と方法を追跡してゆくために極めて重要です。 ログファイルを永久に残しておくための 1 つの方法は、システムコンソールを シリアルポートにつないで走らせ、コンソールを監視している安全なマシンを通して 絶えず情報を集めることです。 .Sh 偏執狂的方法 多少偏執狂的になっても決して悪いことにはなりません。原則的に、 システム管理者は、便利さに影響を与えない範囲でいくつでもセキュリティ 機能を追加することができます。また、いくらか考慮した結果、便利さに 影響を与えるセキュリティ機能を追加することもできます。 もっと重要なことには、セキュリティ管理者とは少し喧嘩になる はずなのですが、もしあなたが、このマニュアルページに書かれている 勧告をそのまま使用したりした場合は、 予想されるクラッカーはやはりこのマニュアルを読んでいるわけですから、 防御策を渡してしまうことになります。 .Sh サービス不能攻撃 (D.O.S. attack) についての特記事項 このセクションではサービス不能攻撃を扱います。サービス不能攻撃は、普通は、 パケット攻撃です。ネットワークを飽和させる最先端の偽造パケット .Pq spoofed packet 攻撃に対してシステム管理者が打てる手はそれほど多く ありませんが、一般的に、その種の攻撃によってサーバがダウン しないことを確実にすることで、被害をある限度に食い止める ことはできます。 .Bl -enum -offset indent .It サーバの fork の制限 .It 踏み台攻撃の制限 .Pq ICMP 応答攻撃、ping broadcast など .It カーネルの経路情報のキャッシュ .El .Pp 普通に見られるサービス不能攻撃に、fork するサーバプロセスに対する ものがあります。これは、サーバにプロセス・ファイル記述子・メモリを 食い尽くさせて、マシンを殺そうとするものです。 inetd ( .Xr inetd 8 参照) には、この種の攻撃を制限するオプションがいくつかあります。マシンが ダウンすることを防止することは可能ですが、この種の攻撃によりサービスが 崩壊することを防止することは一般的に言ってできないことに注意する必要が あります。inetd のマニュアルページを注意深く読んで下さい。特に、 .Fl c , .Fl C , .Fl R オプションに注意して下さい。IP 偽造攻撃 (spoofed-IP attack) は inetd の .Fl C オプションの裏をかけるので、一般にオプションを 組み合わせて使用するべきであることに注意して下さい。スタンドアロンサーバ の中には、自分自身で fork を制限するパラメータを持っているものがあります。 .Pp sendmail には、 .Fl OMaxDaemonChildren オプションがあります。負荷には遅れがあるので、 sendmail の負荷に限界を設けるオプションを使うよりも、 このオプションを使う方がまともに動作する可能性ははるかに高いです。 sendmail の実行を開始する際に、 .Cm MaxDaemonChildren パラメータを設定するべきです。その値は、 通常見込まれる負荷を扱える程度に十分高いが、 それだけの数の sendmail を操作しようとすると マシンが卒倒してしまうほどには高くないような値に設定するべきです。 sendmail をキュー処理モード .Pq Fl ODeliveryMode=queued で実行することや、 sendmail デーモン .Pq Cm sendmail -bd をキュー処理用プロセス .Pq Cm sendmail -q15m と別に実行することも、用心深いことと言えます。それでもなおリアルタイムでの 配送を望むのであれば、 .Fl q1m のようにすることで、キュー処理をはるかに短い時間間隔で 行うことができます。いずれにしても、 .Cm MaxDaemonChildren オプションに 合理的な値を確実に指定して、sendmail がなだれをうって失敗することが ないようにして下さい。 .Pp syslogd は直接攻撃される可能性があるので、可能ならばいつでも .Fl s オプションを用いることを強く推奨します。これができないなら、 .Fl a オプションを使って下さい。 .Pp tcpwrapper の逆 identd などの接続返し (connect-back) を行うサービスに ついては十分注意を払うようにするべきです。これらは直接攻撃を受ける可能性が あります。こういう事情があるので、tcpwrapper の逆 ident 機能を使おうとは 思わないのが一般的です。 .Pp 境界ルータのところでファイアウォールを設けて、外部からのアクセスに対して 内部サービスを防御するという考えは実によいものです。この考えは、LAN の外部 からの飽和攻撃を防ぐことにあり、root ネットワークベースの root 権限への攻撃から内部サービスを防御することには、あまり考慮を払って いません。ファイアウォールは常に排他的に設定して下さい。つまり、 「ポート A, B, C, D と M から Z まで .Eo * 以外 .Ec * のすべてに防火壁を設ける」というふうにです。 このようにすることで、named (ゾーンのプライマリである場合), ntalkd, sendmail など、インターネットにアクセスを提供するサービス として特に指定するもの以外の、小さい番号のポートすべてをファイアウォールで 防御することができます。ファイアウォールをこの他のやり方、つまり 包含的もしくは受容的なファイアウォールとして設定しようとする場合、 .Sq close することを忘れてしまうサービスがいくつか出てきたり、新しい内部サービスを 追加したのにファイアウォールの更新を忘れたりする可能性がよく出てきます。 ファイアウォール上の大きい番号のポートを開けておいて、小さい番号のポートを 危険に晒すことなく受容的な動作を許すことができます。 .Fx では、net.inet.ip.portrange への sysctl .Pq Li "sysctl -a | fgrep portrange" をいろいろ使用することで、 動的バインドに使用されるポート番号の範囲を制御できることを記憶にとどめて おいて下さい。これによりファイアウォールの設定の複雑性を緩和できます。 私は、ファイアウォールに通常のfirst/last の範囲として、 4000 から 5000 を、 高位ポートの範囲として、49152 から 65535 を使用しています。そして、 (いくつかのインターネットアクセス可能なポートを ブロックから除外するのはもちろんですが) 4000 より下のすべてをブロックしています。 .Pp また別のありふれたサービス不能攻撃として、踏み台攻撃 (springboard attack) と呼ばれるものがあります。これは、サーバが自分自身、ローカルネットワーク、 そして他のマシンを過負荷に追い込むような応答を生成させる方法でサーバを 攻撃します。この種の攻撃の中で最もありふれたものは、ICMP PING BROADCAST 攻撃があります。攻撃者は、実際に攻撃したいマシンのアドレスをソース アドレスに設定した ping パケットを偽造して、対象の LAN の ブロードキャストアドレスに向けてパケットを送信します。境界にあるルータが ブロードキャストアドレスに対する ping パケットを握り潰すように設定されていない 場合、LANは、詐称されたソースアドレスに向けて応答パケットを生成するはめになり、犠牲となるマシンが飽和するところまで行ってしまいます。攻撃者が同じトリックを 異なるネットワーク上のいくつものブロードキャスト アドレスに対して同時に使用した場合、とくにひどいことになります。 これまでに、120 メガビット以上のブロードキャスト攻撃が観測されています。 2 番目の踏み台攻撃は、ICMP エラー報告の仕掛けを狙うものです。ICMP エラー 応答を生成するパケットを生成することにより、攻撃者はサーバの 受信ネットワークを飽和させることができ、同時に、サーバが送信 ネットワークを ICMP 応答で飽和させるようにすることができます。 mbuf を消費し尽くさせることにより、この種の攻撃でサーバを クラッシュさせることも可能です。サーバの ICMP 応答生成が速過ぎて、 ICMP 応答の送信が追い付かない場合、とくにひどいことになります。 .Fx カーネルには、この種の攻撃の効果を抑制する ICMP_BANDLIM と 呼ばれる新しいコンパイルオプションがあります。 3つめの主要なクラスに属す踏み台攻撃は、udp echo サービスのような、 ある種の内部 inetd サービスに関連するものです。攻撃者は、単に ソースアドレスがサーバ A の echo ポートであり、ディスティネーション アドレスがサーバ B の echo ポートであるかのように UDP パケットを 偽造します。ここでサーバ A, B はともに自分の LAN に接続されています。 この 2 つのサーバは、この一つのパケットを両者の間で互いに相手に対して 打ち返しあいます。このようにしてパケットをいくつか注入するだけで、 攻撃者は両方のサーバと LAN を過負荷状態にすることができます。 同様の問題が内部 chargen ポートにも存在します。有能なシステム管理者は この手の inetd 内部テストサービスのすべてを無効にしておくものです。 .Pp 偽造パケット攻撃は、カーネルの経路情報キャッシュに過負荷を生じさせるために 用いられることもあります。net.inet.ip.rtexpire, rtminexpire, rtmaxcache の sysctl パラメータを参照して下さい。でたらめなソース IP を用いた この偽造パケット攻撃により、カーネルは、一時的なキャッシュ経路を 経路情報テーブルに生成します。これは .Sq netstat -rna \&| fgrep W3 で見ることができます。これらの経路は、普通は 1600 秒程度でタイムアウトに なります。カーネルがキャッシュ経路テーブルが大きくなり過ぎたことを 検知すると、カーネルは動的に rtexpire を減らしますが、rtminexpire より 小さくなるようには決して減らしません。ここに問題が 2 つあります。 (1) 負荷の軽いサーバが突然攻撃された場合、カーネルが十分素早く反応 できないこと。(2) カーネルが攻撃に耐え生き延びられるほど十分 rtminexpire が低く設定されていないこと。の2つです。 自分のサーバが T3 もしくはそれより 良質の回線でインターネットに接続されている場合、 .Xr sysctl 8 を用いて rtexpire と rtminexpire とを手動で上書きしておくことが思慮深いこと といえます。 (自分のマシンをクラッシュさせたくないのであれば :-)) どちらか一方でも 0 に は決してしないで下さい。両パラメータを 2 秒に設定すれば、 攻撃から経路情報テーブルを守るには十分でしょう。 .Sh kerberos および ssh を用いたアクセスの問題 もしあなたが、kerberos および ssh を使用したいのだとしたら、両者に関して 言っておく必要のある問題がいくつかあります。 kerberos V は大変優れた認証プロトコルですが、kerberos 処理された telnet や rlogin は、バイナリストリームを扱うのに不向きになってしまうようなバグがあります。 さらに、デフォルトでは、kerberos は .Fl x オプションを使わない限りセッションを暗号化してくれません。 ssh では、デフォルトですべてを暗号化してくれます。 .Pp ssh はあらゆる場面でとても良く働いてくれます。ただし、 暗号鍵を送ってしまう場合を除けばです。これはつまり、暗号鍵を持った安全な ワークステーションがあって、この暗号鍵で残りのシステムとアクセスできる ようになっている場合では、安全でないマシンへ ssh を行なう時に暗号鍵が 見えてしまうということです。実際の鍵そのものが見えてしまうわけでは ありませんが、ssh は、login を持続させるために配送用ポートを作ります。 クラッカーが安全でないマシンの root を破ると、クラッカーは、 このポートを使って暗号鍵を取得し、暗号鍵でロックの外れる他のマシンへの アクセスを得ます。 .Pp staff のログインには、kerberos を組み合せた ssh を使用することを勧めます。 ssh は、kerberos と一緒にコンパイルできます。こうすると、見えて しまうかもしれない ssh 鍵をあまりあてにしないで良いようになります。 また、それと同時に、kerberos 経由でパスワードを保護することもできます。 ssh 鍵は、安全なマシンからの自動化されたタスク (kerberos では不向きな ものなど ) 用のみに使用するべきです。また、ssh の設定で ssh 鍵を送らないようにするか、あるいは、 .Pa authorized_keys ファイル中で .Pa "from=IP/DOMAIN" オプションを使用して、特定のマシンからログインしてきたもののみに 有効になる鍵を ssh が生成できるようにすることも勧めます。 .Sh 関連項目 .Xr chflags 1 , .Xr find 1 , .Xr kerberos 1 , .Xr md5 1 , .Xr netstat 1 , .Xr openssl 1 , .Xr ssh 1 , .Xr xdm 1 , .Xr group 5 , .Xr ttys 5 , .Xr accton 8 , .Xr init 8 , .Xr sshd 8 , .Xr sysctl 8 , .Xr syslogd 8 , .Xr vipw 8 .Sh 歴史 .Nm マニュアルページは、もともと .An Matthew Dillon によって書かれました。 最初に現れたのは、 .Fx 3.1 で 1998 年 12 月のことです。 .\" translated by Norihiro Kumagai, 98-12-29