# OpenVMS
ユーザーズ・マニュアル

前へ | 次へ | 目次 | 索引

## 13.7.4 複数の検索リストの検索順序

ファイル指定には，複数の検索リストが含まれることがあります。その場合，ファイル名検索リスト内の各項目が使用されますが，最初の装置名は一定のまま保持されます。ファイル名検索リスト内のすべての項目が最初の装置名と組み合わされると，今度は第2の装置名と組み合わされます。このプロセスは，それぞれの装置が検索されるまで継続します。

検索リスト内の1つの名前が別の検索リストに変換される場合には，反復 (ネストした) 検索リストを持つこともあります。この場合には，システムはサブリスト内のそれぞれの名前を使用してから，次の上位レベル名へと継続していきます。

次の例では，ファイル名と装置名に検索リストを持つファイル指定を示します。

    $ DEFINE FILE CHAP1.RNO, CHAP2.RNO
    $ DEFINE DISK WORK1:[ROSE], WORK2:[THORN]
    $ SET DEFAULT DISK
    $ DIRECTORY FILE

    Directory WORK1:[ROSE]

    CHAP1.RNO;2          CHAP2.RNO;1

    Total of 2 files.

    Directory WORK2:[THORN]

    CHAP1.RNO;1          CHAP2.RNO;1

    Total of 2 files.

    Grand total of 2 directories, 4 files.

各ファイル名を一覧するディレクトリ・コマンドは，最初に WORK1:[ROSE] おを表示し，次に WORK2:[THORN] を表示しています。

次の例では，反復検索リストを示しています。

    $ DEFINE NESTED FRED.DAT, NEW_LIST, RICKY.DAT
    $ DEFINE NEW_LIST ETHEL.DAT, LUCY.DAT

検索リストNESTEDの検索順序は次のとおりです。

> FRED.DAT
> ETHEL.DAT
> LUCY.DAT
> RICKY.DAT

# 13.8 論理名テーブルの特徴

論理名テーブルには，次の属性があります。

- 有効範囲 (共有可能かプロセス固有かどうか)

- アクセス・モード

- 名前

- 親論理名テーブル

- アクセス制御 (共用可能論理名テーブルのみ)

- 制限 (論理名により専有されるプールの量を制限する)

システムの初期化中に，共用可能論理名テーブルがいくつか作成されます。新しいプロセスが作成されると，システムはそのプロセスに対して共用可能でプロセス固有のテーブルを他にいくつか作成します。これらのテーブルはすべて， 表 13-1 に示します。

論理名テーブルのアクセス・モードは，その作成時に指定できます。これが指定されないとモードは，テーブル作成が要求されたアクセス・モードに省略時設定されますが，通常これはスーパバイザ・モードまたはユーザ・モードです。論理名テーブルには，それ自身のアクセス・モードとより低い特権アクセス・モードの論理名が含まれることがあります。論理名テーブルは，同じまたはそれ次の特権アクセス・モードの別のテーブルに対する親テーブルである場合もあります。

論理名テーブルは，その名前で識別されますが，名前自体が論理名です。論理名として各名前テーブル名が論理名テーブル内に含まれている必要があります。

## 13.8.1 論理名テーブルのディレクトリ

ディレクトリという2つの特殊な論理名テーブルが，論理名テーブル名のコンテナとして存在します。

- プロセス・ディレクトリ LNM$PROCESS_DIRECTORY

  プロセス・ディレクトリには，そのプロセスに対するすべてのプロセス固有テーブルの名前と自身のテーブル名が含まれます。各プロセスには，それ自身のプロセス固有ディレクトリがあります。

- システム・ディレクトリ LNM$SYSTEM_DIRECTORY

  システム・ディレクトリには，すべての共用可能テーブルの名前と自身のテーブル名が含まれます。 LNM$SYSTEM_DIRECTORY は，システムごとに1つしかありません。

これらのディレクトリには，テーブル名に反復的に変換する名前が含まれます。すべての論理名テーブル名と，テーブルに変換する論理名は，これらのディレクトリに保持されます。

論理名テーブルの親テーブルは，必ずしもディレクトリ・テーブルである必要はありません。つまり，この階層構造は論理名テーブル名の位置から明白です。

## 13.8.2 ディレクトリ・テーブルの構造の表示

論理名テーブルに対する論理名ディレクトリ・テーブルの関係を表示するには，次の例に示すように， SHOW LOGICAL/STRUCTURE コマンドを入力します。

    $ SHOW LOGICAL/STRUCTURE
    (LNM$PROCESS_DIRECTORY)
        (LNM$PROCESS_TABLE)
    (LNM$SYSTEM_DIRECTORY)
        (LNM$SYSTEM_TABLE)
        (LMF$LICENSE_TABLE)
        (LNM$CLUSTER_TABLE)
            (LNM$SYSCLUSTER_TABLE)
        (LNM$GROUP_000123)
        (LNM$JOB_824E98E0)
                .
                .
                .

この例では，各論理名テーブル・ディレクトリ内に常駐する論理名テーブル名を示します。またこれは， LNM$CLUSTER_TABLE と LNM$SYSCLUSTER_TABLE との関係も示します。

# 13.9 省略時設定の論理名テーブル

システム・ディレクトリとプロセス・ディレクトリ・テーブルを含む，エグゼクティブによって作成された省略時設定のテーブルを 表 13-1 に示します。

表 13-1 省略時設定の論理名テーブル
テーブル名 | 完全なテーブル名 | 論理名 | 説明
--- | --- | --- | ---
プロセス論理名テーブル
プロセス・ディレクトリ | LNM$PROCESS_DIRECTORY | (他の論理名なし) | プロセス固有論理名テーブル名とテーブル名に反復的に変換する名前の定義を含む。
プロセス・テーブル | LNM$PROCESS_TABLE | LNM$PROCESS | SYS$DISK および SYS$INPUT などのプロセス固有論理名を含む。
共用論理名テーブル
システム・ディレクトリ | LNM$SYSTEM_DIRECTORY | (他の論理名なし) | 共用可能論理名テーブルとテーブル名に反復的に変換する名前の定義を含む。
システム・テーブル | LNM$SYSTEM_TABLE | LNM$SYSTEM | システム内のすべてのプロセスに共用される名前を含む。 SYS$LIBRARY および SYS$SYSTEM など。
クラスタ単位システム・テーブル | LNM$SYSCLUSTER_TABLE | LNM$SYSCLUSTER | OpenVMS Clusterシステムのすべてのプロセスが共用する名前を含む。
クラスタ単位親テーブル | LNM$CLUSTER_TABLE | LNM$CLUSTER | LNM$SYSCLUSTER_TABLE を含む，すべてのクラスタ単位の論理名テーブルの親テーブル。
グループ・テーブル | LNM$GROUP_ gggggg 1 | LNM$GROUP | UICグループのすべてのプロセスが共用する名前を含む。
ジョブ・テーブル | LNM$JOB_ xxxxxxxx 2 | LNM$JOB | ジョブ・ツリーのすべてのプロセスが共用する名前を含む。 SYS$LOGIN および SYS$SCRATCH など。

1文字列 gggggg は，プロセスの UICグループ番号を含む6桁の8進数を表す。
2文字列 xxxxxxxx は，ジョブ情報ブロックのアドレスである8桁の16進数を表す。

## 13.9.1 プロセス論理名ディレクトリ

ログイン時にプロセス論理名ディレクトリ・テーブル LNM$PROCESS_DIRECTORY で作成されるプロセス固有論理名を 表 13-2 に示します。

表 13-2 プロセス論理名ディレクトリの省略時設定の論理名
名前 | 説明
--- | ---
LNM$GROUP | LNM$GROUP_ gggggg として定義されるグループ論理名。ここで ggggggはグループ番号を表す。 LNM$GROUP_ gggggg 1 は UICグループが使用する論理名テーブル。テーブル LNM$GROUP_ gggggg は，システム・ディレクトリ・テーブル内でカタログ化される。したがって，LNM$GROUP はグループの論理名テーブルの名前に反復的に変換する論理名である。
LNM$JOB | LNM$JOB_ xxxxxxxx として定義されるジョブ論理名。ここで xxxxxxxx 2 はそれぞれのジョブ・ツリーに固有の数値を表す。 LNM$JOB_ xxxxxxxx は，ジョブで使用する論理名テーブル。テーブル LNM$JOB_ xxxxxxxx は，システム・ディレクトリ・テーブル内でカタログ化される。したがって， LNM$JOB はジョブ論理名テーブルの名前に反復的に変換する論理名である。
LNM$PROCESS | プロセス論理名テーブルの名前である LNM$PROCESS_TABLEに反復的に変換するプロセス論理名。
LNM$PROCESS_DIRECTORY | プロセス・ディレクトリ論理名テーブルの名前。

1文字列 gggggg は，プロセスのUICグループ番号を含む6桁の8進数を表す。
2文字列 xxxxxxxx は，ジョブ情報ブロックのアドレスである8桁の16進数を表す。

## 13.9.2 プロセス論理名テーブル

システム上のすべてのプロセスには， LNM$PROCESS_TABLE という名前のプロセス論理名テーブルがあります。プロセス・テーブルにある名前を使用できるのは，そのプロセスとそれに従属するサブプロセスだけです。ログイン時に，システムはプロセスに対する論理名を作成し，それをそのプロセス・テーブルに配置します。

名前 LNM$PROCESS を通じて間接的に LNM$PROCESS_TABLE を参照することができます。この間接参照により， LNM$PROCESS を複数の等価名として再定義して，次の例で示すようにその中に各自のテーブルを 1つ以上含めることができるようになります。

    $CREATE/NAME_TABLE APPLICATION_NAMES
    $DEFINE/TAB=LNM$PROCESS_DIRECTORY LNM$PROCESS APPLICATION_NAMES, LNM$PROCESS_TABLE

省略時設定により，プロセス・テーブルには 表 13_3 に示す論理名が含まれます。これらの論理名 SYS$INPUT， SYS$OUTPUT，SYS$ERROR，SYS$COMMAND は，プロセスパーマネント・ファイル (プロセスの処理中にオープンしたままのファイル) を参照します。プロセスパーマネント・ファイルについての詳細は， 第 13.13 節 を参照してください。

表 13-3 プロセス論理名テーブルの省略時設定の論理名
名前 | 説明
--- | ---
SYS$COMMAND | DCLが入力を読み込む初期ファイル (通常は使用するターミナル)。 DCLが入力を読み込むファイルは，入力ストリームと呼ぶ。コマンド・インタプリタは SYS$COMMAND を使用して元の入力ストリームを "記憶" しておく。
SYS$DISK | ログイン時に設定された，または SET DEFAULT コマンドによって変更された省略時設定の装置。
SYS$ERROR | DCLが，警告，エラー，および重大なエラーによって生成されたエラー・メッセージを書き込む省略時設定の装置またはファイル。
SYS$INPUT | DCLが入力を読み込む省略時設定のファイル。
SYS$NET | DECnet for OpenVMS タスク間通信のターゲット・プロセスを起動するソース・プロセス。ターゲット・プロセスによってオープンされると，SYS$NET はプロセスがその相手とデータを交換できる論理リンクを表す。 SYS$NET が定義されるのは，タスク間通信の期間中に限られる。
SYS$OUTPUT | DCLが出力を書き込む省略時設定のファイル (通常は使用するターミナル)。 DCLが出力を書き込むファイルは，出力ストリームと呼ぶ。
TT | ターミナルに対する省略時設定の装置名。

## 13.9.3 システム論理名ディレクトリ

システム・ディレクトリ・テーブル LNM$SYSTEM_DIRECTORYに含まれる省略時設定のシステム論理名を 表 13-4 に示します。

表 13-4 システム論理名ディレクトリの省略時設定の論理名
名前 | 説明
--- | ---
LNM$CLUSTER | LNM$CLUSTER_TABLE に反復的に変換するクラスタ単位の親テーブルの論理名。
LNM$DCL_LOGICAL | LNM$FILE_DEV として定義されるDCL論理名。 LNM$DCL_LOGICALは， SHOW LOGICAL コマンド，SHOW TRANSLATIONコマンド，F$TRNLNM レキシカル関数によって検索され表示される論理名テーブルのリストに反復的に変換する。省略時設定により，これらのコマンドは，プロセス，ジョブ，グループ，システム，およびクラスタ単位のシステム論理名テーブルをこの順に検索して表示する。
LNM$DIRECTORIES | LNM$PROCESS_DIRECTORY および LNM$SYSTEM_DIRECTORY として定義されるディレクトリ論理名。
LNM$FILE_DEV | ファイル指定を処理する場合にシステムが検索する論理名テーブルのリストとして定義される検索リストの論理名。 LNM$PROCESS，LNM$JOB，LNM$GROUP， LNM$SYSTEMとして定義され，システムは，プロセス，ジョブ，グループ，システム，およびクラスタ単位のシステム論理名テーブルをこの順に検索する。
LNM$JOB | LNM$JOB_ xxxxxxxx 1 として定義されるジョブ論理名。
LNM$GROUP | グループ・テーブル LNM$GROUP_ gggggg 2 に定義されるグループ論理名。
LNM$PERMANENT_MAILBOX | LNM$SYSTEM として定義されるパーマネント・メールボックス論理名。パーマネント・メールボックスに関連付けられた論理名は，論理名 LNM$PERMANENT_MAILBOX が反復して変換する論理名テーブルに入力される。
LNM$SYSCLUSTER | LNM$SYSCLUSTER_TABLE に反復的に変換するクラスタ単位のシステム論理名テーブルの論理名。
LNM$SYSTEM | LNM$SYSTEM_TABLE，LNM$SYSCLUSTER に反復して変換するシステム論理名テーブル名。
LNM$TEMPORARY_MAILBOX | LNM$JOB として定義される一時メールボックス論理名。一時メールボックスに関連付けられた論理名は，論理名 LNM$TEMPORARY_MAILBOX が反復して変換する論理名テーブルに入力される。

1文字列 gggggg は，プロセスのUICグループ番号を含む6桁の8進数を表す。
2文字列 xxxxxxxx は，ジョブ情報ブロックのアドレスである8桁の16進数を表す。

## 13.9.4 共用論理名テーブル

ここでは，次の省略時設定の共用論理名テーブルについて説明します。

- クラスタ単位のシステム・テーブル

- クラスタ単位の親テーブル

- グループ・テーブル

- ジョブ・テーブル

- システム・テーブル

クラスタ単位のシステム・テーブル LNM$SYSCLUSTER_TABLE

LNM$SYSCLUSTER_TABLE は，クラスタ単位のシステム論理名テーブルの名前です。このテーブルには，クラスタのすべてのユーザが使用できる論理名が含まれています。

名前 LNM$SYSCLUSTER を通じて間接的に LNM$SYSCLUSTER_TABLEを参照することができます。間接参照により， LNM$SYSCLUSTER を複数の等価名として再定義して，その中に各自のテーブルを含めることができます。

クラスタ単位の親テーブル LNM$CLUSTER_TABLE

LNM$CLUSTER_TABLE は， LNM$SYSCLUSTER_TABLE を含む，すべてのクラスタ単位の論理名テーブルの親テーブルです。論理名 LNM$CLUSTER を使用してこれを参照します。

グループ・テーブル LNM$GROUP_gggggg

それぞれのグループ・テーブルの名前は LNM$GROUP_gggggg です (gggggg はユーザIDコード [UIC] グループ番号を表します)。このテーブルにある名前は，同じUICグループ番号を持つすべてのユーザが使用できます。システム上のすべてのグループには，対応するグループ論理名テーブルがあります。

名前 LNM$GROUP を通じて間接的に LNM$GROUP_gggggg を参照することができます。間接参照により， LNM$GROUP_gggggg を複数の等価名として再定義して，その中に各自のテーブルを含めることができます。またこれは，自分のUICグループ番号を記憶しておく必要を省き，最も新しく定義されたテーブルを必ず使用できるようにします。

ジョブ・テーブル LNM$JOB_xxxxxxxx

それぞれのジョブ・テーブルの名前は LNM$JOB_xxxxxxxx です (xxxxxxxx はジョブ・ツリーに対してシステムが定義したジョブ情報ブロック [JIB] アドレスを表します)。

ジョブ・テーブルには，ジョブ・ツリー，つまりプロセスとそのサブプロセスにあるすべてのプロセスで使用できる論理名が含まれます。システムには各ジョブ・ツリーに対して1つのジョブ・テーブルがあります。ジョブ・テーブルは共用可能なので，ジョブ・ツリー内のすべてのプロセスがアクセスできます。

名前 LNM$JOB を通じて間接的に LNM$JOB_xxxxxxxx を参照することができます。この間接参照により， LNM$JOB を複数の等価名として再定義して，その中に各自のテーブルを含めることができます。さらに， LNM$JOB を使用すると，JIBアドレスを見つける必要がなく，最も新しく定義されたテーブルを必ず使用できるようになります。

システムは，マウントされたディスク，マウントされたテープ，一時メールボックスに対して作成された論理名をジョブ論理名テーブルに配置します。さらに，システムは次の論理名を作成します。

- SYS$LOGIN

  ログイン時の省略時設定の装置およびディレクトリ。

- SYS$LOGIN_DEVICE

  ログイン時の省略時設定の装置。

- SYS$REM_ID

  DECnet for OpenVMS ネットワーク接続を通じて開始されたジョブに対して，ジョブが発信されたリモート・ノード上のプロセスのID。OpenVMS オペレーティング・システムでは，代理ログインが使用可能な場合，このIDがプロセスのユーザ名です。代理ログインが使用できない場合には，これがプロセスID (PID) 番号です

  (代理アカウントへの代理ログインにより，ユーザはアクセス制御文字列を指定せずにネットワーク上でファイルにアクセスできます。)

- SYS$REM_NODE

  DECnet for OpenVMS ネットワーク接続を通じて開始されたジョブに対して，ジョブが発信されたリモート・ノードの名前。

- SYS$SCRATCH

  一時ファイルが書き込まれる省略時設定の装置およびディレクトリ。

システム・テーブル LNM$SYSTEM_TABLE

システム・テーブルの名前は LNM$SYSTEM_TABLE です。システム・テーブルには，システム・レベルでシステムのすべてのユーザが使用できる論理名が含まれます。

システム・テーブルは通常，LNM$SYSTEM を通じて間接的に参照することができ，これは検索リスト LNM$SYSTEM_TABLE， LNM$SYSCLUSTERとして定義されます。 LNM$SYSTEM を使用して，このノードにローカルなシステム名と，クラスタ上のすべてのノードに共通なシステム名を含めることができます。

システムの起動時にシステム・テーブルで自動的に定義される論理名を 表 13-5 に示します。

表 13-5 システム論理名テーブルの省略時設定の論理名
名前 | 説明 | 省略時アドレス
--- | --- | ---
DBG$INPUT | プロセス・レベルで SYS$INPUT に等しいと定義される， OpenVMS Debuggerの省略時入力ストリーム。 | 適用せず
DBG$OUTPUT | プロセス・レベルでSYS$OUTPUTに等しいと定義される， OpenVMS Debuggerの省略時出力ストリーム。 | 適用せず
SYS$COMMON | SYS$SYSDEVICE: [SYS n.SYSCOMMON.]の共通部分に対する装置およびディレクトリ名。 | ここで nはプロセッサのルート・ディレクトリ番号。
SYS$ERRORLOG | エラー・ログ・データ・ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSERR]
SYS$EXAMPLES | システム例の装置およびディレクトリ名。 | SYS$SYSROOT:[SYSHLP.EXAMPLES]
SYS$HELP | システム・ヘルプ・ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSHLP]
SYS$INSTRUCTION | システム命令データ・ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSCBI]
SYS$LIBRARY | システム・ライブラリの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSLIB]
SYS$LOADABLE_IMAGES | オペレーティング・システムのエグゼクティブでロード可能なイメージ，デバイス・ドライバ，その他エグゼクティブでロードされたコードの装置およびディレクトリ。 | SYS$SYSROOT:[SYS$LDR]
SYS$MAINTENANCE | システム保守ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSMAINT]
SYS$MANAGER | システム・マネージャ・ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSMGR]
SYS$MESSAGE | システム・メッセージ・ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSMSG]
SYS$NODE | DECnet for OpenVMS がシステム上でアクティブであり，ネットワークに接続中の場合，ローカル・システムに対するネットワーク・ノード名。 | 適用せず
SYS$PROCDMP | イメージ・ダンプが書き込まれるディレクトリ (ユーザが設定)。 | 省略時の設定なし
SYS$SHARE | システム共用イメージのの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSLIB]
SYS$SPECIFIC | SYS$SYSDEVICE のノード固有部分に対する装置およびディレクトリ名。 | SYS$SYSDEVICE:[SYS n.]，ここで nはプロセッサのルート・ディレクトリ番号。
SYS$STARTUP | システム起動ファイルの装置およびディレクトリ名。 | まず SYS$SYSROOT:[SYS$STARTUP] ，次に SYS$MANAGER を指す検索リスト。
SYS$SYSDEVICE | システム・ディレクトリを含むシステム・ディスク。 | 通常は SYS$DISK
SYS$SYSROOT | システム・ディレクトリに対する装置およびディレクトリ名。 | まず SYS$SYSDEVICE:[SYS n.]( n はプロセッサのルート・ディレクトリ番号)，次に SYS$COMMON を指す検索リスト。
SYS$SYSTEM | オペレーティング・システムのプログラムとプロシージャの装置およびディレクトリ。 | SYS$SYSROOT:[SYSEXE]
SYS$TEST | 環境設定テスト・パッケージ (UETP) ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSTEST]
SYS$UPDATE | システム更新ファイルの装置およびディレクトリ名。 | SYS$SYSROOT:[SYSUPD]

前へ | 次へ | 目次 | 索引