4.NIS による運用ファイルの管理
運用に関するいくつかのファイルは NIS (Network Information Service) により集中管理しています. NIS の master server は, ccws13です. NIS master server の負荷が集中することを避けるために NIS slave server を3台置きました.
Table-7 に NIS によって管理するファイルの一覧を示します. NIS client でのファイル内容の参照は,mapname あるいは nickname をキーワードとして ypcat コマンドを入力して行ないます. 例えば, passwd ファイルの内容を表示するには, 以下のコマンドを入力します.
passwd 関係のコマンドを, 少し説明します.
NIS client でのパスワードの変更
Master server でのパスワードの変更. ただし, すぐには反映されない.
シェルの変更. Master server で行う. ただし, すぐには反映されない.
% chsh <username> /bin/tcsh
% chsh <username> /bin/csh
NIS map からの情報の抽出
% pwget -n <username> /etc/passwd から情報の抽出 (作成: HP)
% grget -n <groupname> /etc/group から情報の抽出 (作成: HP)
ユーザが passwd の情報を変更した時に, すぐに反映されないと不便です. テスト的に ypnew というコマンドを用意して, ユーザが ypmake を実行できるようにしています. このコマンドは ypmake と同様に master server で入力します.
NIS server の hostname は, 次のコマンドで表示できます.
Table-7 NIS files and mapname
-----------------------------------------------------------------------
filename mapname/nickname
-----------------------------------------------------------------------
/etc/passwd passwd
/etc/group group
/etc/hosts hosts
/etc/networks networks
/etc/protocols protocol
/etc/services services
/etc/rpc rpc
/etc/ethers ethers
/etc/netgroup netgroup
/etc/auto.master/NIS/auto.<hostname> auto.<hostname>
-----------------------------------------------------------------------
5. CERN ライブラリ (CERNlib)
5.1 CERNlib
KEK でデータ解析に使う WS では, CERNlib が動くことが必須条件です. CERNlib の中には HP 用の binary が含まれていて, H9000 ではそれが動きます. H3050 用には, 移植をおこないました. 現在, H3050 用として Table-8 に示すバージョンを入れてあります.
ライブラリをリンクするためには, 同じオプション (Appendix-7 参照) で compile する必要があります. CERNlib のそれぞれのバージョンを make した時のオプションは lib/README に書いてあります.
Table-8 CERNlib on H3050
-----------------------------------------------------------------------------
vsersion directory comments
-----------------------------------------------------------------------------
v94a /cern/94a/bin H3050RX の OFORT77 v01-05 で make した binary.
/cern/94a/bin_hp CERN で make した HP 用の binary.
Shared library を使用していない binary は動きます.
/cern/94a/lib H3050RX の OFORT77 v01-05 で make した lib.
-----------------------------------------------------------------------------
v92b /cern/92b/bin_0104 H3050RX の OFORT77 v01-04 で make した binary.
/cern/92b/lib_0104 H3050RX の OFORT77 v01-04 で make した lib.
/cern/92b/bin H3050RX の OFORT77 v01-05 で make した binary.
/cern/92b/lib H3050RX の OFORT77 v01-05 で make した lib.
-----------------------------------------------------------------------------
5.2 CERNlib の H3050 への移植
CERNlib の中に含まれる HP用のソースプログラムを基本にして, 一部 Sun 用のソースプログラムを利用して行ないました.
H3050 の Fortran である OFORT77 は規格にかなり忠実な仕様です. しかし, WS の Fortran では,いわゆる「業界標準」という仕様が大勢を占めています. 移植のために以下の, OFORT77 でサポートしていない業界標準の部分の対策が必要でした.
a) FORMAT 文より短い ascii データの入力が OFORT77 ではできませんでした. この点は OFORT77 でサポートして頂きました.
b) FORMAT 文 での $ 形, Q 形編集記述子は, CERNlib のソースプログラムを修正しました.
c) 有効範囲をはずれた数値の代入の扱いは, 有効範囲に入るように CERNlib のソースプログラムを修正しました.
d) 8進定数は OFORT77 ではサポートされていないので, 16進定数を使っている Sun 用のソースプログラムを利用しました. 16進定数の表現方法が異なっているので, 修正しました.
e) OFORT77 では, ファイルの open について, VOS3 との互換性を重視しているために, 一般的な文字データや binary data を扱うようになっていない部分があります. この点について, 日立は徐々に「業界標準」に合わせきています. そのつど CERNlib のソースプログラムを修正しました.
上記の a) 〜 d) の4項目は, OFORT77 の Version01-05 でオプションとしてサポートされましたので, 今後はソースプログラムを修正しなくてもよくなりました. e) の binary data の扱いについては 1995年 1月発行予定の Version01-07 でサポートされる予定になっています. 詳細は Appendix-6 を参照して下さい.
CERNlib は Fortran と C を使って作成されています. Fortran プログラムと C プログラムとのインターフェスの部分で, 下記の対策をしました.
a) OFORT77 では Fortran プログラムと C プログラムとのインターフェスに, 特別の関数を経由していました. この点は特別の関数を呼ばなくとも, 結合ができるようにして頂きました.
b) 業界標準では language mixing のために, Fortran で external name に "_" を付加しています. CERNlib もそれを前提に書かれています. OFORT77 では "_" の付加をサポートしていないので, CERNlib のソースプログラムを修正しました.
c) 最も苦労したのは, Fortran プログラムと C プログラムを交互に call している部分です.
Fortran プログラムから C プログラムを経由して, また Fortran プログラムを呼んでいる部分です. これは各社各様に処理していて, 業界標準ができていないようです. CERNlib のソースプログラムを修正しました.
上記の a) および b) の2項目は, OFORT77 の Version01-05 でオプションとしてサポートされました.
OFORT77 固有の問題もいくつかありました. CERNlib のソースプログラムを修正しました.
a) コマンドの引数を拾うルーチンは, 業界標準ができていません. HP Fortran では igetarg ですが, OFORT77 では getarg なので, ソースプログラムを書き換えました.
b) CERNlib のサブルーチンと OFORT77 の組み込み関数が同一名称 (quad) なので, ソースプログラムを修正しました.
CERNlib には, 規格外の coding も数箇所あり, OFORT77 ではエラーになりました. これは CERNlibのソースプログラムを修正しました. CERNlib の v94a では v92b と比べて, 一部は改善されています.