-----AIX-FAQ V3.30j-----
これは1994/07/12付けのAIX-FAQ Ver3.30を有志が翻訳したのです。
RS6000ユーザーMLで松原@日本 IBM 東海 SEさんが
発起人となりました。
訳したメンバーを挙げておきます。
Chap.1, 7 ... 松原@日本 IBM 東海 SE
Chap.2 ... 古畑@日本 IBM 東京基礎研
3.00 - 3.02 ... 林@東芝
3.03 - 3.04 ... 矢吹@ SRA
4.01 - 4.03 ... 佐藤@日本原子力研究所
4.04 - 4.18 ... 鈴木@菱化システム
4.19 - 4.26 ... 石井@三菱電機
Chap.5 ... 土井@オージス総研
Chap.6 ... 古畑@日本 IBM 東京基礎研
なお本文中の内容およびプログラムやシェルスクリプトについては、
作者/訳者共に一切の保証は致しません。
あらかじめ御了承下さい。
1.000: AIXオペレーティング・システムっていったい何?
1.001: Unix も AIX も知らないんだけど、どこで情報を探せばいいの?
1.002: Object Database とは何?
1.003: うるさいエラーメッセージが出ないようにするには?
1.004: 私のAIXや他の製品のリリースは何?
1.100: なんでSMIT を勉強しなくちゃいけないのか?
1.101: smit で走っている男性を消すにはどうするか?
1.102: 他のマシンから、/etc/passwd と /etc/group ファイルを持ってくるにはどうしたらいいの?
1.103: utmpのおそうじ, who コマンド、それにアカウンティングの問題
1.104: root ファイルシステムに fsck をかけるには?
1.105: /usr をアンマウントして fsck をかけるには?
1.106: /usr を小さくするには?
1.107: ファイルシステムを 2GB より大きくするには?
1.108: ユーザーあたりの最大プロセス数のようなシステムのパラメータを参照、変更するには?
1.109: hd6上のデフォルトのページング・スペースを縮めるには?
1.110: swapper が大量にページングスペースを使ってるみたいだけど、何故?
1.111: ページングスペースはどれぐらい必要なの?
1.112: フロッピー・ディスクをファイルシステムとしてマウントするには?
1.113: コミットしてしまった lpp を削除するには?
1.114: "install update" をしたのちに(訳注:ディスク)容量を回復するにはどうするか?
1.115: AIXではログファイルはどこにある?
1.116: ftpがファイルへアクセスする情報をどのようにしてログできるか。
1.117: iノード番号からファイルを探すには?
1.118: ポストスクリプト(訳注:プリンタ)のアカウンティングをセットアップするには?
1.119: 3.2のブートディスケットはどのようにして作るのですか。
1.120: パフォーマンス監視ツールはどこにある?
1.121: どの仮想プリンタがプリント・キューが使っているかを知るには?
1.122: srcmstr を二つ動かしても役に立たないか?
1.123: 物理的ポートに関連した tty 名をセットするには?
1.124: システムを複製するために mksysb をどのように使うのか?
1.125: mksysb の timestamp はどのように保持するのでしょう。
1.126: マシンタイプはどうしたらわかるのでしょう。
1.127: 3.2.5 へのアップデート
1.128: AIX の修正戦略
1.129: パスワードは8文字までですか?
1.130: pty の数を64より多くできますか。
1.131: Sendmail と xterm についての CERT advisories について
1.132: 存在しない物理ボリュームをどのように削除すればよいですか?
1.200: テープへのバックアップについて
1.201: リモートにバックアップするには?
1.202: 複数のディスクにまたがるボリュームグループをバックアップするには?
1.203: 一個の8mmテープに複数のバックアップをとるには?
1.204: ネットワーク経由でテープをコピーするには?
1.205: テープブロックが0とはどういうことですか。
1.206: ハングしたテープ装置のリセットについて
1.207: mksysb テープを tar でどのように読み取れるのですか。
1.300: メモリーマネージメントシステムについての情報
1.301: ps のメモリについての表示はどれぐらい信用できるの?
1.400: シェルのプロンプトにいろいろな情報を入れたいんだけど?
1.401: ksh のコマンド行編集機能を emacs モードにするには?
1.403: ls するとコアダンプする。
1.404: InfoExplorer の ASCII キーバインディング
1.405: 新しいマニュアルページをシステムに加えるには?
1.500: X11のリリース番号はどうすればわかるのか。
1.501: ctrl-alt-backspace を押してもXセッションが止まらないよ
1.502: HFTコンソール用の termcap/terminfo のソースはどこにある?
1.503: どうやったら PostScriptのファイルを見ることができるのか?
1.504: unix:0 と `hostname`:0
1.505: aixterm をつなげる VT100キーについて
1.506: 過度に CPU を使わないスクリーンセイバーはありますか。
1.507: X セッションの上で利用可能な色がリストされた物はどこにありますか?
1.600: named が良く死ぬんだけど?
1.601: AIXシステムのイーサーネットパケットトレースするには?
1.602: ブート時に automount を起動する正式な方法は?
1.603: ttyポートを dial-in と dial-out の両方に使うには?
1.604: ネットワークを通して、ディレクトリツリー全体を移動また
1.605: ping できないホストに電子メールを送るには?
1.606: diulup SLIP を設定するには?
1.607: DCEはどこで論議されているのですか。
1.608: どのようにして /var/spool/mail をマウントできますか。
1.609: 速い getty の発生について
1.610: AIXは圧縮されたSLIP(CSLIP)をサポートしていますか。
1.611: AIXシステムで anonymous ftp はどのようにセットアップ
1.900: SCSI-1 と SCSI-2 の相互可動性ってなに?
1.901: キーボードを抜いた後、また元どおり付けるには?
1.902: pcsim, DOS エミュレータをセットアップするには?
1.903: AIX と DOS ディスケットの間でファイルを交換するには?
2.00: C/C++
2.01: alloca がうまく動かない
2.02: BSD のプログラムをコンパイルするには?
2.03: リンカーは、今まで使ってのとは大分違うの?
2.04: /lib/libc.a の内容を共有しないプログラムの作り方は?
2.05: 自分用の共有メモリ利用のライブラリはどうやって作るの?
2.06: リンクが変なエラーメッセージで失敗するのですが, なぜ?
2.07: malloc について
2.08: xlc は 'extern char *strcpy()' を受け付けないのか?
2.09: 'Parameter list cannot contain fewer ....' というエラーがでますが..
2.10: '(sometype *) somepointer = something' を受け付けないのは?
2.11: その他のエラーについて,
2.13: Curses
2.14: link の速度を向上させる方法
2.15: deadbeef とは?
2.16: AIX 3.2 での静的なリンクの正しい方法
2.17: ライブラリの中の export されているもののリストを得る方法
2.18: imake, makedepend がないのですが...
2.19: binary が使っている共有メモリを見つける方法は?
3.00: Fortran とその他のコンパイラ
3.01: Fortran と C のコードを併用した時にうまくゆきませんでした。 どうしてですか?
3.02: どうすれば Fortran のライブラリを静的にバインドし、 かつ C のライブラリを動的にバインドすることができますか?
3.03: ある数が NaN かどうかは、どうやって調べれば良いでしょうか?
3.04: IEEE 浮動小数点数演算規格についての文献
4.00: GNUとパブリックドメインソフト
4.01: ソースコードを探すにはどうすればいいか?
4.02: FTPサイトは有りますか?
4.03: 一般的なヒント
4.04: GNU emacs
4.05: GNU C
4.06: Gostscript
4.07: Tex
4.08: perl
4.09: X-windows
4.10: bash
4.11: Elm
4.12: Oberon2.2
4.13: kermit
4.14: Gnu dbm
4.15: tcsh
4.16: Kyoto Common Lisp
4.17: Tcl/Tk
4.18: Expect
4.19: CDから入手できるパブリックドメインソフトウェア
4.20: Andrew Toolkit
4.21: sudo
4.22: Flexfax とその他のfaxソフトウェア
4.23: lsof
4.24: popper
4.26: mpeg link errors version 2.0
5.00: サードパーティ製品
5.02: 固定ディスク/テープ/SCSI
5.03: メモリー
5.04: その他
5.05: C++ コンパイラ
5.06: メモリー・リーク・ディテクタ
5.07: PPP
5.08: グラフィック・アダプタ
6.00: その他
6.01: e-mail を使ったサポートについて
6.02: AIX に関する情報を得るFAX番号
6.03: IBM のgopher, WWW, anonymous FTP (6/10/94 での状況)
6.04: RS232 接続に関するヒント
6.05: RS/6000 関連の出版物
6.06: 略語について
6.07: この FAQ の入手方法 (メールもしくはftp)
6.08: この FAQ のハイパーテキスト版
6.09: ツールに関して御意見がある方の送り先.
6.10: comp.unix.aix のWWWで検索可能なアーカイブのリスト
7.00: 寄稿
1.000: AIXオペレーティング・システムっていったい何?
これに答えるには /usr/lpp/bos の下にあるテキストファイルを読む
のが最も良いでしょう。README ファイルには一般的な情報が、
bsdadm ファイルにはBSD そして/または SystemV を知っている人に
は役に立つ情報が書かれています。
RT PC用の最新リリースは 2.2.1 です。PS/2 と Intelアーキテクチャ
マシン用の最新リリースは1.3で、PS/2用にだけ、1.2.1があります。
RS/6000 用には、3.1 と 3.2 の二つのメジャーなレベルがあり、さ
らに中間のレベルがたくさんあります。IBM は 3.1 のサポートをや
めました。
目次へ
1.001: Unix も AIX も知らないんだけど、どこで情報を探せばいいの?
comp.unix.aixに投稿された質問を見るとAIXがUnix初体験という人が
たくさんいます。あなたがそうなら、comp.unix 下の他のニュースグ
ループ、特にcomp.unix.questions(基礎的な質問)や
comp.unix.wizards (高度な質問)を読むことをお勧めします。この二
つのニュースグループには共通の FAQ が投稿されています。
C言語プログラミングに関しての情報が欲しければ、comp.lang.c や
comp.std.cを試してみましょう。後者は ANSI C 関連の話題が中心で
ある。comp.lang.c にはFAQ が投稿されています。
目次へ
1.002: Object Database とは何?
Object Database Manager, ODM は、/etc/objrepos,
/usr/lib/objrepos, /usr/share/lib/objrepos に格納されていて、
AIX での全てのシステム管理情報の貯蔵法です。多くの場合、SMIT
または SMITが呼び出すコマンド(1.100参照)だけがODM を変更すべき
です。
ODM の中を覗く無害な方法は、odmget <クラス> を使うことです。
ここで<クラス>は /etc/objrepos の下のファイルの一つです。
もっと興味のあるユーザーは、ODM エディタ、odme を使って ODM を
詳細に探検することも出来ます。ODMを変更するのは、自分が何をやっ
ているのかを正確に理解しているときにだけにすべきでしょう。
目次へ
1.003: うるさいエラーメッセージが出ないようにするには?
Unixコマンドから発せられるメッセージの多くは、様々な言語で利用
可能です。これは、環境変数 LANG でコントロールされるますが、デ
フォルトは、合衆国(US)での英語を意味する、En_US です。すべて
のデフォルトメッセージには、以下の例のように番号がついてます。
$ cat no-such-file
cat: 0652-050 Cannot open no-such-file.
Unix的な簡潔なエラーメッセージが良ければ、環境変数LANGをCにすると
次のようになります。
$ cat no-such-file
cat: Cannot open no-such-file.
目次へ
1.004: 私のAIXや他の製品のリリースは何?
'lslpp -h bos.obj'というコマンドで BOS, Basic Operating System
を参照する全ての行が表示されます。たとえば、
Option Name State Event Date Release User Name
-------------------- ---------- ---------- --------- --------------- ----------
bos.obj INACTIVE COMMIT 02/03/90 03.01.0000.0000 root
INACTIVE APPLY 06/25/90 03.01.0000.0001 root
INACTIVE COMMIT 06/25/90 03.01.0000.0001 root
INACTIVE APPLY 11/16/90 03.01.0002.0015 root
INACTIVE COMMIT 11/16/90 03.01.0002.0015 root
ACTIVE COMMIT 05/07/91 03.01.0005.0012 root
となり、BOS lpp のヒストリーが分かります。最後の行の、4カラム目を
みるとこのリリースが 3.1.5 であることがわかります。
インストールされたもの全てについてのリストをみるには lslpp -l '
*' を使い、ある特定のlppのヒストリーを得るには上の例のように
lslpp に -hオプションをつけて使います。
現時点では、3.1.5 がベースのリリースと考えられます。少なくともこ
のレベルを使うべきである。いろいろ中間的なのはあるが、正式なアッ
プデートは2010です。ptfアップデートのリクエストを出せばこれ
を貰うことになるはずである。3.1.5以前のレベルを使っているなら、
最初に3.1.5にした後、2010を適用しなくてはならません。SNAを使って
いるならSNA Quality Refresh アップデートを要求すべきです。
AIX3.2の場合には、全くやり方が違います。3.2.0, 3.2.1, 3.2.2,
3.2.3,それに3.2.3拡張サポートといったリリースについての問題に
行き当たるでしょう。このうちどのリリースを使っているかを知る絶
対的な方法はありません。なぜなら、3.2.1以降のリリースは、単に
3.2.0 に PTF のセットをいくつか付加したものだからです。そして
選択的に修正を適用することができるので、ちょっとずつ違ったたく
さんの種類の 3.2 が使われているでしょう。この数字のゲームの助
けになるような有益な FAX 情報を要求するためにセクション6も参照。
AIX 3.2.4 以降では、この混乱の解決を試みています。OS はサブシス
テム全体に対して update を適用できるように(訳注:幾つかの)サブ
システムに分割されています。lslpp は新しいオプションをサポートし
ている;
'lslpp -m bos.obj'
を用いる事で、どのレベルにあるかを表示し、稼働しているシステム
を update します。差し迫った必要が無いならば(たとえば 3.2.3 以上
では、サポートされないアプリケーションなど)このレベルまでアッ
プデートする事をお勧めします。1.128 も参照の事。
目次へ
1.100: なんでSMIT を勉強しなくちゃいけないのか?
Unix のシステムプログラミングなら良く知っている、なんでSMIT を
勉強しなくちゃいけないのか?
SMIT を使うことは、おそらくあなたが普段やっているシステム管理
の方法とは非常に異なっているでしょう。しかし、長い目で見れば大
変便利であることが分かると思います。いくつかの点で、特に
TCP/IP, NFS等に関しては、「普通」の方法で管理したいでしょうが、
しかし不幸にもどういう時に「普通」の方法が有効なのか正確に知る
ことは困難です。常に SMIT を使うのが、たとえ新しいツールを勉強
しなくてはいけないとはいっても、たぶん最善の道です。
SMITが実際にやっていることは、システム管理の各部分に対応してい
るたくさんのツールを呼び出すことです。呼び出されたコマンドと
その出力は各自のホーム・ディレクトリの smit.script と smit.log
というファイルに書き込まれます。smit.script を眺めると、システム
管理の勉強になるでしょう。
目次へ
1.101: smit で走っている男性を消すにはどうするか?
smitty を使って、標準 curses バージョンで動かすか、あなたの
~/.kshrc ファイルに alias smit="smit -C" と加えてください。
目次へ
1.102: 他のマシンから、/etc/passwd と /etc/group ファイルを持ってくるにはどうしたらいいの?
usrchk と pwdchk(/etc/passwd)とgrpchk(/etc/group)コマンドを実
行してAIXの password/group 管理法に合わせること。
目次へ
1.103: utmpのおそうじ, who コマンド、それにアカウンティングの問題
From: fritz@scipp.UCSC.EDU (Frederick Staats)
これは3.2上で X11R5 の xterm を使うときに関係します。
X11R5 の mit/clients/xterm/main.c の最初に以下の行を加えます。
#ifdef AIXV3
#define USE_SYSV_UTMP
#define HAS_UTMP_UT_HOST
#define WTMP_FILENAME "/var/adm/wtmp"
#endif
これで utmp の問題は解決されます。Xのセッションを wtmp ファイル
に記録したければ、Imakefile で -DWTMP を定義し、WTMP_FILENAME
が正しい場所をさしている事を確認すること。
jfh@rpp386.cactus.org(John F. Haugh)による次のプログラムをroot
の権限でバックグラウンドで走らせれば、utmp ファイルをきれいに
してくれます。
#include
#include
#include
main ()
{
int fd;
struct utmp utmp;
while (1) {
if ((fd = open ("/etc/utmp", O_RDWR)) < 0)
exit (1);
while (read (fd, &utmp, sizeof utmp) == sizeof utmp) {
if (utmp.ut_type == USER_PROCESS &&
kill (utmp.ut_pid, 0) != 0) {
lseek (fd, - (long) sizeof utmp, 1);
utmp.ut_type = DEAD_PROCESS;
write (fd, &utmp, sizeof utmp);
}
}
close (fd);
sleep (60);
}
}
comp.sources.unix volume 25, issue 96 に、David
W.Sanderson(dws@cs.wisc.edu)による、AIX3.1でも動作する、別の
utmpお掃除プログラムが投稿されています。
目次へ
1.104: root ファイルシステムに fsck をかけるには?
fsck はメンテナンス・モードまたはマウントされているファイルシ
ステムにたいしてかけることもできます。
メンテナンス・モードで root ファイルシステムに fsck をかける
には以下のようにします。
1. ディスケットから boot する。
2. メンテナンスモードを選択する。
3. /etc/continue hdisk0 exit を実行する(bootディスクが
hdisk0でなかったらhdisk0に置き換える)。
4. fsck /dev/hd4
目次へ
1.105: /usr をアンマウントして fsck をかけるには?
From: accapadi@mathew.austin.ibm.com (Matt Accapadi)
これは3.2 の場合の話である。
/usr を fsck するためにはアンマウントする必要があります。しかし、
/usrは、/bin が /usr/bin にシンボリックリンクされているために、
アンマウントできません。また、/etc/fsck も /usr/sbin/fsck にシン
ボリックリンクされています。
これを回避するためには、ブート/メンテナンス・ディスケットから
boot し、メンテナンスモードに入り、通常の"getrootfs hdisk0"の
代わりに"getrootfs hdisk0 sh" を実行します。hdisk0 は boot ディ
スクの名前です。それから、"fsck /dev/hd2" を実行します。
目次へ
1.106: /usr を小さくするには?
From: mike@bria.UUCP (Michael Stefanik) and Richard Hasting
AIX3.1の場合
------------
1) /usr のバックアップを取ります。
find /usr -print | backup -ivf /dev/rmt0
rmt0 のところには適当なテープデバイスをいれます。
2) シャットダウンしてメンテナンスモードに入ります。
shutdown -Fm
3) export LANG=C
4) /usr のファイルシステムと論理ボリュームを消します。dspmsg コマ
ンドが見つからない、というエラーメッセージは無視すします。
umount /usr
rmfs /usr
5) hd2 という新しい論理ボリュームを作り、rootvg に希望の大きさ
で入れます。
mklv -yhd2 -a'e' rootvg NNN
NNN は 4MBのパーティションの数である。
6) /dev/hd2 にファイルシステムを作ります。
crfs -vjfs -dhd2 -m'/usr' -Ayes -p'rw'
7) 新しい /usr ファイルシステムをマウントし、チェックします。
/etc/mount /usr
df -v
8) テープから restore します。そうしないと、rebootできません。
restore -xvf/dev/rmt0
9) sync して reboot します。/usr ファイルシステムは小さくなって
いるはずです。
AIX3.2の場合
------------
1) /usr に不要なファイルがあれば消しておきます。
2) ルート・ボリューム・グループに属するファイルシステムが全部
マウントされている事を確認します。もし、マウントされていない
ファイルシステムがあればそれらは、再インストールしたシステ
ムには含ません。
3) mkszfileを実行します。そうすると、/.fs.size というファイルが
できて、ルート・ボリューム・グループに属するアクティブなファ
イルシステムの一覧が出来ます。
4) エディタで、/.fs.size を修正します。/usr のサイズを希望の大き
さに変更します。
例: 以下の /.fs.size の例では、/usr は 40MB になります。
rootvg 4 hd2 /usr 10 40 jfs
10という数は、そのファイルシステムの物理パーティションの数
であり、40 は 40MB を意味します。殆どの場合、物理パーティショ
ンのサイズは 4MBです。そのため、二番目の数字(40)はいつも前
の数字(10)の4倍です。ただし、120MBのドライブがついているモ
デル320は、物理パーティションの大きさが2MBしかなく、MB数は
物理パーティションの数の2倍であることに注意。PP(物理パーティ
ション)の大きさは、最初の数(4) で表されます。
例えば、/usr の大きさを 40MBから32MBに減らしたいときは、次
のように修正します。
rootvg 4 hd2 /usr 8 32 jfs
!注意! 現在 /usr にあるデータ量を保持するのに必要とするファ
イルシステムの大きさより小さい値を指定しないこと! そうしな
いと、再インストールの手順が失敗します。
5) chdev -l rmt0 -a block=512 -T
を実行。
6) ルート・ボリューム・グループに属さない全てのファイルシステ
ムをアンマウントします。
7) ユーザー定義のボリューム・グループがあれば全て varyoff しま
す。
varyoffvg ボリュームグループ名
8) ユーザー定義のボリュームグループがあれば export します。
exportvg ボリュームグループ名
9) テープをテープドライブに入れて、
mksysb /dev/rmt0
を実行します。これで完全なシステムバックアップが出来ます。
この中にはインストール・プロシージャに対して各ファイルシス
テムをどのような大きさで作れば良いかをいう情報を(.fs.sizeファ
イルの中に)含みます。
10) インストレーションキットの "How to Install and perfrom
maintenance from Diskettes" の操作手順に従って操作します。ディ
スケットと9)で作ったテープを使用します。インストール・プロシー
ジャで、"Reinstall AIX with Current System Settings"オプショ
ン は*選ばない*こと。論理ボリュームのサイズ変更を反映さ
せるには、"Install AIX with Current System Settings" オプ
ションを使ってインストールする必要があります。
11) OSのインストールが完了したら、ユーザー定義のボリュームグルー
プ情報をimport します。
importvg -y VGname PVname
ここで、"VGname" はボリュームグループ名、"PVname" はそのボ
リュームグループに属する物理ボリュームのうちの一つの名前で
す。
12) ユーザー定義ボリュームグループを varyon します。
varyonvg VGname
以上でファイルシステムの縮小は完了です。
目次へ
1.107: ファイルシステムを 2GB より大きくするには?
AIX ではファイルシステムの大きさは最大 2GB です。最大の符号
つき整数は 2*31 -1 なので。これは AIX 3.2.5 より以前のバージョ
ンにおいてファイルシステムが 2GB までに制限されていた事の理由
です。これは明確に「ファイルシステムでないもの」を含みません。
AIX.3.2.5 以降のリリースでは 2GB 以上のファイルシステムを AIX
がサポートすると記されていたが、現段階では 2GB 以上の
ファイルシステムは AIX 3.x.x においてサポートされ
ておらずまたされる予定もありません。それは IBM が決定されてい
ない将来において、最後には 2GB 以上のファイルシステムをサポー
トするだろうということが考えられます。
目次へ
1.108: ユーザーあたりの最大プロセス数のようなシステムのパラメータを参照、変更するには?
後述のように SMIT を使うか、または、単に lsattr/chdev を使いま
す。lsattr で現在の設定を表示できます。例えば、
# lsattr -E -l sys0 -a maxuproc
maxuproc 40 Maximum # of processes allowed per user True
そして、maxuproc を大きくするには、
# chdev -l sys0 -a maxuproc=200
sys0 changed
のようにします。
'lsattr -E -l sys0' で全てのパラメータを見ることができます。そ
の中には変更できるものもあれば、変更できないものもあります。
smit を使う場合の手順は以下の通り。
smit
System Environments and Processes
Change / Show Operating System Parameters
- on this screen you can change by overtyping the following fields:
- Maximum number of PROCESSES allowed per user
- Maximum number of pages in block I/O BUFFER CACHE
- Maximum Kbytes of real memory allowed for MBUFS
- toggle fields exist for:
- Automatically REBOOT system after a crash (false/true)
- Continuously maintain DISK I/O history (true/false)
目次へ
1.109: hd6上のデフォルトのページング・スペースを縮めるには?
1) 一時的なページング・スペースを作ります。
mkps -s 20 -a rootvg
2) デフォルトのページング・スペース hd6 が次の reboot 時に使わ
れないようします。
chps -a n hd6
3) AIX3.1 の場合、/etc/rc.boot4 を編集して、swapon /dev/hd6 を、
AIX3.2 の場合、/sbin/rc.boot を編集して、swapon /dev/hd6 を
次のように変更すします。
swapon /dev/paging00
4) boot 論理ボリュームの情報を更新します。
bosboot -a (3.1の場合)
bosboot -a -d hdisk0 (3.2の場合)
5) shutdown, reboot します。
6) 現在のhd6を消して、小さいサイズに新しく作り直します。
rmps hd6
mklv -y hd6 -t paging rootvg <4MBブロック単位のサイズ>
7) /etc/rc.boot4(3.1の場合), /sbin/rc.boot(3.2の場合) を編集して、
swapon /dev/hd6 に戻します。
8) boot論理ボリュームの情報を再び更新します。
bosboot -a (3.1)
bosboot -a -d hdisk0 (3.2)
9) 現在のページング・デバイス (paging00) を次のreboot時に使わ
ないように変更します。
chps -a n /dev/paging00
10) shutdown, reboot して、paging00 を消します。
rmps paging00
目次へ
1.110: swapper が大量にページングスペースを使ってるみたいだけど、何故?
ps を実行すると、以下のように見えるはずです。
USER PID %CPU %MEM SZ RSS TT STAT TIME CMD
root 0 0.0% 14% 386528 8688 - S 17:06 swapper
これで普通の状態です。swapper は、ps でみると、ページング・スペース
全体に確保されている実メモリを足したサイズに見えます。
目次へ
1.111: ページングスペースはどれぐらい必要なの?
Q.1.300 の回答 2 を参照。
目次へ
1.112: フロッピー・ディスクをファイルシステムとしてマウントするには?
From: op@holmes.acc.Virginia.EDU (Olaf Pors)
フロッピー上にファイルシステムを構築して、マウントすることは可
能ですが、その場合、ファイルシステムは read only になってしま
います。read only になってしまう理由は、AIXバージョン3.1.5では、
ディスケット上にジャーナルのログを作れないからです。read only
データへの一時的なアクセスには使えます。ディスケットファイルシ
ステムは、使用後、それに システムバックアップの最中はアンマウ
ントしなければなりません。そうしないと、エラーが発生する可能性
があります。
フロッピー上の read only ファイルシステムの作り方:
1. ハードディスク上に存在するファイルシステムにサブディレクト
リを作り、ディスケットに入れたいファイルを全部そこに置きま
す。
2. 次のコマンドを実行して、新しいファイルシステムについての情
報を保持する、プロトタイプ・ファイルを作ります。下の例では、
/dir_structは、ステップ1 で作ったサブディレクトリのパス名で
あり、proto_filenameは、プロトタイプファイルの名前です。
proto /dir_struct > proto_filename
3. フロッピーディスクをドライブに入れて、フォーマットします。
4. プロトタイプファイルを編集して、一行目を次のように置き換え
ます。
0 0
5. 次のコマンドでフロッピー上にファイルシステムを作ります。
mkfs -p proto_filename -V jfs /dev/fd0
6. フロッピーベースのファイルシステムをマウントするディレクト
リを作ります。
次のコマンドでファイルシステムをマウントします。
mount -r -V jfs /dev/fd0 /your_mount_point
7. アンマウントは以下のようにします。
umount /dev/fd0
こうして作ったファイルシステムは、read-only なので、使い道は限
られるが、ユーティリティ・プログラムや変更しないデータを納める
のに使うなら、少しは役に立ちます。ファイルシステム中のデータを
変更するには、フロッピー中のディレクトリをハードディスク中のディ
レクトリにコピーし、必要な変更を行った後、もう一度ファイルシス
テムを上記の手順で作り直せば良いでしょう。
目次へ
1.113: コミットしてしまった lpp を削除するには?
From: drb@chmeds.ac.nz (Ross Boswell)
これは良く出会う問題です。私は、IBM NZ AIX ソフトウェア・サポー
トから次のようなスクリプトを貰った。私が知る限りではちゃんと動
いています。私はこれで要らないフォントを消しています。これをポ
ストする正式な許可は貰っていないので、責任は自分で持ってくださ
い。このスクリプトはAIX3.2でしか動きません。
#!/bin/ksh
#
# Permanently remove a product from disk and AIX databases
#
if [ `whoami` != "root" ] ; then
echo You must be root to run this script.
exit 1
fi
if [ `uname -a | awk '{print $1$4$3}'` != "AIX32" ] ; then
echo This script only works on AIX 3.2.
exit 1
fi
TMP_FREE=`df /tmp | awk '$3 ~ /[0-9]/{print $3}'`
if [ "$TMP_FREE" -lt 1000 ] ; then
echo There is not enough room in your /tmp directory.
echo You need 1000 KB free, and you have only $TMP_FREE KB free.
echo Either remove some stuff from /tmp, or use chfs to make it bigger.
exit 1
fi
ODMDIRS="/etc/objrepos /usr/lib/objrepos /usr/share/lib/objrepos"
ODMDIR=/usr/lib/objrepos
export ODMDIR
if [ $# -lt 1 ]
then
echo usage: $0 lppname [lppname ...]
echo lppname is a string compatible with grep, ie "X11" or "PHIGS"
echo typing $0 PHIGS will remove all LPPs with PHIGS in their name.
exit 1
fi
NAMES=$1
shift
while [ $# -gt 0 ] ; do
NAMES="$NAMES|$1"
shift
done
echo "Searching for lpps with egrep \"$NAMES\"...\c"
for ODMDIR in $ODMDIRS ; do
if [ ! -d $ODMDIR -o ! -w $ODMDIR ] ; then
echo $ODMDIR is not writeable or is not a directory.
echo I hope this is because you are a /usr client or diskless.
echo If you are not a diskless or a /usr client, you should stop.
echo "Enter y to continue ->\c"
read answer
if [ "$answer" != "y" ] ; then
exit 0
fi
fi
TMP=`odmget lpp | awk -F\" '/name/ {print $2}' | egrep "$NAMES"`
LPPS=`echo $LPPS $TMP`
done
if [ "$LPPS" = "" ]
then
echo "failed.\nNo LPP with the name $NAMES detected."
exit 1
fi
echo ok.
for ODMDIR in $ODMDIRS ; do
mkdir -p /tmp/rmlpp/$ODMDIR > /dev/null 2>&1
done
> /tmp/listOfFilesToRM$$ # truncate temporary file, just in case.
echo
echo This script is about to attempt to remove an LPP from your system.
echo I say attempt, because it could fail. If it fails, you may have
echo to at least reload the LPP. Use the \"lppchk\" command to make sure
echo all is well with your system.
echo
# Loop through all the LPP names found.
for LPP in $LPPS
do
DESCR=none
answer=""
# find the LPP ids. They will be different in the three SWVPD databases.
for ODMDIR in $ODMDIRS ; do
# get the lpp id for this ODMDIR (yes, they are different)
LPPID=`odmget -q name=$LPP lpp | grep lpp_id | sed 's/.* = //'`
# did we find the LPP?
if [ "$DESCR" = "none" -a "$LPPID" != "" ] ; then
# all the descriptions should be the same
DESCR=`odmget -q name=$LPP lpp | grep description | sed 's/.* = //'`
echo "Delete $LPP, $DESCR?"
echo "y or (n) ->\c"
read answer
if [ "$answer" != "y" ] ; then # jump back up to the next LPP name
continue 2
fi
fi
# if there is no DESCR, then we didn't find the LPP. Weird.
if [ "$DESCR" = "none" -o "$LPPID" = "" ] ; then
continue
fi
SOMETHING_DONE_FLAG=true
# Optionally, save the ODM stuff we are about to remove,
# in case something goes wrong. The problem is it is difficult
# to determine if something really did fail, since these commands
# don't return any decent error return codes.
odmget -q lpp_id=$LPPID history > /tmp/rmlpp/$ODMDIR/$LPP.history
odmget -q name=$LPP lpp > /tmp/rmlpp/$ODMDIR/$LPP.lpp
odmget -q lpp_name=$LPP product > /tmp/rmlpp/$ODMDIR/$LPP.product
# Get the list of files and links to remove later....
odmget -q lpp_id=$LPPID inventory > /tmp/rmlpp/$ODMDIR/$LPP.inventory
awk -F\" '/loc/ {print $2}' /tmp/rmlpp/$ODMDIR/$LPP.inventory | \
sed 's/,/ /g' >> /tmp/listOfFilesToRM$$
odmdelete -o history -q lpp_id=$LPPID > /dev/null 2>&1
odmdelete -o lpp -q name=$LPP > /dev/null 2>&1
odmdelete -o product -q lpp_name=$LPP > /dev/null 2>&1
odmdelete -o inventory -q lpp_id=$LPPID > /dev/null 2>&1
done
done
if [ "$SOMETHING_DONE_FLAG" = "true" ] ; then
echo ODM work is done. Now, time to delete files....
# This could be catastrophic if there is a problem. For example,
# if the ODM database for an application had / as one of its files.
# You be the judge. Here's your rope....
cat /tmp/listOfFilesToRM$$ | sort -r | uniq | xargs rm -rf
rm -rf /tmp/listOfFilesToRM$$
echo done.
fi
# take this line out if you want to save your ODM saved files.
rm -rf /tmp/rmlpp
exit 0
目次へ
1.114: "install update" をしたのちに(訳注:ディスク)容量を回復するにはどうするか?
注意:もし、 /usr サーバなら、/usr クライアントに必要とされ消
去不可のファイルなので、以下に示される方法を用いない事。
installp は failed/rejected されたインストールの後や commit さ
れていない LPP のデ・インストール ( 訳注: de-install ) の際に
/usr に清掃すべき莫大な数のファイルを作成します。一度あなたが
commit したパッケージをあなたは安全に消去できます。あなたのイ
ンストールするやり方によってこのの数字は意味を持つだしょう:幾
百幾千ものファイル、数メガバイトのデータ。
除去されるに適格なファイルはあなたのインストールした各々の「プ
ロダクト」に関連しており、もっtも大きな集まりは bosによるもの
です。
bos LPP の commit の後、あなたは以下のような形の全てのファ
イルを安全に消去できます。
/usr/lpp/bos/deinstl*
/usr/lpp/bos/inst_U4*
/usr/lpp/bosadt/deinstl*
/usr/lpp/bosadt/inst_U4*
あなたはこの手順をあなたのシステムの上に持つ全ての追加の
comitt されたプロダクト(e.g. bosext1, bosnet, xlc) について繰
り返す事ができます。
このインストールされたファイルが居残る問題は、installp プログ
ラムの良く知られた欠陥です。もしあなたが PTF U411711 (
U412397, U413366, U413425 を置き換えるもの)をインストールしている
ならば、 /usr の中に厄介物が流行するということはなくなるでしょ
う。
この問題を完全に修正する単一の PTFは現在のところ存在しません。
私の 320 の上で、以下のようにして /usr から 12.4 M を解放しま
した。
# rm -R /usr/lpp/bos/deinstl*
# rm -R /usr/lpp/bos/inst_U4*
目次へ
1.115: AIXではログファイルはどこにある?
From: dirk@kimosabi.ucsc.edu (Dirk Coldewey)
SunOSの /var/log/syslog や /var/adm/messages ファイルの等価な
ものがある。普通の UNIX 的な syslog ファイルが必要であれば、
/etc/syslog.conf ファイルでsyslogd を設定すれば良い。私は以下
のようにしている。
#
# See the supplied /etc/syslog.conf file for copious comments.
#
*.err;kern.debug;auth.notice;user.none /dev/console
*.err;kern.debug;daemon,auth.notice;mail.crit;user.none /var/adm/messages
lpr.debug /var/adm/lpd-errs
*.alert;kern.err;daemon.err;user.none operator
*.alert;user.none root
*.emerg;user.none *
# for loghost machines, to have authentication messages (su, login, etc.)
# logged to a file, un-comment out the following line and adjust the
# file name as appropriate.
#
# if a non-loghost machine chooses to have such messages
# sent to the loghost machine, un-comment out the following line.
#
auth.notice /var/log/authlog
mail.debug /var/log/syslog
# following line for compatibility with old sendmails. they will send
# messages with no facility code, which will be turned into "user" messages
# by the local syslog daemon. only the "loghost" machine needs the following
# line, to cause these old sendmail log messages to be logged in the
# mail syslog file.
#
user.alert /var/log/syslog
#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
user.err /dev/console
user.err /var/adm/messages
user.alert `root, operator'
user.emerg *
目次へ
1.116: ftpがファイルへアクセスする情報をどのようにしてログできるか。
1. /etc/syslog.confのなかへ次の行を加えます。
deamon.debug /temp/deamon.log
2. # touch /tmp/deamon.log
# refresh -s syslog
3. 自分の inetd.conf を ftpd が -l フラグを呼び出せるように変
えます。また、-d フラグも必要となるかもしれません。 これは
'smit inetdconf' でできます。 さまざまなシステムデーモンの
システムログメッセージはすべて "/temp/deamon.log"にあらわ
れるはずです。
目次へ
1.117: iノード番号からファイルを探すには?
From: svpillay@berlioz.crs4.it (Kanthan Pillay)
find /mntpoint -xdev -inum nnnn -print
目次へ
1.118: ポストスクリプト(訳注:プリンタ)のアカウンティングをセットアップするには?
Ephreim Vider は始めホストスクリプトのページアカウンティングを
設定するためにプログラムを書きました。それは /etc/qconfig のア
カウンティング情報をログするバックエンドラッパとして動作し
utpana.ph.utexas.edu:/pub/aix/psacct.tar.Z から ftp できます。
以下のようにしてコンパイルしてください:
cc pswrap.c -o pswrap -lqb
そしてこのプログラムを root に suid します:
chown root pswrap
chmod u+s pswrap
もしこのステップをしなければプリンターがハングアップします。
そしてSMITで次のメニューに行きます。
Spooler
Manage Local Printer Subsystem
Local Printer Queue Devices
Change / Show Characteristic of a Queue Devices
そして"BACKEND PROGEAM pathname" を pswrap がキューとバックエ
ンドインターフェースを扱えるようにpswrap のフルパス名に変更
します。
情報のながれは、/tmp内のログファイル(prog lp0.log)に書かれます。
しかし、このファイルは主に状態情報や生のページ数といったことに
用いられます。もしアカウンティング・データが qconfig で指定さ
れたアカウントファイルに行くならば、それを見るためにはpacコマ
ンドを使います。私はむしろその代わりにアスキーデータファイルが
あるほうが良いので '#define WANT_PAC' の行をコメント行にして、
pswrap.c で指定されたアカウントファイルへデータが行きます。
目次へ
1.119: 3.2のブートディスケットはどのようにして作るのですか。
フォーマットされた4枚のディスケットが必要です。
boot disk: bosboot -d /dev/fd0 -a
display disk: mkdispsdkt
display extension disk: mkextdskt
install/Maintenance disk: mkinstdskt
目次へ
1.120: パフォーマンス監視ツールはどこにある?
3.2の場合は、/usr/lpp/bosperf にいくつかツールがあります。トレー
ス、I/Oイベント、CPU, 仮想記憶、ディスクブロック使用状況、カー
ネル拡張等が監視できます。rmss というシミュレータがあって、メ
モリサイズの構成を変更して、どのくらいパフォーマンスに影響する
かをみることができます。6.05 "AIX パフォーマンスとチューニング
ガイド" も参照。
tty ベースの優れたプログラム Monitor は以下のような機能を含む:
- CPU 使用
- ロードアベレージ (カーネルまたは loadavgd プログラムより)
- 仮想記憶と実記憶の使用
- ページング情報
- プロセスイベント
- ディスク I/O (summary and TOP disk 1.12)
- TTY I/O
- ネットワーク活動
- top cpu ユーザ
- NFSオペレーション (1.11 への新規能)
- さらに詳細なディスク I/O 画面
(-disk オプションを用いた1.11 への新規能)
- さらに詳細なネットワーク I/O 画面
(-netdisk オプションを用いた1.11 への新規能)
- normal/top/net/disk 画面の間を t,n,d キーでトグルする
Monitor は ftp.funet.fi:/pubunix/AIX/RS6000/monitor-1.11.tar.Z
から ftp 可能です。
目次へ
1.121: どの仮想プリンタがプリント・キューが使っているかを知るには?
From: yoder@austin.ibm.com (Stuart R. Yoder)
lsvirprt コマンドを使います。引数無しで起動すると、対話モードにな
り、システムにある全ての仮想プリンタをそれぞれキューとデバイ
スとともにメニューで表示します。
目次へ
1.122: srcmstr を二つ動かしても役に立たないか?
From: hubert@rs530.ncs.mainz.ibm.com (Bernhard Zeller)
srcmstr が二つ動いてしまうのは、システムにコンソールがない場合
や、コンソールとして非同期端末を使う設定になっているが接続され
ていなかったり、電源が入っていない場合に起こり得ます。こういっ
た場合の症状の一つが、第二の srcmstr が起動してしまうことです。
しかし第二の srcmstr は役立ちません。何故なら、stop/startsrc
コマンド、refresh inetd が使えず、qdaemon が起動されないなどの
問題があるからです。
これを解決するには、次のコマンドを実行し
smit chgtty
次の二行に 'cloal' というキーワードを追加します。
STTY attributes for RUN TIME
STTY attributes for LOGIN
目次へ
1.123: 物理的ポートに関連した tty 名をセットするには?
From:accapadi@mathew.austin.ibm.com (Matt Accapadi)
s1 ポートに rs0000 と s2 ポートに rs0001 と呼ぶ tty を作りたい
としましょう。
次のように実行します:
mkdev -c tty -s rs232 -t tty -l rs0000 -p sa0 -w s1
そして
mkdev -c tty -s rs232 -t tty -l rs0001 -p sa1 -w s2
目次へ
1.124: システムを複製するために mksysb をどのように使うのか?
From: jann@ariadne.SLAC.Stanford.EDU (Jo Ann Malina)
AIXシステムを複製するためにマスターマシンで次のようにします。
1) root のパスワードを除去します。
2) /etc/group ファイルの終りから NIS ラインを除去します。
( +: がある最後のライン)
3) 新しいシステムがブートした時に、スタートするのを防ぐ
ために、/etc/inittab のレベル2のほとんどをレベル3に
変える。(最低でも rc.nfs と rc.tcpip)
4) サービスモードでブートして、アドレスの衝突をさけるた
めに名前とipアドレスをスペアに変えておく。
5) /tmp, /usr/tmp, /usr/spool/lpd/stat を消す。
6) mkszfile を走らせ、/usr ができるだけ小さくなるように
edit する。そして mksysb をコマンドラインから打つ。
上の変更により、はじめはノーマルモードでブートでき、ルート
として入る。そして、上のファイルをもとに戻し、新しいシステ
ムを適合させるための他の必要なことをする。もちろん、戻して
clean up して master マシンをリブートする。
注意:1. と 2. はネットワークに接続されていなくてもログインで
きるようにする。それはログインプロセスが NIS サーバーに達しよ
うとするのを防ぎます。2. は NIS を使っているときだけ必要です。
目次へ
1.125: mksysb の timestamp はどのように保持するのでしょう。
Originally From: grame@ccu1.aukuni.ac.nz ( Grameme Moffat )
現在のAIX3.2.5では、timestamp や permittion は bosrest が pax
することによって保持しています。AIX3.2.2の
/usr/lpp/bosint/bosnet(ネットワークにインストール)とbosrest(テー
プ)には、'pax'コマンドが' '-pmop'オプションを持っています。m
は変更された時間を保持しないオプションですので、単に '-pmop'
を '-pop' に変えて、 inst/maint のディスケットや mksysb のテー
プを作成しなおします。
目次へ
1.126: マシンタイプはどうしたらわかるのでしょう。
From: umar@compsci.cas.vanderbilt.edu (Sait Umar)
#!/bin/sh
#
# Author G. Vitillaro (peppe@ipgaix.unipg.it)
# from an idea of Marc Pawliger (marc@ibmpa.awdpa.ibm.com)
#
# 10/12/92 GVT First (and last) implementation
#
# machine : will get machine type on RISC/6000
#
#
awk '
BEGIN {
m["10"]="7013/530 or 7016/730";
m["11"]="7013/540";
m["14"]="7013/540";
m["18"]="7013/530H";
m["1C"]="7013/550";
m["20"]="7015/930";
m["2E"]="7015/950";
m["2E"]="7015/950E";
m["30"]="7013/520";
m["31"]="7012/320";
m["34"]="7013/520H";
m["35"]="7012/320H or 320E";
m["37"]="7012/340";
m["38"]="7012/350";
m["41"]="7011/220";
m["43"]="7011/M20";
m["46"]="250/PowerPC";
m["47"]="230/RSC";
m["5C"]="7013/560";
m["63"]="7015/970";
m["64"]="7015/980";
m["66"]="7015/580";
m["67"]="7015/570";
m["70"]="590/POWER2";
m["71"]="580H";
m["75"]="7012/370, 375, or 37T";
m["76"]="7012/360, 365, or 36T";
m["77"]="7012/350, 355, or 7013/550L";
m["78"]="7012/315 or 7013/510 ";
m["80"]="990/POWER2";
モデルN40を持っている人に、'uname -m | cut -c9-10' とやっ
てもらいます。そうすると、そのエントリーを加えることができ
ます。
if ( mHcode5 != " ")
print "This RISC/6000 is a " mHcode5;
else
print "Unknown Machine";
}
'code=`uname -m | cut -c9-10` < /dev/null
目次へ
1.127: 3.2.5 へのアップデート
From: kraemerf@franvm3.VNET.IBM.COM (Frank Kraemer)
(Ed. もしとても大きなシステムをアップデートする必要があるなら、
以下のものは便利でしょう。)
1) AIXサポートセンターからPTFナンバーがU493250であるPMP3250テー
プを受け取ります。
2) 240MB(60PP'S)のファイルシステムを作って、そこに
/dev/pmp3250 - /pub/pmp3250としてマウントします。
3) テープ(blocksize は 512)をいれて、PTF U422467 をインストー
ルします。
4) 新しいファイルシステムにテープを load するのに以下のスクリ
プトを使用します。
# cd /pub/pmp3250
# mktape2disk.sh 0 447 <<-- read 447 files from rmt0
=-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
#!/bin/ksh
# @(#) mktape2disk.sh creates files from tape on disk.
# change name prefix here
NAME="f"
# from file #i to file #j
integer i=1
integer j
# test arguments
if [ -z "${1}" ]
then
echo "\nusage: $(basename ${0}) <#files>\n"
echo "\t: tape drive number (e.g. 0)"
echo "\t<#files> : number of files to copy from the tape\n"
exit 1
fi
device=/dev/rmt${1}.1
# test arguments
if [ -z "${2}" ]
then
echo "\nusage: $(basename ${0}) <#files>\n"
echo "\t: tape drive number (e.g. 0)"
echo "\t<#files> : number of files to copy from the tape\n"
exit 1
fi
j=${2}
tctl -f ${device} rewind
if [ $? -ne 0 ]
then
exit 1
fi
# create tape
while [ ${i} -le ${j} ]
do
echo "Copy file #${i} of #${j} from (${device}) to disk as (${NAME}${i})."
dd if=${device} of="${NAME}${i}" bs=200k
i=i+1
done
tctl -f ${device} rewind
exit 0
=-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
5) 新しい .toc ファイルを作ります。
6) 'runme.sh' という名前の以下のファイルをPMPディレクトリーに
置きます。
=-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
#!/bin/ksh
# @(#) runme.sh for PMP3250
#
INSTP="/usr/sbin/installp"
LOG="/tmp/installp.log"
TEE="/usr/bin/tee"
PATCHDIR=$(pwd)
#
/usr/bin/cp /usr/lpp/info/data/ispaths /usr/lpp/info/data/ispaths.save
#
INFODIR="/usr/lpp/info/$LANG/aixmin"
/usr/bin/mkdir ${INFODIR} 2>/dev/null >/dev/null
if [ ! -w ${INFODIR} ]
then
print "\n\t*ERROR* Can not (write) access [${INFODIR}]."
print "\tPlease unmount CD or NFS filesystems.\n"
exit -1
fi
#
# Commit all ptf's
#
${INSTP} -Xc all 2>&1 | ${TEE} ${LOG}.0
#
# Install latest installp patch
#
${INSTP} -BXacgq -d ${PATCHDIR} bos.obj 3.2.0.0.U422463 2>&1 | ${TEE} ${LOG}.1
#
# Install latest installp patch
#
${INSTP} -BXacgq -d ${PATCHDIR} bos.obj 3.2.0.0.U422467 2>&1 | ${TEE} ${LOG}.6
#
# Run the ptfdir clean utility.
#
/usr/sbin/ptfdir_clean -y -f -v 2>&1 | ${TEE} ${LOG}.2
#
# Install the PMP. Version 1
#
/usr/lib/instl/sm_inst installp_cmd \
-T m -q -a -g -B \
-d ${PATCHDIR} \
-S '3250 AIX Maintenance Level U493250' \
-c -N -X \
2>&1 | ${TEE} ${LOG}.3
#
# Install the PMP. Version 2
#
# /usr/sbin/update_all
#
# Install latest installp patch
#
/usr/bin/lppchk -v | ${TEE} ${LOG}.4
#
# Show level of installp patch
#
/usr/bin/lslpp -m bos.obj | ${TEE} ${LOG}.5
#
# Guess you should reboot now.
#
sync;sync
print - "\n\n\tDone......guess you should reboot now !!\n"
exit 0
=-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
7) サーバーのアップデートをするために以下を実行します。
==> > Please read the Installation Instructions first <==
# cd /pub/pmp3250
# ./runme.sh
..... WAIT .....
# /etc/shutdown -Fr
8) NFSがPMPdirを read only として全てのクライアントに送る。
9)クライアントをアップデートするために
10) 受け取ったテープに1:1でコピーをするために、
スクリプト 'mktape.sh' を使う。
# cd /pub/pmp3250
# mktape.sh 0
=-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
#!/bin/ksh
# @(#) mktape.sh: creates a bootable tape from images on disk
# change name prefix here
NAME="f"
# usage: mktape drive_no
# drive_no = tape drive number
# test arguments
if [ -z "${1}" ]
then
echo "\nusage: mktape "
echo " : tape drive number (e.g. 0)\n"
exit 1
fi
device=/dev/rmt${1}.1
tctl -f ${device} rewind
if [ $? -ne 0 ]
then
exit 1
fi
# create tape
i=1
while test -r "${NAME}${i}"
do
echo "copy ${i}"
if [ $i -le 3 ]
then
dd if="${NAME}${i}" of=${device} conv=sync bs=1k
else
dd if="${NAME}${i}" of=${device} bs=200k
fi
let i=${i}+1
done
tctl -f ${device} rewind
exit 0
目次へ
1.128: AIX の修正戦略
From: leedp@austin.ib.com (Dennis Lee, PMP Release Manager)
1.128 AIX の修正についての戦略
始めに、少し歴史を、、、、
AIX 3.1 の保守戦略は累積によるアップデートでした。数ヵ月毎に1
つの大きなパッケージにすべての役にたつ修正をして出荷していまし
た。1つの修正をするための本当の戦略はありませんでした。時々緊
急パッチを作るのですが、それらを追跡する方法はありません:もし
二つ目のそれを手にいれたら始めのを上書きするでしょう。だから、
それらのいくつかのパッチの後で、追跡するのは難しい。
AIX 3.2 では "selective fix" という、個々の修正をサポートする
ための戦略を導入しました。パッケージには、その修正が正しく動く
ことを要求する他の修正についての情報も含んでいました。たとえば、
Kシェルの修正が libc.a を修正して、次にカーネルの修正を要求す
るといったことである。この戦略は、他の物を上書きをしないことを
確実にしするためにインストールされた修正の追跡を可能としました。し
かし、初期の選択修正計画にはまだ少し問題があります。
o 修正がひとつも累積によるものではないこと。もし Korn シェルの
修正を得ても、Kシェルのすべての修正を受け取ることはできなでしょ
う。これは、既に残されている他の問題を再発見させる可能性を 残
しています。
o 報告されている問題の修正として可能な全ての修正を選ぶので、次
のリリースへそれらを延ばす代わりとして、可能な修正の数はとても
大きくなりました。
o 与えられた修正により求められた補助の修正の数もまたきわめて
大きくなりました。インストーレーションプログラムは、各々の修正
に対して動くので、インストレーションパッケージの大きさと複雑さ
は増し、インストールに要する時間も大変長くなりました。
AIX 3.2.4へのアップデートの開発中に、選択修正の問題を解決する
ために多大な努力を払い、劇的に AIX 3.2 の質 を向上させました。
基本OS 選択プログラムプロダクトのほとんどははサブシステムに分
割されました。一つのサブシステムは論理的に関連のファイルのグルー
プです。この分割はあるサブシステムへの変更が、他の サブシステ
ムへ影響を与えにくいものになるようになされています。全体として
おおよそ500のサブシステムがあるのですが、実際にはそれらの半
分のファイルだけが修正されました。新しいパッケージの戦略の利点
は次の通りです:
o サブシステムパッケージ各々が累積によるものであり、すべての
修正やサブシステムに日付けを付けるための強化も含まれて いる。
o 累積によるサブシステムパッケージは全体としてテストされた。
o サブシステムの数は修正数と改良の数のそれに比べてはるかに少な
いため、修正パッケージの数は大幅に減少しています。。
o 修正パッケージの数の減少はインストレーションの時間をも大きく
減少させた。
何人かのお客様は、AIX 3.1 で使っていた maintenance level 戦略
の方が良いとおしゃいます。
彼らはすべての知られている修正をインストールすることを好み、ど
のレベルのAIXを持っているのかを知りたがります。 このような要求
に満たすために、PMP(Preventive Maintenance Package)を生み出し
ました。
PMP は単一の修正を選択する事でインストールされ得る方法で、互い
に結び付けられた最新の累積サブシステムパッケージの集合体です。
どの PMP がインストールされているのかを示す 'lslpp' コマンドの
フラグと新しいコマンド 'oslevel' を加えました。今では両方、修
正レベルの良い特質と選択修正の良い特質の両方を備えています。
Q&A を幾つか。
Q. なぜ、私が受け取った修正は 130MB なのか。!@#?
もうすでにAIX 3.2.4 にアップデート済であるのに!
A. その修正はAIX3.2.5の一部だったかも知れない。AIX3.2.5は、
Power PC model 250 や新しい RS/2 のモデル 590, 990、また新しい
RS/2 ディスクやテープドライブ、グラフィックアダプター等な
どをサポートするための強化と同様にアップデートする修正すべてを
含む別の PMP です。
訳注) RS/2 -> RS/6000 あるいは Power2 の TYPO だと思われます
Q. なぜ3.2.4では修正をしてくれないのでしょう。
A. 3.2.1, 3.2.2, 3.2.4 では、そのような物はありません。それら
は3.2のベースの上に作られた、修正や強化の集まりに過ぎません。
問題の修正が3.2.5以前に作られたものであれば、それは古いバージョ
ンでしょう。しかし、その修正が3.2.5のサブシステムのなかで初め
て作られたものならば、ただ一つ存在する修正のバージョンです。
目次へ
1.129: パスワードは8文字までですか?
AIX においてパスワードは8文字までしか認知しません。8文字以上
セットできますが8文字目より後は無視されます。メッセージも警告
もありません。
NIS を実行しているときは気を付けなくては行けません。すべてのマ
シン(6000やそれ以外)とコンパチブルにするためパスワードを8
文字までに限りたくなるでしょう。
DCE では8文字以上のパスワードをサポートする kerberos をサポー
トしているそうです。
目次へ
1.130: pty の数を64より多くできますか。
SMIT では64までしか許されません。次のようにしてください。
odmget -q"attributes=num adn uniquetype=pty/pty/pty" PdAt |
sed "s/0-64/0-512/" |
odmchange -q"attributes=num adn uniquetype=pty/pty/pty" -o PdAt
chdev -l pty0 -anum=256 -P
reboot
訳注) AIX3.2.5 で試しましたが、うまくいきませんでした。
目次へ
1.131: Sendmail と xterm についての CERT advisories について
次の修正は、sendmail と xterm に問題があるとき CERT advisories
に利用できます。
sendmail - fix available as U426396
xterm for X11R4 - fix available as U422575
xterm for X11R5 - fix available as U425811
目次へ
1.132: 存在しない物理ボリュームをどのように削除すればよいですか?
ODM から見せかけのディスクを削除するには、ディスク名のかわりに
pvid を使って reducevg をするとよい。lsvg や varyonvg のような
コマンドを実行していると、正しくわからないディスクを把握するこ
とができる。その警告の中で、pvid がわかるはずである。そうすれ
ば単に次のようにすればいい。
reducevg -f
目次へ
1.200: テープへのバックアップについて
From: Craig Anderson
InfoExplorer の rmt デバイスについての記述の補足です。AIX3.1
での IBMテープドライブの個人的な使用経験に基づいています。陽にも
陰にも保証はありません。
SMIT を通して以下のように設定します:
BLOCK size (0=variable length) (ALL)
テープブロックサイズをセットします。読み込み時には、ブロックサ
イズはテープが書き込まれた時のブロックサイズと同じにセットしな
くてはなりません。使うコマンドによっては、ブロックサイズを 0
(可変長)にすれば、任意のブロックサイズで書き込まれたテープを読
むことができます。(以下の"BLOCK SIZES" を参照)
Use DEVICE BUFFERS during writes (ALL)
yes にすると、デバイスは書き込み時に内部的にデータをバッファリ
ングします。こうすると、パフォーマンスが非常に改善されるが、し
かし、ある場合には望ましくありません。成功を示す値を返す前には
データはテープに書き込まれないからです。
Use EXTENDED file marks (8mm only)
拡張ファイルマークは短い(あるいは拡張されていない)ファイルマー
クよりたくさんのスペースを取ります。しかし、拡張ファイルマークは上
書きできるのでテープの開始位置にないデータでも上書き可能である
("FILE MARKS"参照)。
RETENSION on tape change or reset (1/4" only)
"no"にすると、テープをドライブに挿入したときに自動的な巻き直し
は行われません。デバイスを使った後に有効になることに注意してく
ださい。
FILE MARKS:
テープデバイスは複数のテープファイルをサポートします。テープファ
イルは、backup/cpio/tar/dd といったコマンドで作られ、その場合
デバイスは、オープンされ、書き込みされ、クローズされます。テー
プは多量のデータを一つのテープに書くことが可能なので、複数のバッ
クアップ(すなわち、テープファイル)を物理的に一つのテープに入れ
ることが可能です。各テープファイルの間には、テープファイルマー
ク、または単にファイルマークがある。ファイルマークを使って、デ
バイス・ドライバーは、一つのテープファイルの終りと次のテープファ
イルの始まりを認識します。
B E
<------- O O ------->
T T
__ ____________________________ _______________
physical | \ | | \ |physical
beginning| \ | tape | \ | end
of | \ | file | \ | of
tape | \ | mark | \ | tape
|_____\________|_______|__________\_________|
1/4インチテープドライブの場合には、書き込みはシーケンシャルに
か、または、空白部分を検知した後にしか出来ません。テープ上のデー
タに上書きはできないのです(BOT 部分を除く)。書き込みが行われ
て巻き戻されたテープにデータを追加するには、エラーが起きるまで
ファイルマークを進めなければなりません。
8mm テープドライブの場合は、書き込みは、ブランクテープか、拡張
ファイルマークか、BOT 部分でのみ可能です。つまり、複数のバック
アップを一つのテープに取った場合、そのうちの一つを上書きしたけ
れば、書き込みを開始したい位置にテープを置き、以下のコマンドを
実行すれば良い。
tctl bsf 1
tctl eof 1
最初のコマンドはファイルマークのBOT側に戻ります。二番目のコマ
ンドはファイルマークを書き直します(拡張ファイルマークの前に書
くことはできます)。消去ヘッドが書き込みヘッドの先のデータを消
すので、ファイルマークを書いた後ヘッドはブランクテープの前に位
置されます。こうしないとテープの途中にデータを上書きすることは
できません。(現在書いているところより先のデータは全て失われま
す)。短いファイルマークを上書きすることは出来ないことに注意し
てください。そのためには、テープは拡張ファイルマークを使って書
き込まれていなければなりません(smitで変更すれば良い)。
9トラックのドライブでは、テープのどこにでも書き込みが可能であるが、
データのひとかたまりを上書きすることはサポートされていません。
8mmドライブで拡張ファイルマークを使うと、テープの2.2MBを消費し、
書き込みに 8.5秒かかります。短いファイルマークでは184KB消費し、
1.5秒かかります。
BLOCK SIZE:
データがテープに書き込まれるときは、ブロック単位で書き込まれま
す。テープ上で各ブロックは、レコード間ギャップで分離されます。
書き込まれたテープの構造を理解することは、ブロックサイズを変え
たときに発生する問題を理解するのに重要です。
固定ブロックサイズのモードでは、テープ上の全てのブロックは同じ
サイズです。そのサイズは、デバイスのコンフィグレーションで設定
されたブロックサイズになります。テープドライブに対するすべての
read()とwrite()は、固定ブロックサイズの倍数でなければなりませ
ん。
固定ブロックモードでは、read() は、read()リクエストを満たすの
に必要なだけのブロックを返します。テープを読んでいる途中にファ
イルマークに行き当たったら、ファイルマークまでのデータが返され
ます。
テープドライブは、デバイスコンフィグレーションで指定されたブロッ
クサイズと違うブロックサイズで書かれたテープを読むことはできま
せん。(デバイスコンフィグレーションで可変長ブロックになってい
ない限り。)
可変ブロックサイズ(0)モードでは、テープに書き込まれるブロック
はデバイスドライバーに対する read()とwrite()リクエストのサイズ
です。この場合、テープ上の実際のブロックサイズは、バックアップ
コマンドのオプションで変更できます(tar -C, cpio -C, backup -C)。
可変長モードでは、テープ上のブロックサイズより大きいサイズの
read() リクエストは、テープの次のブロックからのデータしか返し
ません。この特徴によって、任意のブロックサイズ(固定長であれ可
変長であれ)で書かれたテープを dd コマンドで読むことが可能にな
ります(ddコマンドからの出力は、例えば restore, tar, cpio など
にパイプで渡すことができる)。backup, tar,それに cpioコマンドは、
大きなブロックサイズではテープを読めなくなることに注意してくだ
さい。何故なら、これらのコマンドは、read()が指定したサイズより
も小さいサイズを返すとエラーとして扱うからです。
dd ibs=128k obs=16k if=/dev/rmt0 | ...
テープのヘッドは、読みこみまたは書き込みの後は、必ず、レコード
間ギャップか、ファイルマークか、ブランクテープの部分に位置され
ます。
8mmテープドライブの場合、1KBの倍数でない固定ブロックサイズを使
うのは非効率的です。8mmテープドライブは内部的には常に1KBのブロッ
クで書き込んでいるのである。可変長ブロックサイズをシミュレート
するが、しかし、例えば、512バイトの固定ブロックサイズを使うと
(または可変長ブロックサイズを使って write()を 512バイトで行う
と)、テープ容量の半分を無駄にし、また、転送効率も最大の半分に
なってしまいます。
非UNIXマシンや他のベンダーのマシンとの間のデータ交換
多くのテープドライブは、可変長と固定長の両方のブロックサイズを
サポートしています。
可変長ブロックモードでは、書き込みコマンドの発行したサイズのブ
ロックサイズで書き込みます(tar と backup はこれを -bオプション
で指定できる)。固定長モードでは、ブロックサイズは固定であり全
ての書き込みは、固定ブロックサイズの倍数でなければなりません。
Unix はしばしば、実際に read と write が行われる前に、大きなサ
イズの read と write を扱いやすい断片(65535, 65534, 65532バイ
トが良く使われる)に、 内部的に分割する。これは、64KBの read と
write は、しばしば 65535バイトのレコードと1バイトのレコードに
分割されることを意味します(固定長モードでは、書き込みが失敗す
る)。このため、64KB以上のブロックサイズを使用するのは避けるべ
きです。AIX は、read と writeリクエストを分割しないが、他のマ
シンでは注意しなければなりません。
テープが書かれたブロックサイズが分からないときは、smit でデバ
イスコンフィグレーションを可変長ブロックを使うように設定し、dd
コマンドで、入力ブロックサイズを大きく取り、リストアするコマン
ドにパイプで渡せば良いでしょう。例えば次のようにします。
chdev -l rmt0 -a block_size=0
dd if=/dev/rmt0 ibs=128k obs=16k | tar -tvf-
目次へ
1.201: リモートにバックアップするには?
From: oquinn@elder.austin.ibm.com
以下のコマンドで可能です。
tar -b1 -cf - . | rsh REMOTEHOST "dd ibs=512 obs=1024 |
of=/dev/TAPEDEVICE"
From: kraemerf@franvm3.VNET.IBM.COM (Frank Kraemer)
mksysbではリモートのテープデバイスにはバックアップできません。
Frankによる次のスクリプトでリモートにバックアップができます。
(編者注: このスクリプトがうまく動作する事を確かめた。しかし、/tmp
の中に .a というテンポラリファイルを作成するので、大きなファイ
ルシステムに対しては遅いかも知れません)。
#!/bin/ksh
# @(#) Create a backup tape of the private user data.
#=================================================================#
# Script : usave.sh #
# Author : F. Kraemer #
# Date : 92/02/19 #
# Update : 92/10/29 #
# Info : the ultimative backup script #
# Example: usave.sh /dev/rmt0 - save to local tape #
# usave.sh /save/save.me - save to local file #
# usave.sh /tmp/pipe - save to remote tape #
#-----------------------------------------------------------------#
PS4="(+) "
#set -x
PROG=$(basename $0)
HOST=$(hostname)
TODAY=$(date +%H:%M:%S)
#
# cleanup
#
cleanup ()
{
ec=$1
error=$2
case "$ec"
in
"$USAGE_EC") # usage error
error="Usage:\t$PROG DeviceName\n" 1>&2
;;
"$NOTAP_EC") # Tape error
error="error:\t$PROG: $DEVICE is not available on the system.\n" 1>&2
;;
"$LISTE_EC") # list error
error="error:\t$PROG: could not create tar list for $LOGNAME.\n" 1>&2
;;
"$NOTAR_EC") # tar command error
error="error:\t$PROG: tar command failed.\n" 1>&2
;;
"$PIPEP_EC") # pipe error
error="error:\t$PROG: mknod command failed.\n" 1>&2
;;
"$NORSH_EC") # rsh error
error="error:\t$PROG: rsh - Remote Shell command failed.\n" 1>&2
;;
"$RHOST_EC") # remote host error
error="error:\t$PROG: Remote Host unknown.\n" 1>&2
;;
*)
;;
esac
case "$DEVICE"
in
#
# Fix the block size if $DEVICE is a tape device
#
/dev/rmt[0-9]*)
echo "\n\t$PROG: Rewinding tape to begin.........(please wait)\n"
tctl -f $DEVICE rewind 2>/dev/null
;;
*) ;;
esac
rm -f ${LIST} ${PIPE} 2>/dev/null
[ -n "$error" ] && echo "\n${error}\n"
trap '' 0 1 2 15
exit "$ec"
}
#
# Variables
#
USAGE_EC=1 # exit code for usage error
NOMNT_EC=2 # exit code wrong device name
NOTAP_EC=3 # exit code no tape available
LISTE_EC=4 # exit code backup list error
NOTAR_EC=5 # exit code for wrong tar
TRAPP_EC=6 # exit code for trap
PIPEP_EC=7 # exit code for pipe
RHOST_EC=8 # exit code for bad ping
NORSH_EC=9 # exit code for bad rsh
DEVICE="$1" # device to tar into
LIST="/tmp/.tar.$LOGNAME.$$" #
REMOTEH="" # Remote host for backup
REMOTET="" # Remote tape for backup
tapedev= #
PIPE="/tmp/pipe" # Pipe for remote backup
#
# main()
#
tput clear
echo "\n\t$PROG started from $LOGNAME@$HOST on $TERM at $TODAY.\n"
rm -f $LIST 2>/dev/null
#
# Trap on exit/interrupt/break to clean up
#
trap "cleanup $TRAPP_EC \"Abnormal program termination. $PROG"\" 0 1 2 15
#
# Check command options
#
[ "$#" -ne 1 ] && cleanup "$USAGE_EC" ""
#
# Check device name
#
[ `expr "$DEVICE" : "[/]"` -eq 0 ] && cleanup "$NOMNT_EC" \
"$PROG: Backup device or file name must start with a '/'."
#
# Check tape device
#
case "$DEVICE"
in
#
# Fix the block size if $DEVICE is a tape device
#
/dev/rmt[0-9]*)
#
echo "\n\t$PROG: Verify backup media ($DEVICE)............\n"
#
# see if a low or high density tape device was specified
# (eg rmt0.1)
density="`expr $DEVICE : \
"/dev/rmt[0-9]*\.\([0-9]*\)"`"
#
# strip /dev/ from device name and
# get the base name (eg translate:
# /dev/rmt0.2 to rmt0)
#
tapedev="`expr $DEVICE : \
"/dev/\(rmt[0-9]*\)[\.]*[0-9]*"`"
#
# Check if the tape is defined in the system.
lsdev -C -c tape -S Available -F "name" | grep $tapedev >/dev/null 2>&1
rc=$?
[ "$rc" -ne 0 ] && cleanup "$NOTAP_EC" ""
#
# Restore old tape name.
#
[ "${density:-1}" -lt 4 ] && density=1 || density=5
DEVICE="/dev/${tapedev}.${density}"
echo "\n\t$PROG: Insert a tape in ($DEVICE)........(press enter)\n"
read TEMP
echo "\n\t$PROG: Rewinding tape to begin...........(please wait)\n"
tctl -f $DEVICE rewind 2>/dev/null
;;
#
# Backup is done on remote host. The remote shell facility
# must be set up and running.
#
${PIPE}*)
#
echo "\n\t$PROG: Assuming remote backup via network.\n"
echo "\t$PROG: Enter name of Remote Host ===> \c"
read REMOTEH
echo "\n\t$PROG: Pinging Remote Host to test connection.\n"
ping ${REMOTEH} 1 1 >/dev/null 2>&1
rc=$? # give up unknown host
[ "$rc" -ne 0 ] && cleanup "$RHOST_EC" ""
JUNK=$(rsh ${REMOTEH} "/usr/sbin/lsdev -C -c tape -S Available")
rc=$? # give up rsh failed
[ "$rc" -ne 0 ] && cleanup "$NORSH_EC" ""
echo "\t$PROG: Available Tapes on ${REMOTEH} are :\n\n\t\t${JUNK}\n"
echo "\t$PROG: Enter name of Remote Tape (e.g. /dev/rmt0) ===> \c"
read REMOTET
echo "\n\t$PROG: Insert tape on ${REMOTEH} in ${REMOTET}..(press enter)"
read TEMP
echo "\t$PROG: Rewinding Remote Tape ${REMOTET} on ${REMOTEH}.\n"
rsh ${REMOTEH} "tctl -f ${REMOTET} rewind"
rc=$? # give up rsh failed
[ "$rc" -ne 0 ] && cleanup "$NOTAP_EC" ""
rm -f ${PIPE} 2>/dev/null
mknod ${PIPE} p
rc=$? # give up mknod failed
[ "$rc" -ne 0 ] && cleanup "$PIPEP_EC" ""
cat ${DEVICE} | rsh ${REMOTEH} "dd of=${REMOTET} obs=100b 2>/dev/null" &
;;
*) ;;
esac
#
# Prepare the list
#
echo "\n\t$PROG: Create list of files to be saved...."
find $HOME -print > $LIST
rc=$?
[ "$rc" -ne 0 ] && cleanup "$LISTE_EC" ""
#
# tar the files
#
echo "\n\t$PROG: Changing current directory to (/)...."
cd / > /dev/null 2>&1
echo "\n\t$PROG: Running tar format backup from user ($LOGNAME)...."
tar -cvf "$DEVICE" -L "$LIST"
rc="$?"
[ "$rc" -ne 0 ] && cleanup "$NOTAR_EC" ""
#
# Backup completed
#
TODAY=$(date +%H:%M:%S)
echo "\n\t$PROG ended at $TODAY............................\n\n"
cleanup 0
目次へ
1.202: 複数のディスクにまたがるボリュームグループをバックアップするには?
From: pack@acd.ucar.edu (Daniel Packman)
編者注: 編者はこの手順は確認していません。編者は、実際に大きな論
理ボリュームを必要としない限り、ひとつのボリュームグループが複
数のディスクにまたがることはお勧めしません。
1. 一つのボリュームグループに3個以上のディスクがある場合。( 内
蔵ディスクドライブが3個ある 5xx シリーズのマシンでは普通 3 個
です。二個しかない場合は、個々で述べる手順は、ボリュームグルー
プの定数(quorum)を満たさないいうことを無視するように修正する必
要があります。)
2. 一個のドライブが壊れた場合(普通は一度に一個しか壊れない:-))
サービス・ブート
訳注) キーをserviceの位置に回してのbootのことか?
が終わったら(問題のボリュームグループが rootvg と言う名前で、
残った二つのディスクのうち一つが hdisk0 という名前の場合)、つ
ぎのコマンドを実行します。
importvg -y rootvg hdisk0
varyonvg -f -n -m1 rootvg
これらのコマンドは成功しても、エラーメッセージが出ます。例えば、
論理ボリューム /dev/lv00 に ファイルシステム /u をマウントした
ければ以下のようにします。
mount -f /dev/lv00 /v
これは、jfslog、つまり ジャーナルド・ファイルシステムのログデ
バイスが壊れたディスク上になかった場合にのみ成功します。壊れた
ディスクにあった場合は、ファイルシステムを read-only でマウン
トしなければなりません(read-onlyでマウントするのはいつでも可能で
ある)。
mount -f -r /dev/lv00 /v
この決定的できわめて明白な点で、Austin のレベル3のサポート部隊
の人たちも私自身も一週間ほど悩まされました。一旦ファイルシステ
ムが利用可能になれば、テープにセーブして後でリストアできます。
もちろん、ファイルシステムが3個の物理ディスク全体にまたがって
いれば、そのうちの2/3しか回復できません。もう一つの注意すべき
点は、フロッピーからの標準的なブート手順には、restoreコマンド
は入っているが、backupコマンドは入っていないという点です。
**************************************************************
自分のサイトに他に RS6000 がない場合は、restoreか、tar か cpio
を含むブートテープを作るか(ブートフロッピーでは容量が足りない)、
最低でも、backup か cpio か tar コマンドをスペアのフロッピーに
コピーしておくことが、絶対的に必要です。フロッピーは、
backup - ivq で作って、中身がブート後メモリ常駐システムに読み
込めるようにする必要があります。
**************************************************************
tar, cpio または backup コマンドがマウント可能な壊れてないディ
スク上にあれば全てが失われたわけではありません。tar と cpio は
/bin にあるので、両方とも利用できないということはないでしょう。
標準以外の、必要になるコマンドを入れたブートテープを作っておく
のが良いでしょう。つくりかたは IBM の操作手順に従うが、以下の
三つのファイルに希望のコマンドを追加します。
/usr/lpp/bosinst/tape2
/usr/lpp/bosinst/diskette/boot2
/usr/lpp/bosinst/diskette/inslist
最小メモリ構成でなければ、たくさんのコマンドを追加できるはずである。
目次へ
1.203: 一個の8mmテープに複数のバックアップをとるには?
From: kerm@mcnc.org (Cary E. Burnette)
二通りのやりかたがある。どちらも巻き戻しをしないデバイス
/dev/rmt0.1 を使います。
方法 #1
-----------
一個のテープに複数のバックアップを取るには、/dev/rmt0.1を使い
ます。これは、自動巻き戻しをしないデバイスです。rdump か
backup を使う(名前による方法、inodeによる方法のどちらでも良い。)
byinode の rdump や backup を使うと、テープを巻き戻していると
いうメッセージが出るが、実際には巻き戻していません。私のところ
では以下のようにしている。
# rsh remote1 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
# rsh remote2 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
# tctl -f /dev/rmt0.1 rewind # rewinds the tape
ここでは、host というマシンからのコマンドを実行しています。
最初のバックアップの内容一覧をリストアするには、以下のようにし
ています。
# restore -f /dev/rmt0.1 -s1 -tv
ここで、-s1 フラグで テープ上の最初に出会ったレコードに行くこ
とを restore に指示しています。二番目をリストアするには、全く同
じコマンドをもう一度実行すれば良いです。基本的に、-s(Number) は、
現在の点から Number目のレコードに行くことを意味してます。
方法#2
-----------
Steve Knodle
Educational Resources Center
Clarkson University
以下の方法を使っています。
------------------- Dump.sh --------------------
CONTENTSFILE=`date |dd conv=lcase |sed -e 's/19//' |awk '{print $6 $2 $3}'`
set -x
LEVEL=$1
shift
backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /
backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /usr
backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /u
tctl -f /dev/rmt0 rewind
touch /usr/local/dumps/Contents.$CONTENTSFILE
echo "Dumping /" >>/usr/local/dumps/Contents.$CONTENTSFILE
restore -t -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
echo "Dumping /usr" >>/usr/local/dumps/Contents.$CONTENTSFILE
restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
echo "Dumping /u" >>/usr/local/dumps/Contents.$CONTENTSFILE
restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
tctl -f /dev/rmt0 rewind
内容一覧は、共通のprefix encodingをする小さなプログラムでまず
処理してから、compress しています。
この内容一覧ファイルは、テープを次に使うまでオンラインで参照で
きます。
目次へ
1.204: ネットワーク経由でテープをコピーするには?
ここでの挑戦は、一時ファイルを作らないこと(ディスク容量の制限)と
異機種間ネットワークを経由して動作することである。
This script might work:
LOCAL=/dev/tape_dev
REMOTE=/dev/tape_dev
dd if=$LOCAL ibs=64k obs=512 | rsh remote_host dd ibs=512 obs=64k of=$REMOTE
目次へ
1.205: テープブロックが0とはどういうことですか。
テープ装置は一般に2つの種類にわけられる。1つは固定長ブロック
型で、もう1つは可変長ブロック型である。1/4インチテープは固
定長ブロックで8mmは可変長である。固定長ブロックサイズ装置にお
いて、カーネルはその装置に適切な大きさのブロックサイズでデータ
を送り、記録するのに渡すサイズを変えるとカーネルにより多くのデー
タを与えることになる。可変長ブロックサイズ装置では、カーネルは
その装置に渡されるものが何でも書き出す。8mmにおいては、テープ
を効率的に使うにはブロックサイズは1024の倍数が良い。AIXに
は世界で唯一の可変長ブロックサイズの1/4インチテープ装置もあ
る。もしブロックサイズを0でない値にしてSMITを使うなら、AIXは
その装置がどのようなものでも固定長ブロックとして扱う。8mmテー
プはデフォルトでは1/4インチと同じ512バイトにセットされる。
これは不経済だがもしそうでなければmksysb と installp がうまく
いかない。もしブロックサイズを0にすると、その装置は可変長サイ
ズとして扱われ、記録するのに渡されるサイズが物理的ブロックサイ
ズになります。適切なサイズを dd につかうならすべてうまくいくは
ずです。
目次へ
1.206: ハングしたテープ装置のリセットについて
プロセスはテープ装置をアクセスする。そしてプロセスが止まって終
了したり、又どんなことでもよいがテープ装置へまだ継っている。こ
のようなことが起きると、プロセスがシグナルで止められなくなり、
マシーンがリブートされるまでテープ装置は他のプロセスに使われな
くなる。
つぎのようにすればよい。
UNIX とほとんど同じような AIX はテープ装置のリセットがありませ
ん。しかし結果として生じるコードを用いてテープ装置へ Bus
Device Reset(標準SCSIメッセージ)を送ることができます。テープ装
置が BDR に対し応答しないと SCSI Bus Reset が送られる。(これは
SCSIBus のすべての装置をリセットする) SCSI Bus リセットは最後
の手段なので不必要に用いることはおさえるべきである。しかしシャッ
トダウンやリブートの他に装置をリセットする方法がないときがある。
(例えば8mmドライブにjammed/old/badテープでいれた後)(明らかに
リセットするのに外部装置の電源をOFF/ONでよい...これが最も良い
方法かも知れない)このことは実際資料の中では文書で証明されてい
るが、見つけにくく、次のプログラムも完全ではない。
/* taperst: resets the tape drive by sending a BDR to the drive. */
#include
#include
#include
#include
int main(int argc, char **argv)
{
/* This can be run only by root */
if (argc != 2) {
fprintf(stderr, "Usage: %s /dev/rmt#\n", argv[0]);
return 1;
}
if (openx(argv[1], O_RDONLY, 0, SC_FORCED_OPEN) < 0) {
perror(argv[0]);
return 2;
}
return 0;
}
目次へ
1.207: mksysb テープを tar でどのように読み取れるのですか。
From: Marc Pawliger (marc@sti.com)
mksysb で作られたバックアップから指定ファイルを元に戻す。
$ tctl fsf 3
$ tar xvf /dev/rmt0.1 ./your/file/name
目次へ
1.300: メモリーマネージメントシステムについての情報
1.AIX は他のUNIX システムよりたくさんのページングスペー
スを使えますか?
たくさんのシナリオをもとに、AIX は他のUNIX システムよりたくさ
んのページングスペースを要求しています。
AIX の VMM は "earlyallocation of paging space"と呼ばれる技術
を提供します。ページが RAM に割り当てられた時、それは "client"
や "persistent"の 記憶ページ ではなく、"working" 記憶ページと
考えられます。Working 記憶ページ は、一般にアプリケーションの
スタックやデータ, シェアードメモリセグメントです。だから、プロ
グラムスタックやデータエリアが増えた時、 RAM がアクセスされV
MMは RAM にスペースを割り当てページングデバイスとします。こ
のことは RAM が消費しつくされるまえでもページングスペースを使
うということです。このことは VM が使っている全体のトラックを保
持しているにも係わらず、他の UNIX システムでは起こりません。
EXAMPLE.1
64MBの RAM を持つワークステーションが、少しのファイルにし
かアクセスしないようなただ1つの小さなアプリケーションを動かし
ています。アクセスしたデータを含むすべてのものが RAM に入って
います。AIX では、すでに幾つかのページングスペースが使えます。他の
UNIX システムでは、ページングスペースは100%空いています。明
らかに、他のマシンより多いページングスペ−スを使っているという
ことが示される例です。
EXAMPLE.2
不十分な RAM でたくさんのアプリケーションが動いている、という
環境以外上と同じ。また、システムとは、始まっていたり、動いてい
たり、アイドルであったりするアプリケーションで、一定の使われか
たではありません。たとえばウインドウで動いているフレームがそれ
です。結果として(理論上)全てのアプリケーションは少なくとも1度
はページアウトされるでしょう。AIXでも他のシステムでもすべての
ページング要求は同じでしょう。( malloc algorithm により想定さ
れます。)主な違いは、AIXは実際にページングスペースが必要となる
前に割り当てており、他のシステムは必要となるまで割り当てないと
いうことです。しかしながら、他のシステムは virtual memory page
が使われたように内部変数をインクリメントしますが、AIXはそうで
はありません。malloc はメモリーを返し続けてはいるが、AIXはペー
ジングスペースの外で動くようになっています。この特徴は節約した
メモリーセグメントで動かすことを許すが、malloc(sbrk) を普通に
使う全てのユーザが、どれほどの仮想メモリを使えるか(実際は使え
ない)を知っていることを要求し、低い条件でページングスペースを
扱うことができます。大きな問題です。Virtual Memory をつかう両
方の方法へのかなり明らかな pros と cons があります。
2 どのくらいのページングスペースが必要でしょう。
概算ではRAMの2倍のページングスペースが必要です。これは、多く
の概算にあるように、単純なものですが。もし機械が、"persistent
storage environment" の状態にあれば、つまり少しのプログラムで
たくさんのデータがある状態にあれば、ページングスペースにはRAM
の1倍も必要ないでしょう。例えば、1GB のデータベースが 256MB
の RAM の 6000 で動いていて、ただ 50MB の実働記憶をいるならば
512MB のページングスペースは必要無く、おそらく 256MB も必要は
無いでしょう。これは、1GB のデータベースはたいてい "persistent
storage " であり、ほとんどまたは全くページングスペースを必要と
しないからです。過多なページングスペースは単にディスクスペース
を浪費することを意味します。しかし、不十分なページングスペース
は、避けましょう。
Tip: 1つのディスクに1つ以上のページングスペースを持たず、シ
ステムの中にたくさんのRAMを置きましょう。マシンはそれを使
うでしょう。
3 なぜ vmstat は空きRAMページを示さないのだろう。
AIX は RAM をできるだけ大きなバッファーとして使います。もし朝
ファイルを読んだら、そのファイルはRAMに読み込まれ、そこに残さ
れれます。もし他のどんなプログラムもRAMを使わなければ、そのファ
イルはマシンを止めるまでRAMに残っているます。これは、もしも
う一度そのファイルを使うとき、アクセスが早いだろうということを
意味します。もし RAM が必要ならばシステムは単にファイルの使ってい
るページを使うでしょう。そのページは素早くディスクへ書き戻され
ます。これは十分な RAM があればディスクへのアクセスの際、大変
スピードアップすることを意味しています。例えば、256MBのシステム
ならば、200MBのデータベースは楽に入れれるということです。
4 vmstat は空きRAMページを示さないので、RAM の乗っていない
のですか?
多分違います。diskfile が RAM へ map されているので、もし
vmstat がたくさんのRAMページを空きとして示したら、それは多分た
くさんのRAMを持っていることになります。( RISC System/6000 では
異常なことです。)
5 vmstat の "avm" や "fre" のフィールドは何かを合計したも
のですか
いいえ。"avm" フィールドはどれくらい Active Virtual Memory が
使えるかを示しています。これは使っているページングの量とかなり
近い数字です。この数字は使っているRAMの量とは絶対に関係ありま
せん。また、mapped file (disk file) も含んでいません。RAMの量
は、/usr/sbin/bootinfo -r でわかります。
6 なぜ vmstat の "fre" フィールドは時々たくさんの空きRAMペー
ジを示しているのでしょう。
これは working storage ( NFS storage でも diskfile でも
persistent strage でもない ) を経由して、たくさんのRAMを使った
アプリケーションをでた後におこります。working storage によって
使われたRAMページがもはや必要でなくなったとき、そこに置いてお
く必要はありません。AIXは完全に RAM ページを開放します。これら
のページにアクセスする時間と、"sync'd" をもっているRAMページが
ファイルをマップするのとはほとんど一致しています。それゆえに、
定期的にRAMをflush する必要はありません。
7 vmstat の "fre" フィールドは意味がありますか。
vmstat の "fre" フィールドは 空きページのフレームを表している。
もしその数が矛盾なく小さい(500ページ以下)であれば、正常です。
もしその数が矛盾なく大きい(400ページ以上)であれば、マシンで
必要なメモリー以上のめもりーがあることになります。
目次へ
1.301: ps のメモリについての表示はどれぐらい信用できるの?
From: chukran@austin.VNET.IBM.COM
"ps vg" で、実行中の各プロセス毎のプロセスあたりのメモリ使用状
況の記録を見ることができます。色々なフィールドが色々な単位でメ
モリ使用状況を示しているますが、これらの数字で、メモリがどこで
使われているか全部分かるわけではありません。
第一に、ps のマン・ページはメモリ関連のフィールドの記述が正確
ではありません。以下にもっとましな説明を述べます。
RSS - 一個のプロセスの textと data セグメントにたいして使われ
ているRAM 上のメモリをキロバイトで表示します。(この値は、つねに4
の倍数であす。なぜなら、メモリは 4KBのページ単位で確保されるか
らです。)
%MEM - 一個のプロセスのRSSをRAMの全量で割った比です。RSS は、
一個のプロセスの全実メモリ使用量の一部なので、%MEM の値もまた
実際に使用される割合よりは小さいです。
TRS - プロセスの text セグメントに使われている RAM常駐メモリを
キロバイトで表示します。この値は常に RSS 以下です。
SIZE - プロセスのtextとdataセグメントにどれだけページングスペー
スが割り当てられているかをキロバイト単位で表示します。実行形式
のファイルがローカルのファイルシステムにある場合には、text に
たいして使われるページングスペースは 0 です。この数字は RSS よ
り大きくも小さくもなります。それは幾つのプロセスがページインし
ているかに依存します。RSS の方が大きくなりうる理由は RSS は
text をカウントしているが、SIZE はカウントしていないからです。
TSIZ - このフィールドは、全くの偽りです。何故なら、4の倍数でな
いし、他のどのフィールドとも相関がないからです。
上記の各フィールドは、プロセスのtextとdataセグメントについての
み表示です。この時点で知ることが不可能なセグメントのサイズに
は以下のようなものがあります。
共有ライブラリの text部分(セグメント 13)
使用中のファイル。オープンされたファイルは個々のセグメ
ントとしてメモリにキャッシュされます。伝統的なカーネルの
キャッシュバッファのスキームは AIX 3 では使われていませ
ん。
shmat で作り出される共有データセグメント。
カーネルセグメント0,カーネル拡張セグメント、そして仮想
メモリ管理セグメントなどのカーネルセグメント。
カーネルセグメントについて言えば、プロセス 0 に対する %MEMと
RSSの表示はAIX3.1の場合は、全くの偽りです。RSSがかくも大きい理
由はカーネルセグメント 0が二回カウントされているからです。
AIX3.2の場合は、これは変更されているが、全体像はまだ明らかになっ
ていません。プロセス 0 に対する RSS の値はswapperのプライベー
トデータセグメントについての非常に小さな数字を報告しません。
swapperのコードが存在する、カーネルセグメント 0 のサイズについ
ては報告しません。
まとめると、ps はシステムのメモリ使用量を知るにはあまり良いツー
ルではないということです。メモリの一部がどこで使われているかに
ついては教えてくれるますが、しかし全体の使用状況についての疑問がた
くさん残ったままになります。
目次へ
1.400: シェルのプロンプトにいろいろな情報を入れたいんだけど?
Kornシェル(ksh)の場合は、変数 PS1 が出力のたびに展開されるので、
$ myhost=`hostname`
$ PS1='$LOGNAME@$myhost $PWD \$ '
とすれば
bengsig@ieibm1 /u/bengsig $
のようにすることが出来ます。
Cシェルの場合は、
% set myhost=`hostname`
% alias cd 'chdir \!*' > /dev/null; set prompt="$LOGNAME@$myhost $cwd % "'
% cd
のようにすれば、
bengsig@dkunix9 /u/bengsig/aixfaq %
となります。
Bourneシェルの場合には簡単にはいかないので、代わりにKorn シェ
ルを使いましょう。
目次へ
1.401: ksh のコマンド行編集機能を emacs モードにするには?
From: scotte@cdsac.uucp (L. Scott Emmons)
ドキュメントには書かれていないが、ksh には、emacsモードの行編
集コマンドに矢印キーをバインディングする方法がある。.kshrc で
次のように書く。
alias __A=^P
alias __B=^N
alias __C=^F
alias __D=^B
alias __H=^A
Note that "^P" (et al) must be the actual control sequence.
"^P" は、コントロールシーケンスそのものでなくてはなりません。
"set -o emacs" と打ち込むか、.profile に入れておけばよいでしょ
う。
また、AIX3.2でこれが動作するためには PTF U406855 を手に入れる
必要があります。この問題の APAR 番号は IX25982 であり、さらに
新しい PTFが出ているかも知れません。
目次へ
1.403: ls するとコアダンプする。
From: jfh@greenber.austin.ibm.com (John F Haugh II)
背景: N人のユーザーに共有されているディレクトリがあるとします
(N >= 200)。そのディレクトリで 'ls -l' を実行します。しばらく
すると、セグメンテーションフォルトでコアダンプします。ユーザー
名を表示するときにだけこの問題は起こります(各ファイルは殆ど全
部別々のユーザーに所有されている場合である。) -g と -n オプショ
ンはうまくいきます。 -l と -o (所有者は表示するがグループは表
示しない)が問題です。
この問題は U407548 で修正されたと思います。このコアダンプが問
題になるほどたくさんのユーザーを抱えているなら(200人以上である)、
IX31403 を修正する PTF を探したほうが良いでしょう。この APAR は、
多数のアカウントとそれらをルックアップするさいのパフォーマンス
の問題を扱っています。
訳注)1993/3 end 時点での情報では、この APAR に対しては以下のPTFが出ている
U412816 IX31403 bos : GETPWNAM/GETPWENT ARE SLOW, DBM FILES IGNORED
U413596 IX31403 bosadt : GETPWNAM/GETPWENT ARE SLOW, DBM FILES IGNORED
U414081 IX31403 bosext1 : GETPWNAM/GETPWENT ARE SLOW, DBM FILES IGNORED
U414342 IX31403 bosext1 : GETPWNAM/GETPWENT ARE SLOW, DBM FILES IGNORED
U413591 IX31403 dcebase : GETPWNAM/GETPWENT ARE SLOW, DBM FILES IGNORED
目次へ
1.404: InfoExplorer の ASCII キーバインディング
From: mycroft@hal.gnu.ai.mit.edu (Charles Hannum)
立ちあげたときに、'Return' を押すと、`Basic Screen Operations'
がハイライトされて、ヘルプが表示されます。
良く眺めると、`Using Keys and Key Sequences in the
InfoExplorer ASCII Interface' というページが見つかるはずです。
キーのシーケンスとアクションが解説されている。以下に最初に必要
なものを2,3挙げておきます。
キー アクション
Ctrl-W Navigation 画面と Reading画面の間を移動します。
Navigation 画面が出ているとき、Ctrl-Wを押すと、
Reading画面に換わります。Reading画面が出ているとき、
Ctrl-Wを押すと Navigation画面に換わります。
Ctrl-O メニューバーを出したり、しまったりします。
カーソルが画面のテキスト領域にあるときに、Ctrl-O を
押すと、メニューバーがアクティブになります。メニュ
ーバーがアクティブのときに、Ctrl-O を押すと、カーソ
ルをテキスト領域に移動します。
Tab メニューバーの次のメニュー項目に移動します。プルダウ
ンメニューが表示されていないときは、右矢印キーを押
すと、次のメニュー項目が反転表示されます。
目次へ
1.405: 新しいマニュアルページをシステムに加えるには?
マニュアルページを /usr/man におきます。たとえば、
/usr/man/man1/tcsh.1 が tcsh のマニュアルページだと言う具合で
す。AIX 3.1.10 以降では、/usr/lib/makewhatis は makewhatis デー
タベース /usr/man/whatis が apropos や whatis が加えられたマニュ
アルページに付いて知るためにをアップデートするために用いられま
す。/usr/lib/makewhatis は全ての 3.2 バージョンの上で可能です。
目次へ
1.500: X11のリリース番号はどうすればわかるのか。
lslpp -h X11rte.obj を実行してください。
もし
01.02.0000.0000 COMPLETE COMMIT 03/04/93 02:05:11 root
のような出力であれば X11R4 である。
もし
U491068 01.02.0003.0000 COMPLETE COMMIT 07/28/93
12:50:42 root
のような出力であれば X11R5 である。
中にはこれらをそれぞれAIXwindows1.2.0 と 1.2.3 ということ
もある。
目次へ
1.501: ctrl-alt-backspace を押してもXセッションが止まらないよ
うにできますか。
xinit -T ではじめると ctrl-alt-backspac でXが止まらないよ う
にできます。
目次へ
1.502: HFTコンソール用の termcap/terminfo のソースはどこにある?
RS/6000, PS/2 それに RT で使われているコンソールは、以下のよう
な termcap で他のシステムの端末として使用可能である。terminfo
のソースは/usr/lib/terminfo/*.ti にある。このtermcap は
aixterm からも使える。
hf|hft|hft-c|ibm8512|ibm8513|IBM_High_Function_Terminal:\
:co#80:li#25:am:ht:\
:cm=\E[%i%d;%dH:ti=\E[25;1H:te=\E[20h:\
:nd=\E[C:up=\E[A:do=^J:ho=\E[H:\
:bs:sf=\E[S:ec=\E[%dX:\
:cl=\E[H\E[J:cd=\E[J:ce=\E[K:\
:AL=\E[%dL:DL=\E[%dM:al=\E[L:dl=\E[M:\
:im=\E[4h:ei=\E[4l:mi:\
:dm=\E[4h:ed=\E[4l:\
:so=\E[7m:se=\E[m:ul=\E[4m:ue=\E[m:\
:md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:\
:as=^N:ae=^O:sc=\E[s:rc=\E[u:\
:kl=\E[D:kb=^H:kr=\E[C:ku=\E[A:kd=\E[B:kh=\E[H:\
:kn#10:k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
:k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k0=\E[010q:\
:is=\Eb\E[m^O\E[?7h:rs=\Eb\E[m^O\E[?7h\E[H\E[J:
目次へ
1.503: どうやったら PostScriptのファイルを見ることができるのか?
どうして、dpsexec はこんなにひどいのか?
From: VRBASS@ATLVMIC1 (Vance R. Bass)
xpreview(AIXのオプションのテキストフォーマッティングサービスに
付いてくる)を使うか、comp.sources.x から GhostScript と
GhostView を手に入れて、自分でインストールすれば、可能である。
> xpreview のマンページより: xpreviewコマンドは、AIXwindows
1.2 と Motif 1.1 上で動く、troff コマンドの出力を AIXwindowsの
ディスプレイに表示するアプリケーションである。troffコマンドの
出力は、devX100, devX100K か devpsc のうちのどれか一つのデバイ
スタイプで作らなければならない。また、xpreview コマンドは、%!
で始まる PostScriptファイルも表示可能である。
訳注) xpreview は日本語 PostScript ファイルを表示する事は
できません。
dpsexec は、ドキュメント・ブラウザーとして作られたものではなく、
単なる DPS コードのデバッガと思ったほうが良い。どうしても使い
たいなら、PSコードを編集して "showpage"コマンド(これはdpsexec
をリセットして、ウィンドウをクリアする)を取り除けば、一ページ
のファイルを見ることはできる。複数ページのファイルを簡単に見る
ことはできない。
目次へ
1.504: unix:0 と `hostname`:0
1)resolv.confファイルの名前を変えることなく、そのマシーン
からローカルホストテーブルをチェックする方法かありますか。
知りません。SunOS や Ultrix では /etc/hosts で調べてくだ
さい。NIS, ONS もそうです。AIXマシーンでは5分ごとの第1
第2両方のネームサーバーの完全性をチェックする cron ジョ
ブがあります。それらが働いているなら cron は resolv.conf
の名前を変えます。そしてサーバーのチェックを続けます。そ
れが元に戻ると resolv.conf を元に戻します。このようにし
ても、第1サーバーが戻ったら第1と第2のサーバーの順序を
入れ換えるように2つの resolv.conf を作る必要があります。
第1サーバーが使えないときは、第2サーバーを問う前に第1
サーバーで時間を合わせるために問い合わせはしばらく時間を
置く。この方法はあまり洗練されたものではないが、仕事はし
ている。cron が働いているときに関連したサーバーがさった
ときによる移り変わりの間は物事は少し不安定となる。(クロッ
クのわずかな違いのことではない。)
2)コンソールディスプレイが unix:0 であるとき
もしR5なら ":." という使い型であると思う。
R4のクライアントは :0 認識できるので unix:0 は R4 のた
めのものだと思う。unix やそのホストネームを指定せずに最も
早いトランスポートメカニズムがわかる。最近はAIXwindowsのX
サーバーには2つのトランスポート方法があるが(unixソケット
とTCPソケット)多くのベンダーはトランスポート方法として分
割されたメモリーの使い方を判断している。
:0 (または :0.0, :1 など)を使うと、使えるトランスポート方
法にかかわらずベストパフォーマンスが得られる。
1.2.3 X11rte.obj(X11R5)の一部としてインストールされている
X11 Shared Memory Transport がペナルティーをこうむるとき
":0" より "unix:0" や "hostname:0" を使う方が良い。
/usr/lpp/X11/README.SMT を見てください。
3)DISPLAY として`hostname`:0をつかって受ける重要なパフォー
マンスがあるのですか
はい。unix:0 を使うと、Unixソケットが使えます。それはよく
似ているTCPソケットよりもずっと速いのです。
目次へ
1.505: aixterm をつなげる VT100キーについて
.Xdefaultファイルに次の部分を加え、VAXセッションを、
'aixterm -v -name vt100 -e telnet MYVAXHOST'で始
めてください。
-----
vt100.foreground: Wheat
vt100.background: MidnightBlue
vt100.font: Rom14.500
vt100.geometry: 80x25+0+0
vt100.vt102: true
vt100.fullcursor: false
vt100.pointerColor: coral
vt100.cursorColor: gray100
vt100.translations: F1: string(0x1b) string("OP") \n\
F2: string(0x1b) string("OQ") \n\
F3: string(0x1b) string("OR") \n\
F4: string(0x1b) string("OS") \n\
KP_0: string(0x1b) string("Op") \n\
KP_1: string(0x1b) string("Oq") \n\
KP_2: string(0x1b) string("Or") \n\
KP_3: string(0x1b) string("Os") \n\
KP_4: string(0x1b) string("Ot") \n\
KP_5: string(0x1b) string("Ou") \n\
KP_6: string(0x1b) string("Ov") \n\
KP_7: string(0x1b) string("Ow") \n\
KP_8: string(0x1b) string("Ox") \n\
KP_9: string(0x1b) string("Oy") \n\
KP_Divide: string(0x1b) string("OQ") \n\
KP_Multiply: string(0x1b) string("OR") \n\
KP_Subtract: string(0x1b) string("OS") \n\
KP_Add: string(0x1b) string("Om") \n\
KP_Enter: string(0x1b) string("OM") \n\
KP_Decimal: string(0x1b) string("On") \n\
Next: string(0x1b) string("Ol") \n\
Left: string(0x1b) string("OD") \n\
Up: string(0x1b) string("OA") \n\
Right: string(0x1b) string("OC") \n\
BackSpace : string(0x7f) \n\
Down: string(0x1b) string("OB")
.profileファイルにも、次の部分を加えてください。
XENVIRONMENT=$HOME/.Xdefaults
export XENVIRONMENT
目次へ
1.506: 過度に CPU を使わないスクリーンセイバーはありますか。
次のようなオプションを用いて xlock を使ってみてください。
xlock -mode life -count 1500 -nice 20 -root
バックグランドを隠すためには mlock -hide を使ってください。
mlock(/usr/local/tools/mlock)コードを修正して標準Xスクリー
ンセイバーが効果のあるようにできる。中断値ははじめはスクリー
ンセイバーがオフであることを意味する0にセットする。これを
120(2分)にしインターバルタイムを60(1分)にする。これ
らの間隔で24時以上でもcpuを3分しか使わない。
目次へ
1.507: X セッションの上で利用可能な色がリストされた物はどこにありますか?
/usr/lpp/x_st_mgr/bin/rgb.txt
目次へ
1.600: named が良く死ぬんだけど?
AIX3.2では、プライマリ・ネーム・サーバーの named が良く落ちま
す。
From: jpe@ee.egr.duke.edu (John P. Eisenmenger)
以下を試してください。
stopsrc -s named # named を止める
setenv MALLOCTYPE 3.1 # AIX3.1のメモリ獲得アルゴリズムを使う
/etc/named ... # SMIT を使わないで named を起動する
MALLOCTYPEを設定した後でも startsrc/smit が使えて同じ結果になるべきだと
思うが、私は確認していません。
John によれば、問題は named のコード中の malloc() にあるそうで、
Berkeleyの bind を使うことを提案している。彼が移植したものが、
ftp.egr.duke.edu の /archives/network/bind-4.8.3.tar.Z から
ftp 可能である。-- 編注
Christophophe Wolfhugel
は bind 4.9 が
AIX3.2 の上で MALLOCTYPE=3.1 なしでも正常に動作すると報告して
います。
目次へ
1.601: AIXシステムのイーサーネットパケットトレースするには?
次のようにしてください。
iptrace -i en0 /tmp/ipt
iptrace はバックグラウンドで行ってください。準備できた時に
そのプロセスidを見つけ、プロセスを止めてください。それから
次を実行してください。
ipreport -rns /tmp/ipt > /tmp/ipr
そうして出力を見てください。資料の実際のものは、r, n, s オ
プションのことが書いてありませんが、それらのオプションは出
力をレイアウトするのにとても役に立ちます。
目次へ
1.602: ブート時に automount を起動する正式な方法は?
From: curt@ekhadafi.austin.ibm.com (Curt Finch)
/etc/inittabに次の行を入れる。
automount:2:once:/usr/etc/automount -T -T -T -v >/tmp/au.se 2>&1
私はここでこの方法を正式なものと認定する。
目次へ
1.603: ttyポートを dial-in と dial-out の両方に使うには?
tty のモードを shared か delayed にする。
目次へ
1.604: ネットワークを通して、ディレクトリツリー全体を移動また
はコピーするには?
以下のコマンドで、パーミッション、uid、gid を保ったまま、ネッ
トワークを通してディレクトリツリーのコピーが出来ます。
$rsh RemoteHost "cd TargetDir; tar -cBf - ." | tar -xvBf -
解説:
リモートシステムで tar でアーカイブを作り、それを stdout(この
場合パイプ)に書き込みます。ローカルシステムで、stdin(パイプ)か
ら読み込んで、tar で展開しています。
目次へ
1.605: ping できないホストに電子メールを送るには?
From: jupiter.sun.csd.unb.ca!dedourek (John Dedourek)
AIX 3.2 はホスト名を含むメールアドレスにのみメールを配送で
きるように設定されて出荷されている。多くの組織はメールアド
レスの「ホスト名」の部分がホスト名でない(技術的には MX 名)
メールアドレスを用いている。AIX メイラーの設定を変更するに
は、root としてログインする。それからファイル
/etc/sendmail.cf を以下のように読める行の先頭のコメントマー
カ ("#") を削除する。
# OK MX
そしてマシンリーダブルな形の設定を以下のようにして作り直す。
sendmail -bz
そして最後に新しい設定を読み込ませて sendmail 起動し直すた
めに以下の内の一つを行う。
reboot
or.
stopsrc -s sendmail
startsrc -s sendmail
or.
kill -1 `cat /etc/sedmail.pid`
目次へ
1.606: diulup SLIP を設定するには?
From: marvin@tarnado.oche.de (Christian Bode)
もしあなたが slattach に問題を持たなかったらあなたは PTF
bos.obj 3.2.0.0.U411505 をインストールすべきである。ここで
は、あなたが正しく ifconfig コマンドを slip-device (例えば、
sl0 )をセットアップするために用いたと仮定する。
1. slip と呼ばれるグループを作成する。
2. smit で slip ユーザを以下のように作成する。
HEntry Fileds5
*User NAME Hslip5
ADMINISTRATIVE User? Htrue5
User ID H5
LOGIN user? Htrue5
PRIMARY group? Hslip5
Group SET Hslip5
ADMINISTRATIVE groups Hslip5
SU groups Hslip5
HOME directory H/home/slip5
Initial PROGRAM H/bin/sh5
User INFORMATION HSLIP-Dialup5
Another user can SU to user? Hfalse5
User can RLOGIN? Htrue5
TRUSTED PATH? Hnosak5
Valid TTYs H/dev/tty15
PRIMARY authentication method HSYSTEM5
SECONDARY authentication method HNONE5
Max FILE size H20971515
Max CPU time H-15
Max DATA segment H2621445
Max STACK size H655365
Max CORE file size H20485
Max physical MEMORY H655365
File Creation UMASK H0225
EXPIRATION date ((MMDDhhmmyy) H05
3. getty を用いて tty を次のように作成する:
Add a TTY
HEntry Fileds5
TTY type tty
TTY interface rs232
Descrition Asynchronous Terminal
Parent adapter sa0
* PORT number Hs15
BAUD rate H384005
PARITY Hnone5
BITS per character H85
Number of STOP BITS H15
TERMINAL type Hdumb5
STATE to be configured at boot time Havailable5
DMA on
Read Trigger 0,1,2,3
Transmit buffer count H165
Name of initial program to run H/etc/getty5
注:以下の属性は /etc/getty がinitial program to run
に指定されているのみに選択可能である。
Enable program? respawn
Run level 2
Enable LOGIN share
TIME before advancing to next port setting
H05
STTY attributes for RUN TIME Hhupcl,cread,brkint>5
STTY attributes for LOGIN Hhupcl,cread,echoe,>5
RUN shell activity manager no
Optional LOGGER name H5
4. XON/XOFF ハンドシェークを用いないようにハードウェアの属
性を変更する。
5. dialup を運営するユーザ slip の .profile をここに示す。
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:/usr/loca
l/bin:.
ENV=$HOME/.kshrc
HISTSIZE=128
export PATH ENV HISTSIZE
#
# Search for a LCK-File for our tty if there is one
#
if test -f /etc/locks/LCK..tty1
then
SHPID=`cat /etc/locks/LCK..tty1`
else
echo `date` " No LCK-File !!!" >>slip.log
exit 64
fi
#
# Search for our own Shell to get the PID for checking against LCK-File
#
SH2PID=`ps -aef |
sed -n -e 's/^ *slip *\([0-9 [0-9 *\) .*-sh *$/\1/p`
#
# Is it the the same PID as in the LCK File so that we can start working ??
#
if test $SHPID = $SH2PID
then
# remove the LCK-File because slattach does not like it.
rm -rf /etc/locks/LCK..tty1
# Add RTS/CTS Handshakeing to our own tty
stty add rts
# Startup slattach. Slattach has to have mode 4755 to be started up !!!
/usr/sbin/slattach tty1
# Just say that we are up.
echo `date` " Starting up slip-daemon " >>slip.log
# leave slattach enough time to startup
sleep 4
else
# Something must be wrong with the LCK-File
SH3PID=`ps -aef | awk ' {print $2}' | grep $SHPID`
if test ."$SH3PID" = .""
then
SH3PID="NO_SUCH_PROCESS"
fi
if test $SHPID = $SH3PID
then
# There is a living process which owns the LCK-File !!
echo `date` " Can't remove LCK-File, not owner !!!" >>slip.log
exit 64
else
# Who the hell didn't remove the LCK-File (should never happen)
echo `date` " LCK-File with no owner found !!!" >>slip.log
exit 64
fi
fi
# Get the pid of slattch so that we can kill him later on.
SLPID=`ps -aef |
sed -n -e 's/^ *slip *\([0-9 [0-9 *\) .*-.*\/usr\/sbin\/slattach tty1 *$/\1/p`
# Kill slattach if we get a signal 1 (Carrier Lost ? / Otherside-slattach
terminated )
trap "kill $SLPID; exit 0" 1
# We will have a nice sleep and nice dreamings
while sleep 256
do
:
done
ここに別のやり方がある:
From oosten@angelo.ee.ualberta.ca (Brian Oostenbrink)
Operating System: IBM AIX 3.2.1 and 3.2.3
2つのRS6000の経路をつくり Serial Line Interface Protocol
p (SLIP) は2つの USRobotics Sportster 14,400 モデムとつなぎ
ます。
AIXでのSLIPは他のものと少し違います。ifconfig コマンドはシ
リアルインターフェイスを持ち出すのに使われ、slattach コマ
ンドはコネクションで使われるシリアルポートへのインターフェ
イスをつなげるのに使われます。UUCPの文法を使って、slattach
コマンドを呼び出すと、Dialer device コマンドも呼び出されま
す。これは、2つのマシンのつなげ方です。
1、インターフェイスの配置
マシンそれぞれは、SLIPインターフェイスによる異なったIPアド
レスでなければならない。remote.j.k.l においてSLIPインター
フェイスは次のようにして始めます。
ifconfig s10 129.11.22.1 129.128.127.1 up
そして local.a.b.c においてはこのようにします。
ifconfig s10 129.128.127.1 129.11.22.1 up
AIX 3.2.3 の最新バージョンで同じSLIPインターフェイス、例え
ば # as the ptty port # を使うことは重要である。もし、
tty12 を使うなら、 s10 の代わりに ifconfig s112 を使います。
この時点でインターフェイスがつながれる準備ができました。
2、tty の配置
両方のマシンの tty ポートは、smitを使って同じ方法で形成さ
れます。
AIXの古いバージョンでは役に立たない getty の問題がいくつか
あって、直接 /etc/inittab ファイルを変えることに頼っていた。
例えば、
tty0:2:respawn:/etc/getty /dev/tty0
を
tty0:2:off:/etc/getty /dev/tty0
これで実行から、getty を無効にする。SLIP tty デバイスを作っ
たあと、Xon/Xoff フロー制御を無効にするために、ハードウエ
アのコンフィグレーションを変える必要があります。ソフトウエ
アフロー制御は、SLIPで使われません。'smit chtty' と打って、
サブアイテム2 Hardware settings を選んでください。
tty コンフィグレーションのほとんどのパラメータはデフォルト
でよい。
3、モデムの配置
モデムは次のように構成してください。
RTS/CTS フリー制御をできるようにする。
Xon/Xoff ソフトウエアフロー制御を無効にする。普通 RTS/CTS
をできるようにすれば、自動的になる。
データ速度、終端モデム = 固定
これは tty ポートからモデムへのボーレートである。固定モ
デム転送速度を使い、tty ポートとモデムの両方に適応してい
る中で最も速いものにセットしていた。最近のモデムは、モデ
ム間速度より速いモデムとシリアルポート間の転送速度を使え
る。これはデータ圧縮を効果的に使うのに必要である。セット
アップでは 38.4 ボーのポート速度をもつ 14.4 ボーのモデム
を使う。もしこれを満たしているなら、これを使い、そうでな
いときは、モデム接続速度に等しいポート速度にセットします。
USR Sportster において at&bl はこのシリアルポート速度を
最後の AT コマンドのオート速度に固定します。その
slattach コマンドの速度パラメータは、この速度が tty コン
フィグでセットされたものか確かめるために使われる。
エラー修正ができる
これはしなければならないのではないが、良いアイデアである。
データ圧縮
これは必要ではないが、とくにテキストデータ転送には役に立
つ。
自動解答
もし SLIP 接続がどちらかのマシンから認識できるなら、両方
のモデムは自動的に送答するようにセットされるべきで、そう
でなければまさいアンサリングモデムである。
モデムを形成するには良い考えで、NVRAM へのセッティングを記
録するので、正しいセッティングがいつも slattach コマンドに
よって復活できる。
4、uucp コンフィギュレーションファイル
/usr/lib/uucp/Devices
/usr/lib/uucp/Dialors
デバイスファイルはインターフェイスで使われる tty とシリア
ルポート速度の登録を含まなければならない。例えば、
Direct tty0 38400 slipdialer
slipdialer は単に Dialers ファイルのインデックスです。そし
て、Dialers ファイルの slipdialer への登録は簡単です。
slipdialer
この登録は、uucp チャットコマンドを含めることができ、その
コマンドは、slattach コマンドに含まれる。
5、slattach の実行
slattach は tty ポートのデバイスを ifconfig で作られるSLIP
インターフェイスにつなげます。そして必要なら、tty デバイス
へコマンドを送ります。例えば、remote.j.k.l は呼び出しはし
なくて入ってくるコールに対して応答するだけです。だから次の
ように実行します。
これで tty を 38400 ボーでつながります。また単に次のように
実行します。
つまり、どんなモデムコマンドもなしでは、ポートへのモデム速
度はこのように正しくセットされないかもしれません。付け加え
てモデムで保障する AT コマンドは NVRAM のセッティングにセッ
トされる。
これは 38400 ボーでのリンクを確立し、shown のようなダイヤ
ルストリングを実行します。ダイヤルストリング uucp チャッ
トストリングで「要求」「送る」「要求」「送る」....の形式で
形成されている。
'"" ATZ OK \pATDT4925871 BIS ""' という文字列は次のように
解釈されます。
モデムから ""(ヌル文字) を要求
モデムへ ATZ を送る
モデムから OK を要求
モデムへ \pATDT4925871 を送る
モデムから BIS を要求
BISはCONNECT STRINGの終りです。要求文字として接続されたモ
デムによって返される文字の一部が使える。すべての接続は
CONNECT文字を返すはずなので、単に CONNECT を要求することは
うまい。
uucp の第1パラメータはモデムから要求される文字列でモデム
がコマンドを与えられるまでヌル文字であるのでヌル文字は必要
である。
slattach コマンドの最後のパラメータ(4)はデバッグレベルで
す。4のデバッグレベルはモデムの状態をチェックするのに役に
立つ uucp チャット文字列ですを表示できます。
6、送付
もし、したいことが2つのホスト間の会話なら ifconfig は十分
です。もし他のホストと会話しようとSLIPを実行するならアドレ
スを通知しなければなりません。
1) arp -s 802.5 iago 10:00:5a:b1:49:d8 pub
802.5 がトークンリングネットワークの場合、ハードウエアア
ドレスは `netstat -v` で得られ、iago はSLIPクライアント
( My PC at home :)、pub は published の意味で重要な部分
です。boot 時にこれを実行したいかもしれない。
SLIP リンクを通す送付はゲートウェイでの送付と同じである。
ifconfig コマンドの自動発行で2つのSLIPマシン間のルートが
セットアップされる。/etc/hosts やデータベースへの登録が、
それぞれのマシン尾イーサーネットアドレスと同じSLIPアドレス
を用いた同じマシンネームをもってなされる。例えば、
/etc/hosts の中の remote.a.b.c(と他のマシンのremote.a.b.c
ethernet) において
host ファイルのイーサーネットアドレスが、SLIPアドレスの前
に位置するのは良い。だから、remote.a.b.c は、イーサーネッ
トアドレスが解析される。上記の使い方のとき同じ名前のリバー
スファイルに両方のアドレスを持つことは重要なことである。
SLIP アドレスからくるように2つのSLIPマシンのうちの1つか
らのNFS要求をマシンが解釈することによる slip リンク上のNFS
マウントに難しさがあることはわかっている。この問題は、両方
のアドレスが同じ名前に対して逆解析を持つことで取り除くこと
ができた。
7、パフォーマンス
14.4 ボーのモデムと 38.4 ボーのポート速度で、テキストファイ
ルでは 3.5KB/s、圧縮ファイルで 1.3KB/s の ftp を通した転送
速度であることがわかっています。
目次へ
1.607: DCEはどこで論議されているのですか。
DCE は Distributed Computing Environment の略で異種プラッ
トホームのフレキシブルクライアントサーバーアーキテクチャー
です。くわしくは comp.unix.osf.misc を見てください。
目次へ
1.608: どのようにして /var/spool/mail をマウントできますか。
/usr/local disk を分割しています。/usr/local/spool/mail と
/var/spool/mail というディレクトリーがあるのでそれをソフト
リンクさせます。
いくつかの問題がNFS経由のmailディレクトリーの分割に対して
報告されています。それらの問題はメカニズムをロックしている
NFSファイルのために2つ以上の sendmail がおこったときやメ
イルリーダーが同時にユーザーのmailファイルにアクセスした時
におこります。
ここで別の方法を使います。ユーザーそれぞれの
$HOME/.forward ファイルの中に
xxx@mainserver.domain.name
があります。xxx はユーザーノードで mainserver.domain.name
はマシンの中のフルホスト名です。すべてのマシンに入って来る
メールはmainserverがこの行を無視する限りmainserverへ転送さ
れる。
目次へ
1.609: 速い getty の発生について
問題はセッティングするモデムの数によっておきる。エコー(共
鳴)でモデムにおいてコールを受けることができないということ
がほとんどです。ヘイズ言語で、ATEO はエコーを無効にします。
もしエコーを可能にすると、DTE 似よって送られるログインプロ
ンプトがエコーバックされます。それからモデムがすぐに再度エ
コーバックする"password:"プロンプトが出る。このサイクルが
続きます。
チェックする別のセッティングにモデムの DTE への応答を制御
する Q レジスターがあります。ヘイズコマンドのATQ0は結果を
コード化させます。Q レジスターは、X,V レジスターと共に DTE
へ出入りするコールの状態と確立された接続タイプを伝えます。
出て行くコールに対しては、結果をコード化させたいが、入って
くるコールに対してはしない。もし、コード化が( ATQ0 を通し
て)可能なら、コールが入ってきたとき、(もし、ATV1 と ATX4
がセットされているなら)"RINGING"、"CONNECTED"などの文字列
をモデムはローカルな DTE へ送ります。getty は誰かがログイ
ンしようとしていることを察知し、パスワードプロンプトを送る。
テレビットや他の高級モデムには、コールが出るときだけコード
を渡す ATQ2 セッティングがある。その他には、それを無効にす
る必要があり( ATQ1 )、コールが出るときに可能にする。
DSR のセッティングは問題の原因でありうる。理論上、モデムは
CD が見つけられたときだけ DSR を呼び出すだけで、そして、モ
デムは CTS を呼び出す。VAX のようなコンピュータはモデムが
DSR を呼び出しだ後 30 秒待つ。もし、CD がそのときまでにオ
ンでなければ、コンピュータはモデムのリセットをする DTR を
読み飛ばす。DSR はキャリアーが見つけられたときだけ、呼び出
されるべきである。ヘイズ言語のセッティングでは AT&S1 です。
DCD のセッティングは、キャリアーの真の状態を表すものである。
CD はずっとオンの状態のままにさせておく( AT&C0 )。これは良
くなくて、AT&C1 にセットしてください。
ほとんどのモデムは、DTR の転送で不揮発性メモリーから保存さ
れたセッティングを再ロードできます。これはコールが落ちたと
きにモデムの再セットには役に立つ。AT&D3 を使うとこれができ
ます。
ダイヤルで呼び出すのに、AT E0 Q1 &C1 &D3 & S1 &W をセット
してください。&W はメモリーにセッティングを保存します。&D3
によって再ロードされます。
目次へ
1.610: AIXは圧縮されたSLIP(CSLIP)をサポートしていますか。
いいえ。つまりVJ圧縮はないということでう。標準のSLIP以上の
ものが欲しい方は section5.07 の ppp を見てください。
目次へ
1.611: AIXシステムで anonymous ftp はどのようにセットアップ
するのでしょう。
'/usr/lpp/tcpip/samples/anon.ftp' を見てください。シェルス
クリプトで anonymous ftp をあなたの local な RS/6000 でせっ
とあっぷします。
目次へ
1.900: SCSI-1 と SCSI-2 の相互可動性ってなに?
From: drr
A. SCSI-1 devices are supported on a SCSI-2 adapter. This
config will provide SCSI-1 performance.
A. SCSCI2 アダプタで SCSI-1のデバイスを使うことが出来る。
パフォーマンスは SCSI-1 のものになる。
B. SCSI-2 devices are supported on a SCSI-1 adapter. This
config will provide SCSI-1 performance.
B. SCSI-1のアダプタで SCSI-2のデバイスを使うことが出来る。
パフォーマンスは SCSI-1 のものになる。
C. A mix of SCSI-2 and SCSI-1 devices are supported on a SCSI-1
adapter. All devices will have SCSI-1 performance.
C. SCSI-1のアダプタで SCSI-2とSCSI-1のデバイスを同時に使うことができる。
全てのデバイスで、パフォーマンスは SCSI-1のものになる。
D. A mix of SCSI-2 and SCSI-1 devices are supported on a SCSI-2
adapter. SCSI-2 devices will have SCSI-2 performance (10 MB/sec)
and SCSI-1 devices will have SCSI-1 performance (4-5 MB/sec).
D. SCSI-2アダプタで SCSI-2とSCSI-1のデバイスを同時に使うことが出来る。
SCSI-2のデバイスのパフォーマンスは、SCSI-2(10MB/sec)のものになり、
SCSI-1のデバイスのパフォーマンスは、SCSI-1(4-5MB/sec)になる。
目次へ
1.901: キーボードを抜いた後、また元どおり付けるには?
From: Mickey Coggins and Anne Serre
もし、走行中のシステムからキーボードを抜いて、また単に差し込ん
だとすると、キーマップが正しくなくなっているだろう。例えば、
Caps Lock や Ctrl キー等が正しく動作しないだろう。
解決法: 次のコマンドを実行する
/usr/lpp/diagnostics/da/dkbd
画面が一旦暗くなった後、何度かビープ音がなり、キーボードがリセッ
トされる。これは、Xwindows でも hft でも NLS でもどんな場合で
も有効である。
目次へ
1.902: pcsim, DOS エミュレータをセットアップするには?
pcsim をインストールするためには、ブート可能な DOS のディ
スケットを持っていなければならない。DOS3.3, 4.x, 5.0 が動
作するだろう。IBM は公式には pcsim で DOS 5.0 をサポートし
ていないが、私はそれについて問題無く使用できている。ただ
UMB やメモリマネージャの類で華麗にしようなどとは試みない事。
ブート可能な DOS ディスケットをドライブの中にいれて、以下
のようにする。
$ touch /u/dosdrive (これは DOS エミュレーションのため
の AIX のファイルである。)
$ pcsim -Adiskette 3 -Cdrive /u/dosdrive
すると A プロンプトを得るので、以下のようにタイプする:
A> fdisk
あなたの選ぶだけの如何なるサイズの仮想的な C ドライブを作
成する。それを後で拡張する事はできないので、あなたの必要に
十分な程大きくする事。
A> format c: /s ( 仮想 C ドライブをフォーマットする。)
pcsim より ESCpcsim(ESC キーの後につづけて pcsim.) で抜ける。
simprof ファイルを作成する。以下のように始める事。
Adiskette : 3
Cdrive : /u/dosdrive
lpt1 : name of printer queue
refresh : 50
dmode : V
mouse : com1
これでいついかなる時でも pcsim とタイプする事で pcsim を始
動させる事ができる。フロッピーがドライブの中に無い事を確認
する事。さらなる情報に付いては、出版物 SC23-2452 "Personal
Computer Simulater/6000 Guide and Reference." をあたられた
い。
目次へ
1.903: AIX と DOS ディスケットの間でファイルを交換するには?
DOS ディスケットと AIX の間でファイルを交換するためのコマ
ンドは bos extensions の中の一つにある。そのコマンドは
dosread, doswrite, dosdir, dosdel, そして dosformat である。
多くのユーザが AIX 本来のプログラムよりも prep.ai.mit.edu
からの "mtools" パッケージ時の方が優れていると話している。
目次へ
2.00: C/C++
多くの人が信じこんでいるのに反して、RS/6000 の C 言語環境はそんなに特別な
ものではありません。C コンパイラーには非常にたくさんのオプションがあって、
コンパイラーをどのように動作させるか、C のどの"方言"をコンパイルするのか、
特定の言語構文をどのように解釈するか、などをコントロールできます。
InfoExplorer には、ユーザーズ・ガイドとリファレンスマニュアルが含まれて
います。(xlc 1.3.0.X の manual は /usr/man/man1 に存在します.)
RS/6000 の C コンパイラは、xlc/c78 で起動すると ANSI モードになり、cc で
起動すると RT (すなわち IBM 6150, AIX 2)互換モードになる。各モードのデフォ
ルトオプションは、/etc/xlc.cfg ファイルで設定されている。別のスタンザを
追加し、/bin/xlc へのリンクを作ることで、特別なモードで起動するコマンド
を作ることもできる。
/usr/lpp/xlc/bin/README.xlc に Cコンパイラーについての情報が収められてい
る。/usr/lpp/bos/bsdport には、有益な情報が、特に BSD ユーザーに役立つ情
報が含まれている。 (bsdcc という BSD 環境に沿った C コンパイラのモードも
ここに書いてある.)
/etc/xlc.cfg というファイルを見ると _IBMR2 というシンボルがプリデファイ
ンされているのが分かり、RS/6000 特有のコードを #ifdef で切り分けるのに使
える。また, AIX 固有のものは _AIX で切りわけ可能である. さらに xlc 1.3
では AIX 3.2 に固有のものは _AIX32 (3.1 にはこのシンボルは定義されていな
い) で切り分けることも可能になっている.
目次へ
2.01: alloca がうまく動かない
メモリ確保ルーチン alloca() は、特に GNU のソフトウェアで有名なルーチン
である。alloca は、ブロックを抜け出たときに自動的にフリーされるような方
法でメモリを獲得する。ほとんどの実装では、スタックポインタの調整で行われ
ている。すべての C 言語環境でサポートされる関数ではないので、あまり使用
はすすめられないが、xlc コンパイラには (一種のマクロとして) 含まれている。
コンパイラに対して、alloca を使おうとしていることを知らせるには、
#pragma alloca
という行を、C のソースモジュール中のallocalが呼ばれる文の前に置かなけれ
ばならない。そうしないと、xlc は alloca を特別なものと認識ぜず, 関数とし
て扱うため、リンクの段階でエラーになる。
AIX3.2 からは、xlc 起動時に -ma フラグを付ければ, ソースに変更を加えなく
ても #pragma の処理を行ってくれるようになった.
目次へ
2.02: BSD のプログラムをコンパイルするには?
/usr/lpp/bos/bsdport というファイルに、BSD用に書かれたプログラムをAIX3.1
へ移植するための情報が書かれている。このファイルの内容はBSD以外のシステ
ムから移植する際にも同様に役に立つ。
大部分の"標準的"な BSD プログラムの場合は、以下のようなコマンドラインを
使う。
$ cc -D_BSD -o [loadfile] [sourcefile.c] -lbsd
プロトタイプなしで宣言されているシステムコールを使っている場合は、-D_NO_PROTO
フラグを使えば良い。
目次へ
2.03: リンカーは、今まで使ってのとは大分違うの?
その通り。あなたが使ったことのあるリンカーとはあまり似ていない。
- (コマンドラインで指定する)オブジェクトファイルとライブラリの順番は重要
ではない。リンカーはライブラリ中のファイルも含む全オブジェクトファイルを
メモリ中に読み込み、一回で実際のリンクを行ってしまう。他のシステムでは、
ld コマンドに二回ライブラリ名を指定しなければならないような場合でも、
RS/6000 ではその必要はなく、そうするとかえってリンクが遅くなる.
- RS/6000 のリンカーの特長の一つは、実行形式中のオブジェクトファイルを新
しいバージョンのオブジェクトで置き換えることが出来る点である。
$ cc -o prog prog1.o prog2.o prog3.o # prog を作る
$ cc -c prog2.c # prog2.c を再コンパイル
$ cc -o prog.new prog2.o prog # prog.new を prog と prog2.o
# から作る
- 標準Cライブラリー /lib/libc.a は共有でリンクされる。すなわち、実際のコー
ドはプログラムとはリンクされず、プログラムのロード中に一回だけロードされ
ダイナミックにリンクされる。
- ld コマンドは実際には /usr/lib/bind にあるバインダーを呼び出す。ld に
特別なオプションを与えて、バインダーの起動方法の詳細を知ることができる。
ld のマンページかInfoExplorerを参照されたい.
- プログラムがたくさんのライブラリ(.a ファイル)を使って普通にリンクされ
ている場合、各ライブラリファイルを一つのオブジェクトに プリリンクするこ
とで、最終的なリンクを速くすることができる。例えば、以下のようにする。
$ cc -c prog1.c prog2.c prog3.c
$ ar cv libprog.a prog1.o prog2.o prog3.o
$ ld -r -o libprog.o libprog.a
$ cc -o someprog someprog.c libprog.o
これによって、prog1.o,prog2.o,prog3.o の間の全ての内部参照は解決されて、
libprog.o にセーブされる。そして、プログラムをリンクするのに libprog.aの
代わりに libprog.o を使えば、リンクの速度が速くなり、someprog.c が, 例え
ば prog1.o と prog2.o しか使っていなければ,この二つのモジュールだけが最
終的なプログラムに入ることになる. これは, 上述したように, バインダーが
一つのオブジェクトモジュールの中の個々のオブジェクトを取り扱うことができ
るためである.
-lprog (libprog.a をリンクする) オプションを使った場合に同様の効果をあげ
たい場合は, prelink されたモジュールの名前 (上では libprog.o) を
libprogP.a (P で prelink されたモジュールを示す) に変更し -lprogP と指定
すれば良い. この場合は libprogP.a はライブラリではないので, これに対しアー
カイバ (ar) を利用することはできない.
Fortran と C を混在させる場合の処理については 3.01 を参照されたい
Dave Dennerline (dad@adonis.az05.bull.com) 氏によると, (一般に良く用いら
れる) 相互関係のすくないライブラリを複数使う環境 (極めて良くあるパターン
であろう) では, 内部参照の量は大したことがないので, AIX の prelink の機
能はそれほど有効ではないらしい.
目次へ
2.04: /lib/libc.a の内容を共有しないプログラムの作り方は?
cc -o prog -bnoso -bI:/lib/syscalls.exp obj1.o obj2.o obj3.o
のように -bI option をつけてコンパイルするとスタチックリンクされた実行形
式が得られる.
Marc Pawliger (marc@sti.com) 氏によれば
AIX 3.2.5 (AIX Windows 1.2.5) は Xserver の高速化のために SMT (Shared
Memory Transport) といわれる手法を採用している. このため X のアプリケー
ションを静的にリンクする際には -bI:/usr/lpp/X11/bin/smt.exp を
-bI:/lib/syscalls.exp に加えて指定する必要がある. このようなライブラリは
SMT を備えていない環境では動作しない. 詳細は /usr/lpp/X11/README.SMT を
参照のこと.
(注) 3.2.4 と 3.2.5 の SMT は違うので 3.2.4 の SMT を静的にリンクしたバ
イナリは 3.2.5 の上で動作するとは限らないので注意が必要である.
目次へ
2.05: 自分用の共有メモリ利用のライブラリはどうやって作るの?
共有メモリを利用したライブラリを作る際には, 共有されるモジュールには未定
義のシンボルがあってはならないことを認識しなければならない. すなわち, あ
なたの書いたプログラムが /lib/libc.a の中のモジュールを利用している場合
は /lib/libc.a をも共有ライブラリ中にリンクする必要がある. Mike Heath
(mike@pencom.com) 氏によれば, 相互の参照がある場合でも, 1つのコードを複
数の共有ライブラリに分割するのは可能だそうである. この場合 import/export
の関係を熟知しておくことが必要である. おそらく彼か誰かがこのような例を示
してくれるであろう.
sub1.c の中には外を参照しているものはなく, sub2.c が /lib/libc.a の中身
を呼んでいる場合を考える. この場合2つの export 記述ファイル sub1.exp,
sub2.exp を書かなければならない. 下の例と ld のマニュアルを一緒に読めば
理解できるであろう.
---- sub1.c ----
int addint(int a, int b)
{
return a + b;
}
---- sub2.c ----
#include
void printint(int a)
{
printf("The integer is: %d\n", a);
}
---- sub1.exp ----
#!
addint
---- sub2.exp ----
#!
printint
---- usesub.c ----
main()
{
printint( addint(5,8) );
}
以下が共有ライブラリ libshr.a の作り方と, usesub のコンパイル・リンク方
法である. (注: sub2shr.o を作る際に -lc が必要な理由は libc.a の printf
を使っているためである.
$ cc -c sub1.c
$ ld -o sub1shr.o sub1.o -bE:sub1.exp -bM:SRE -T512 -H512
$ cc -c sub2.c
$ ld -o sub2shr.o sub2.o -bE:sub2.exp -bM:SRE -T512 -H512 -lc
$ ar r libshr.a sub1shr.o sub2shr.o
$ cc -o usesub usesub.c -L: libshr.a
$ usesub
The integer is: 13
$
目次へ
2.06: リンクが変なエラーメッセージで失敗するのですが, なぜ?
単純です, リンカ (実際にはバインダですが) が必要なメモリを得ることができ
なかったのです. あなたの ulimit が小さ過ぎたか十分なページング領域がなかっ
たためでしょう. AIX のリンカは一般の UNIX のリンカと比べて大きな仮想記憶
領域を必要とします. 複雑なオブジェクトのリンクに 10,000 ページ (1 ページ
は 4K) を使うこともザラです.
ulimit の値が小さい場合は 'BUMP error' と表示され, 仮想記憶領域の不足の
際には 'Binder killed by signal 9' が表示されます.
まず ulimit を確認しましょう ksh では 'ulimit -a' ですべての制限が表示さ
れます. 'ulimit -m 99999' と 'ulimit -d 99999' で使用可能メモリ域とデー
タ域が十分に大きな値になるはずです. もしこの設定ができない時は, あなたの
使っているシステムは十分なページング領域を持っていません.
さて, ページング領域を増やせない場合, とりあえず以下のことを確認してみて
は如何でしょう
- 同じライブラリを2回呼んでいないか. (不要です)
- 一人以上のユーザがリンカを起動していないか? 同時には1つにしましょう
- 部分リンク, つまり -r オプションを付けて (未定義のシンボルがあっても許
す) いくつかのオブジェクトとライブラリをリンクして一時的な出力を得る, を
繰り返し試して下さい. これにより個々のリンクに必要な仮想記憶の量を減らす
ことができます.
このようにして, 一回に1つずつオブジェクトまたはライブラリを加えていくこ
とで, 一般の UNIX のリンカの挙動を真似できます.
ページング領域を増やす際は, 新たなページング領域を別のディスク上に付け加
えることをお勧めします. 1つ目のディスク上に空き領域を残しておきましょう.
将来ページング領域を減らす際に, 1つのスペースを減らすのは面倒ですが, な
くすのは簡単なのでの作業が簡単になります.
目次へ
2.07: malloc について
malloc() は BSD 4.3 の malloc() を元にしたレートアロケーション・アルゴリ
ズムをスピード向上のため使っています. これは実際に確保された領域に触るま
ではページを割り当てないことで大きなメモリ領域を割り振ります. しかし, 残
念なことに必要なメモリが存在しない時にうまく死んでくれない欠点を有してい
ます. InfoExplorer で Paging Space Overview の部分を見て下さい. またこの
FAQ のリンカの部分のうまく死なない例の注釈を参考にして下さい.
メモリ不足の場合をプログラムが知るためには SIGDANGER (33) を取り扱えるよ
うにしておく必要があります. デフォルトでは無視します. ページング領域が残
り少なくなった時には SIGDANGER がすべての PROCESS にわたります. そしてそ
れでもページング領域が減少すると SIGKILL (9) がもっともページを使ってい
るプロセスに対して送られます.
malloc() は AIX3.2 で変更を受け, メモリに関してもっと厳しい管理をするよ
うになりました. もし, AIX 3.2 で malloc() を使ったものでトラブルがあった
時は環境変数 MALLOCTYPE を 3.1 に (sh では MALLOCTYPE=3.1; export
MALLOCTYPE, csh では setenv MALLOCTYPE 3.1) 設定しててみて下さい.
AIX 3.2 は Early Page Space Allocation (EPSA, 事前に十分なページ領域を確
保する) と呼ばれるアルゴリズムの選択も可能にしています. (詳細は
/usr/lpp/bos/README.PSALLOC, 問題番号 IX38211 に対するPTF U422496) これ
は early allocation と late allocation を切替える環境変数 PSALLOC を用意
し "early" とすることでデフォルトの "late" から切り替わります.
目次へ
2.08: xlc は 'extern char *strcpy()' を受け付けないのか?
の中で以下のように strcpy() は __strcpy() に再定義されており,
# define strcpy(__s1,__s2) __strcpy(__s1,__s2)
__strcpy() の方を xlc がインライン展開して使うためで, これと 'extern
char *strcpy()' がぶつかるのです. 解決するためには 'extern ...' を消すか,
-U__STR__ と xlc のオプションに加えるかのいずれかでしょう.
目次へ
2.09: 'Parameter list cannot contain fewer ....' というエラーがでますが..
これも上と同じでしょう... (訳者疑問???? こっちは -D_NO_PROTO のような気
がしますが...????)
目次へ
2.10: '(sometype *) somepointer = something' を受け付けないのは?
gcc を使ったものに上記の表現を見かけます. しかし, 式の左側をキャストする
ことは標準の C では許されていないので, cast は式の右側に持ってくるべきで
しょう. cc では warning ですが, xlc ではエラーになります.
(???? dvi2ps 1.9j では cc でも, マクロと組合わされているため, エラーにな
ります. ????)
目次へ
2.11: その他のエラーについて,
305 | switch((((np)->navigation_type) ? (*((np)->navigation_type)) :
((void *)0)))
.a...........
a - 1506-226: (S) The second and third operands of the conditional
operator must be of the same type.
AIX では NULL は (void *)0 であり, xlc は ? : 表記では 第 2, 3項の方が一
致していないとエラーになるためです. 上記の例では 2 項はポインタではなく
3 項の NULL をスカラとして扱っているためにエラーになります. (ANSI C では
NULL は nil のポインタです.) この場合は NULL の変わりに 0 を使いましょう.
2.12 アセンブラのコードを出力できますか?
xlc は ver. 1.3 から -S option でサフィックスが .s のアセンブラコードを
出力するようになりました. -qlist option でサフィックス .lst の アセンブ
ラのリスト出力を行います.
逆アセンブラも xlc 1.3 では /usr/lpp/xlc/bin/dis に存在します. また xlC
2.1 (C Set++) を使っているかたは /usr/lpp/XlC/bin/dis にあります. これら
を使ってオブジェクト, 実行可能形式をアセンブラコードに変換することもでき
ます.
目次へ
2.13: Curses
Curses を用いたアプリケーション野場合は -ltermlib ではなく -lcurses を使っ
て下さい. -DNLS つきでコンパイルした場合は curses に問題があると報告され
ています.
Peter Jeffe 氏によると
PF key のエスケープシーケンスが1つの入力ではなく, 複数のキャラクタとし
て扱われてしまうことがあるそうです. (getch() は PageUp key を 'ESC [ C'
と返します)
これらを直す手段はあります. エスケープシーケンスが飛んでくるタイミングが
問題なのです. ESCDELAY という環境変数があります. これは ESC がただの ESC
かあるいはエスケープシーケンスの最初なのかを判断するための遅れを表し, デ
フォルトは 500 ですが, これを早くすることで解決できると思います.
Christopher Carlyle O'Callaghan 氏の拡張された
curses に対するコメントです.
1) このサンプルは User Interface Programming Concepts の 7-13 ページに収
録されたものですが, 間違っています.
#include
#include
main()
{
PANE *A, *B, *C, *D, *E, *F, *G, *H;
PANEL *P;
initscr();
A = ecbpns (24, 79, NULL, NULL, 0, 2500, Pdivszp, Pbordry, NULL, NULL);
D = ecbpns (24, 79, NULL, NULL, 0, 0, Pdivszf, Pbordry, NULL, NULL);
E = ecbpns (24, 79, D, NULL, 0, 0, Pdivszf, Pbordry, NULL, NULL);
B = ecbpns (24, 79, A, D, Pdivtyh, 3000, Pdivszp, Pbordry, NULL, NULL);
F = ecbpns (24, 79, NULL, NULL, 0, 0, Pdivszf, Pbordry, NULL, NULL);
G = ecbpns (24, 79, F, NULL, 0, 5000, Pdivszp, Pbordry, NULL, NULL);
H = ecbpns (24, 79, G, NULL, 0, 3000, Pdivszp, Pbordry, NULL, NULL);
C = ecbpns (24, 79, B, F, Pdivtyh, 0, Pdivszf, Pbordry, NULL, NULL);
P = ecbpls (24, 79, 0, 0, "MAIN PANEL", Pdivtyv, Pbordry, A);
ecdvpl (P);
ecdfpl (P, FALSE);
ecshpl (P);
ecrfpl (P);
endwin();
}
2) と (x は数字) を一緒にインクルードしてはいけませ
ん. 再定義のワーニングまたはエラーになります.
3) curses と拡張 curses は別の物です. どちらか一方を使って下さい. もしマ
ニュアルに拡張 curses には過去 (curses) とコンパチビリティがあると書かれ
ていても信じてはいけません. curses のみの場合は だけで十分で
す.
4) -lcur と -lcurses を両方同時に指定すると, Memory fault を起こしコアダ
ンプします. 拡張 curses には -lcur のみ, curses には -lcurses だけです.
5) PANE を作る場合, 'ds' に 0 以外を用い 'du' に 'Pdivszf' を使う時には
'ds' の値は無視されます. (7-13 ページは間違っています). 理由はまだわかっ
ていませんが, 'Pdivszc' はうまく動きません. (少なくともどう使ったらちゃ
んと動くのかわかりません)
6) bug を見つけ, 何がおきているかを見つけ出したい時には -g に加え
-qextchk というoption を c compiler につけてみて下さい.
-qextchk は, 正しい数の引数を関数に渡しているかをチェックします.
7) 80 カラムを使い切る場合でも 80 を指定しては駄目です. 79 を使って下さ
い.
8) パネルを作る際は, 少なくとも 1 つの PANE を作らなくてはなりません.
そうでないと Memory fault を起こし, コアダンプします.
9) パネルを作る際に枠をつけないとタイトルを表示させることはできません.
10) スクリーンをスクロールさせるには, 以下のプログラムです
wmove (win, 0, 0);
winsertln (win)
11) delwin(win) は EXTENDED WINDOWS では動きません.
ウィンドウが消えたかのように見えますが, 実際は次の処理が必要です.
touchwin(win)
wrefresh(win)
これらを, コールした順番で行って下さい. (A->C->B の順であったら リフレッ
シュも Aー>Cー>Bの順です.) そうでないと, 表示が同じになりません.
window を配列として last window index に注意を払っていることが最善でしょ
う.
12) mvwin(win, line, col) は現在の viewport もしくはそのsubwindow にしか
使えません.
13) wcolorout(win) を用いてwindow のアトリビュートを決めたら,
chgat(numchars, mode) 等の関数は使えないか, かなり使いにくくなっています.
目次へ
2.14: link の速度を向上させる方法
2.03 から 2.06 を参照して下さい.
John LoSecco (losecco@undpdk.hep.nd.edu) 氏と Gary R. Hook
(hook@chaco.aix.dfw.ibm.com) 氏によると
oahu.cern.ch の pub/aix3 に (ftp.fujita3.iis.u-tokyo.ac.jp の pub/rs6000
にもあります) tld と呼ばれるツールがあり, これは既存のリンカ (バインダ)
のラッパで, 大きなライブラリのリンクの場合は 3 から 4 倍も速くなります.
目次へ
2.15: deadbeef とは?
dbx を使っている際に, 時々レジスターの表示に 'deadbeef' を見かけることが
あります. これは 0xdeadbeef という16進表記であり, ある単語です (RS6000
はテキサス州で作られているんで, 牛はいっぱいいます :). この16進数はプ
ログラム起動時に, まだ使われていないレジスタを表しているようです.
目次へ
2.16: AIX 3.2 での静的なリンクの正しい方法
xlc -bnso -bI:/lib/syscalls.exp -liconv -bnodelcsect
目次へ
2.17: ライブラリの中の export されているもののリストを得る方法
Dave Dannerline (dad@adonis.az05.bull.com) 氏による.
以下の shell script は export 可能であるもののリストを取り出すもので, 共
有ライブラリを作る際に有効でしょう. ユーザは, 何を import して, 何を
export list に入れるのかを決めないといけません.
#!/bin/ksh
#
# mkexps - make export list
# This program creates an export list by combining all the "." and normal names
# into one list.
#
if [[ "$#" -ne 1 ]]
then
print "Usage: mkexps ArchiveFile"
exit -2
fi
if [[ ! -f $1 ]]
then
print "mkexps: Cannot open file \"$1\""
exit -1
fi
dump -g $1 | awk '
BEGIN {
top = 1
}
/^[ ]*[0-9][0-9]*/ {
if ( (n = index( $2, "." )) > 0 ) {
export_array[ top++ ] = substr( $2, n+1, length( $2 ))
}
else {
export_array[ top++ ] = $2
}
}
END {
for ( i = 1; i < top; i++ )
{
print export_array[ i ]
}
}' | sort | uniq
目次へ
2.18: imake, makedepend がないのですが...
David L. Crow (crow@austin.ibm.com ) 氏による
AIXWindows 1.2.3 以降 (X11R5) の X11dev.src package が必要です. R5 でな
い X には xmkmf はありません.
X11dev.src を導入後, imake, makedepend, config file その他を作り,
install する方法を以下に書きます.
cd /usr/lpp/X11/Xamples
make Makefile
make SUBDIRS="config util" Makefiles
make SUBDIRS="config util" linklibs
make SUBDIRS="config util" depend
make SUBDIRS="config util"
make SUBDIRS="config util" install
目次へ
2.19: binary が使っている共有メモリを見つける方法は?
"dump -H " を使って下さい. 下の例の /unix 以外ののものが必
要なライブラリです. 上は静的にリンクした bash の例で, 下は共有メモリを使っ
た時の例です.
INDEX PATH BASE MEMBER
0 /usr/lib:/lib
1 / unix
INDEX PATH BASE MEMBER
0 ./lib/readline/:./lib/glob/:/usr/lib:/lib
1 libc.a shr.o
2 libcurses.a shr.o
目次へ
3.00: Fortran とその他のコンパイラ
この節では C/C++ 以外の全てのコンパイラを扱います。 Fortran では浮動小
数の扱い、 とくに浮動小数例外の扱いに問題があるようです。
目次へ
3.01: Fortran と C のコードを併用した時にうまくゆきませんでした。 どうしてですか?
いくつかの関数 (例えば getenv, signal, system など) は Fortran と C そ
れぞれのライブラリに含まれていますが、 その引数は異なります。 最近まで
C と Fortran それぞれから getenv を呼ぶようなプログラムを書いた時は、
コマンドラインで正しいライブラリが最初になるように注意深くリンクしな
ければなりませんでした。 これらの操作は Version 1.5 以降のコンパイラで
は不要となりました。
目次へ
3.02: どうすれば Fortran のライブラリを静的にバインドし、 かつ C のライブラリを動的にバインドすることができますか?
From: amaranth@vela.acs.oakland.edu (Paul Amaranth)
[編者注: ここで述べられている事の一部は C コンパイラの節ですでに述べら
れていますが、 わたしは非常に価値があると考えたので、 ここにも全て掲載
しました。]
リンカとバインダはいろいろなことができるプログラムですが、 やりたい事
をする方法はいつもはっきりしていません。 例えば共有ライブラリを使いた
くなく、 必要な関数をオブジェクトに静的にバインドしたい時があります。
もしくは (例えば Fortran と C で書かれた) 2種類の同じ関数を使う必要が
ある時もあります。 ここでは私の最近の経験の結果を述べます。 私にヒント
を与えてくれた Daniel Premer と私の SE である Brad Hollowbush に感謝し
ます。 誤りと不注意は私によるものです。 私はよくリンカという言葉とバイ
ンダという言葉をよく混同してしまいます。 これらの経験は AIX 3.1.2 上で
のものですが、 これらのほとんどは 3.1 以降でも適応できるでしょう。
1) いくつかの C プログラムをランタイム・ルーチンにバインドしたいのです
が、どうすれば良いのですか? [2.04 節においても同様な事が述べられてい
ます。]
link をする時に -bnso という引数を指定してください。 さらに
-bI:/lib/syscallsexp という引数を指定するとよいでしょう。
$ cc *.o -bnso -bI:/lib/syscalls.exp -o foo
これでまるで手品のように必要な事を全てしてくれます。 これが全ての必要
な関数をバインドする事に気を付けてください。 引数 -bI はリンカにこれら
のエントリ・ポイント (この例ではシステム・コール) が実行時に動的に解決
されるようリンカに指示します。 これを除くと多くの未解決の参照と言うメッ
セージが出るでしょう。
2) a) 顧客が Fortran のランタイム ルーチンを購入しなくても良い様にする
ためと、 b) ランタイム ルーチンの新しいリリースによって動作が変わる事
で苦労するのを避けるため、 Fortran のランタイム ルーチンを静的にバイン
ドしたいと思います。 こうするために 1) で述べられたバインダの引数を二
つ指定する事は可能ですか?
可能であるはずなのですが、 少なくともバージョン 3002 では、 getenv の
参照でリンカ・エラーとなります。 さらに Fortran と C の関数間では多く
の潜在的な (関数名などの) 衝突があります. 簡単な方法ではうまくゆきま
せん. この為の C と Fortran のための2段階のリンクについて述べられた節
を参照してください. この getenv の問題は厄介な問題です. 解説と注意と
いう節も参照してください.
C と Fortran の混合 program を作成しているのですが, どのようにすれば C
の関数は C の getenv を参照し, Fortran の関数は (C のものとは引数が異
なり、 もし C の関数から誤って呼ばれるとセグメンテーション・フォールト
を起こす) Fortran の getenv を参照するようにできるのでしょうか。
From Mike Heath (mike@pencom.com):
いずれかの言語を用いてプレ・リンクする時に -brename:symbol1,symbol2 と
いう指定をしてください。 どちらの言語からを先にしても構いません。
4) C と Fortran の関数があります。 xlf ライブラリとはリンクし、 その他
のライブラリは共有ライブラリを使用するようにしたいのですが、 どうすれ
ば良いですか?
2段階のリンクが必要です。 第一段階では、 xlf ライブラリの関数とバイン
ドし中間オブジェクト・ファイルを生成します。 第二段階で残りの共有ライ
ブラリへの参照を解決します。
特に Fortran オブジェクトに xlf ライブラリをバインドするには次のコマン
ドを使用してください。
$ ld -bh:4 -T512 -H512 -o intermediat.o \
-bnso -bI:/lib/syscalls.exp -berok -lxlf -bexport:/usr/lib/libg.exp \
-lg -bexport:
-bexport: という引数は中間モジュールの外部から参照で
きる全てのエントリ・ポイントの名前を記述したファイルを指定します。 一
行に一エントリ・ポイント名を記述します。 -bI:/lib/libg.exp はプログラ
ムが適切に動作する為に必要です。 -berok 引数はバインダに未解決の参照が
あっても、 すくなくともこの時点では問題ない事を示します。 (ここで -r
オプションでもうまくゆくと思われるかも知れませんが、 うまくゆかないよ
うです。
-bnso 引数によって必要なモジュールがオブジェクトに組み込まれます。
-lxlf 引数はもちろん xlf ライブラリを指定しています。
次に、 中間オブジェクトモジュールを他の共有ライブラリと通常の方法でバ
インドします。
$ ld -bh:4 -T512 -H512 intermediate.o \
/lib/crt0.o -lm -lc
-berok 引数がない事に気を付けてください。 このリンクの後には、 (多段階
リンクを行い、 別の中間オブジェクトを生成しているのでない限り) 全ての
参照が解決されていなければなりません。
モジュールの順序に気を付けてください。 例えば Fortran のプログラムで
load という名前のサブルーチンを作っている場合などには、 これは非常に重
要です。 中間モジュールの前に C ライブラリを置くと、 たとい Fortran の
モジュールが既にリンクされていて、 シンボルへの全ての参照が Fortran モ
ジュールに含まれていたとしても、 Fortran の "load" ではなく C の"load"
の方が有効になってしまいます。 これは非常に発見が困難です。(この件に
関しては私を信じてください :-) これはバグでしょうか、 仕様でしょうか、
それとも...
なお、 この文章の 2.03 で述べたように、 リンクされたファイルの個々のオ
ブジェクトを置き換える事ができるのは仕様です。
結果としてできるオブジェクトは通常よりやや大きくなります。(私のものは
5% 大きくなりましたが、 2MB のオブジェクトになったので、 "やや" と書き
ました :-)
解説と注意
ドキュメントからはリンカへの -r 引数は -berok と同じ事をするように読め
ます。 しかしそうなりません。 -r 引数を使うと非常に奇妙な結果になりま
す。 私は -r を (-r がその為に用意された中間モジュールのリンクに対して
も) まともに動くようにする事はできませんでした。
Mike Heath (mike@pencom.com)によると:
'ld -r' はつまりは 'ld -berok -bnogc -bnoglink' の省略形です。
確かに -berok を export ファイルと用いる事は (ガーベージ・コレ
クションを行う事ができるので) ld -r よりも良い方法であるが、
後者の方がより簡単です。
中間モジュールをバインドする時に、 後のリンクで参照できるようにしたい
エントリ・ポイントを定義する export ファイルを用いると良いでしょう。
もしこれをしないと、 恐ろしい "未解決の参照" のエラーに出会うでしょう。
Export ファイル (訳注 原文では import file とあるが export file の誤り
と思われる) はのちに動的に解決されるエントリ・ポイントを示します。 (
訳注: この一文自信がありません)
もしどのパラメータもしくはライブラリがリンク時に使用されるか疑問になっ
たら、 リンク時に -v 引数を使用し、 ld 命令の例を変更して実行して見て
ください。 (訳注: ここも自信がありません。) ライブラリに関して考える
と常にいつ何を使うかということに行きつきます。(訳注: ここも自信があり
ません。) もしある引数が何の為にあるのか分からない時はそのままにしてお
いてください。 (あなたには分からなくとも) ある目的があってあるのです。
たとえば "load" のように同じ名前で 2種類以上の関数があるときには、 (ラ
イブラリのような) 外部定義の順序に気を付けてください。 ld 命令で最初に
定義されたものが使用されます。
getenv (system と signal も同様) 問題は、 最初はあまり問題ではありませ
んでしたが、 3003 ではより悪化しました。 しかしある日突然修正されるで
しょう。 基本的には、 xlf.a を更新し保存する前に, 3002 バージョンで生
成したこれらの関数を抜きだしておくべきです。 そしてこれらの Fortran の
システム・サービスを使用するのであれば、 これらの関数をリンクしてくだ
さい。
目次へ
3.03: ある数が NaN かどうかは、どうやって調べれば良いでしょうか?
sdl@glasnost.austin.ibm.com (Stephen Linam) 氏より。
Nan(Not a Number) は数ではありません。RISC システム/6000 が
IEEE 規格の浮動小数点演算を使っているために生じます。
ある変数値が、NaN であるかどうかを調べるには、NaN はどんなものとも等しくない、
すなわち自分自身とも等しくないという性質が使えます。
IF (X .NE. X) THEN ! X が NaN であれば、これは真になります。
例外(例えば、オーバーフロー)を起こすような浮動小数点演算は、
FPSCR(Floating Point Status and Control Register) と呼ばれるレジスタの
ステータスビットをセットします。FPSCR の状態を問い合わせる Fortran の
インターフェースがあり、XLF Fortran のマニュアルに説明されています。
今手元にマニュアルがないのですが、FPGETS と FPSETS を検索してみてください。
「Risc System/6000 Hardware Technical Reference - General Information」
(SA23-2643) という IBM が出しているマニュアルには、どういう浮動小数点
例外が起こり得るか、そしてそういう例外の結果として FPSCR のどのビットが
セットされるかが解説されています。
編注)N:SA23-2643-00 RISC/6000 ハードウェア技術解説書 概説書
目次へ
3.04: IEEE 浮動小数点数演算規格についての文献
1. ANSI/IEEE STD 754-1985 (IEEE Standard for Binary Floating-Point
Arithmetic)、
および
ANSI/IEEE STD 854-1987 (IEEE Standard for Radix-Independent
Floating-Point Arithmetic)、
の二つが IEEE から入手できます。
2. David Goldberg, "What Every Computer Scientist Should Know About
Floating-Point Arithmetic", ACM Computing Surveys, Vol. 23, No. 1,
March 1991, pp. 5-48.
目次へ
4.00: GNUとパブリックドメインソフト
GNUのソフトウエアは、Free Software Foundationやその他たくさんの所から
出ています。これらは、数多くののftpサイトに保管されています。これらの
ソフトウエアの配布規定に関しては、GNUのライセンスを読んでください。
たくさんの便利なパブリックドメインソフトウエアが、RS/6000に移植されて
います。ftpやダウンロードするには、以下の情報を見てください。
目次へ
4.01: ソースコードを探すにはどうすればいいか?
From: jik@GZA.COM (Jonathan Kamens)
ある特定のソースコードを探す記事をポストするためには、専用のニュース
グループがあります。このニュースグループへ記事をポストするときには、
下記に示してあるrtfm.mit.eduサイトのanonymous ftpから得られる
How_to_find_sources(READ_THIS_BEFORE_POSTING)に書いてあるガイドライン
を守るようにして下さい。
/pub/usenet/comp.sources.wanted/H_t_f_s_(R_T_B_P)
注: IPアドレスよりは、変更される可能性の低いホスト名を使用するように
しましょう。
また、次のようなメッセージのメールをmail-server@rtfm.mit.eduに送ること
によっても得ることができます。
send usenet/comp.sources.wanted/H_t_f_s_(R_T_B_P)
メールサーバについての一般的な情報を得るには、"help"と書いたメールを
送ってください。
もし、ここに示してある方法でも探しているソースが見つからない場合
には、comp.sources.wantedに投稿すると良いでしょう。
目次へ
4.02: FTPサイトは有りますか?
以下は、全てを確認しているわけではありませんが、特にRS/6000用のソフト
を持っていると思われるFTPサイトです。
[US sites:]
アメリカのサイト:
aixpdslib.seas.ucla.edu 128.97.2.211 pub
acd.ucar.edu 128.117.32.1 pub/AIX
acsc.acsc.com 143.127.0.2 pub
byron.u.washington.edu 128.95.48.32 pub/aix/RS6000 (older stuff)
lightning.gatech.edu 128.61.10.8 pub/aix
tesla.ee.cornell.edu 128.84.253.11 pub
[European sites:]
ヨーロッパのサイト:
nic.funet.fi 128.214.6.100 pub/unix/AIX/RS6000
iacrs1.unibe.ch 130.92.11.3 pub
files1zrz.zrz.TU-Berlin.DE 130.149.4.50 pub/aix
ftp-aix.polytechnique.fr 129.104.3.60 pub/binaries/rios
ftp.uni-stuttgart.de 129.69.8.13 sw/rs_aix32/
最初のサイト(aixpdslib.seas.ucla.edu)は、AIXで動くソフト専用です。ソフトの
バージョンはいつも最新版とは限りませんが、AIX(通常はAIX Version 3のみ)に
移植されているものです。接続後は、READMEとpub/ls-lRの2つのファイルを読み
ましょう。
ヨーロッパのサイトは、基本的にヨーロッパの人々のために運用されており、
またほとんどのソフトはアメリカで見つかるので、使用は控えめにして下さい。
Host cac.toronto.ibm.com
Location: marketing-info
>From David Edelsohn (c1dje@watson.ibm.com):
Host aixpdslib.seas.ucla.edu
Location: ? #AIX archive (sources and binaries)
Host ftp.egr.duke.edu
Location: ? #AIX archive
Host straylight.acs.ncsu.edu
Location: ? #AIX archive
Host alpha.gnu.ai.mit.edu
Location: /rs6000 #AIX archive
>From Frank E. Doss (csfed@ux1.cts.eiu.edu):
Host iacrs2.unibe.ch
Location: /pub/aix #bunch of goodies)
Host ftp.u.washington.edu
Location: /pub/RS6000 #minimal -- ted)
Host aixive.unb.ca
Location: ? #just announced -- new archive)
Host ftp.ans.net
Location: /pub/misc #wais goodies)
Host uvaarpa.virginia.edu
Location: /pub/misc #minimal -- whois)
Host ux1.cts.eiu.edu
Location: /pub/rs6000 #minimal -- pop3, FAQ, whois)
>From Robert MacKinnon (robmack@bsc.no):
Host ftp.bsc.no
Location: pub/Src.
[Sites with directories named 'aix':]
'aix'という名前のディレクトリがあるサイト:
Host aix1.segi.ulg.ac.be (139.165.32.13)
Location: /pub/aix
Host byron.u.washington.edu (128.95.48.32)
Location: /pub/aix
Host cunixf.cc.columbia.edu (128.59.40.130)
Location: /aix
Host files1zrz.zrz.tu-berlin.de (130.149.4.50)
Location: /pub/aix
Host ftp.rz.uni-augsburg.de (137.250.113.20)
Location: /pub/aix
Host fyvie.cs.wisc.edu (128.105.8.18)
Location: /pub/aix
Host solaria.cc.gatech.edu (130.207.7.245)
Location: /pub/incoming/aix
Location: /pub/aix
Host spot.colorado.edu (128.138.129.2)
Location: /aix
Location: /pub/patches/aix
Host swdsrv.edvz.univie.ac.at (131.130.1.4)
Location: /unix/systems/aix
Host switek.uni-muenster.de (128.176.120.210)
Location: /pub/aix
Host wuarchive.wustl.edu (128.252.135.4)
Location: /systems/aix
[Sites with directories named 'AIX':]
'AIX'という名前のディレクトリがあるサイト:
Host cs.nyu.edu (128.122.140.24)
Location: /pub/AIX
Host karazm.math.uh.edu (129.7.128.1)
Location: /pub/AIX
Host minnie.zdv.uni-mainz.de (134.93.178.128)
Location: /pub0/pub/AIX
Host oersted.ltf.dth.dk (129.142.66.16)
Location: /pub/AIX
Host rs3.hrz.th-darmstadt.de (130.83.55.75)
Location: /pub/incoming/AIX
[Sites with directories named 'rs6000':]
'rs6000'という名前のディレクトリがあるサイト:
Host aeneas.mit.edu (18.71.0.38)
Location: /pub/rs6000
Host cameron.egr.duke.edu (128.109.156.10)
Location: /rs6000
Host ifi.informatik.uni-stuttgart.de (129.69.211.1)
Location: /pub/rs6000
Host metropolis.super.org (192.31.192.4)
Location: /pub/rs6000
Host ramses.cs.cornell.edu (128.84.218.75)
Location: /pub/rs6000
Host server.uga.edu (128.192.1.9)
Location: /pub/rs6000
Host unidata.ucar.edu (128.117.140.3)
Location: /pub/bin/rs6000
Host uvaarpa.virginia.edu (128.143.2.7)
Location: /pub/rs6000
Host wayback.cs.cornell.edu (128.84.254.7)
Location: /pub/rs6000
[Sites with directories named 'RS6000':]
'RS6000'という名前のディレクトリがあるサイト:
Host alice.fmi.uni-passau.de (132.231.1.180)
Location: /pub/RS6000
Host byron.u.washington.edu (128.95.48.32)
Location: /pub/aix/RS6000
Host milton.u.washington.edu (128.95.136.1)
Location: /pub/RS6000
Host pascal.math.yale.edu (128.36.23.1)
Location: /pub/RS6000
Host uxc.cso.uiuc.edu (128.174.5.50)
Location: /pub/RS6000
目次へ
4.03: 一般的なヒント
一般的に、cursesを使用しているアプリケーションは、-ltermlibではなくて、
-lcursesフラグを用いてリンクします。また、-DNLSフラグも有効であるとの
報告もあります。
RS/6000には、標準のPATHに入っているSystem V準拠のもの(/usr/binと/usr/usg
からリンクされている/etc/install)とBSD準拠の/usr/ucb/installのものの、
2種類のinstallプログラムがありますので、気をつけて下さい。
新規にシェルをシステムに登録する場合には、ユーザがftpやrloginのデフォルト
シェルとして使えるように、/etc/security/login.cfgの"shells="行にそのシェル
を記述します。
目次へ
4.04: GNU emacs
GNU emacsはversion 18.57よりRS/6000でサポートされました。
AIX3.2のemacsは、s-aix3-2.hを使う様に最近変わりました。
最新のリリースは19.XXです
emacsインストール中にcore-dumpを吐く場合Makefileの’install -s'を
'/usr/ucb/install'に修正して下さい。
目次へ
4.05: GNU C
GNU CはVersion 2.0かそれ以降のversionよりRS/6000でサポートされました。
コンパイル時には多量のページング領域が必要なのを経験的に知っていると思います
gccとgdbは'as'アセンブラのパッチを必要とします
IBMsoftwareサポートでIX26107(U409205)のパッチを取り寄せて下さい
最新のgcc version2.5.Xとgdb4.1Xでは多くの変更があります。
もしマシンクラッシュがある場合、IBMsoftwareサポートでU412815のパッチをあてて
gdb4.7を走らせて下さい
訳注) AIX3.2.5ではasのパッチは必要ありません。
目次へ
4.06: Gostscript
ポストスクリプト・インタープリターGNU Gostscript はVersion 2.4かそれ以降から
RS/6000でサポートされました。そして様々なFTPサイトで見つける事が出来ます。
最新はversion2.6.1です
コンパイルは、Makefileにオプティマイズなしでidict.c,zstack.cを加えます
idict.o: idict.c
$(CC) -c idict.c
zstack.o: zstack.c
$(CC) -c zstack.c
訳注)xlc 1.3.0.4以降ではidict.cは-O付きでコンパイル可能です。
目次へ
4.07: Tex
texは ftp.uni-stuttgart.de.から ftpで持ってこれます
最新のコンパイラ(01.02.0000.0013)でオプティマイズ指定して必ずコンパイル
して下さい
訳注)最新のコンパイラーは(1.2.0.32, 1.2.1.28 or 1.3.0.18)以降になります/
目次へ
4.08: perl
最近のVersionは4.035でCCで全く問題なくコンパイルできます。
bsdccを使うとperlのmalloc()を使う事が出来ません
その場合、perlを'config.SH'の'#define HAS_SYMLINK'とあなたの環境に合わせて
作成して下さい。Bill Wohlerは私にperlは’config.sh'の修正なしにCCだけで作成
できるといっています。ただし、malloc()が使えないならば
Doug Sewell が
付け加えてperlのmalloc()を使う事が出来ないconfig.shを修正したいと思っても
/lib/cpp/のwapper-programのcppStdinを変えなければ駄目である
perlのwapper名はソースディレクトリのあるファイル中にあり
そのファイルを消したとしてもperlの中でコンパイルされる。
/lib/cpp/のそれ自身が仕事としてそれを使っている
malloc()の事は perl4,0pl11のConfigureのスクリプトで解決されていると
思います。
また、gdbmのインストール用のFAQについては用心が必要です
Gdbmはbsdccでコンパイルしますが、perl(私はbsdccでコンパイルした物を
インストールした)はCCで作成しました。それで私はIBMのndbmのルーチンを
使っています
目次へ
4.09: X-windows
IBMは3.2.3で2つリリースしてます。X11R4versionのMotif1.1とX11R5の
AIXWindows1.2.3です
AIXwindows Version1.2.0(X11rte 1.2.0)はX11R4のMotif1.1です
AIXwindows Version1.2.3(X11rte 1.2.3)はX11R5のMotif1.1です
X11rte.motif1.2 1.2.3はMotif1.2でAIXwindows 1.2.3と呼ばれています
目次へ
4.10: bash
bashはポーテングされていて、幾つかのパッチがprep.ai.mit.eduにあります
最新Versionは1.13.Xで素晴らしい仕事と思います。
目次へ
4.11: Elm
素晴らしい返事のメイルだ!!
Elmは可愛いぐらい正直だ!!思い出す事は、只一つ -lcursesをリンクするだけ
そうそう cursesのライブラリーも忘れずに
2.13より上位のは問題があるかも知れませんので
目次へ
4.12: Oberon2.2
afx@muc.ibm.de (Andreas Siegert)より
OberonはWirth'sのModula-2でフォローされてます。しかし、2.2とは
互換性がありません。フリーのModula-3のVBersionは DEC/Olivettiの
gatekeeper.dec.com.から入手できます。新しい言語のためModula-2の
変わりでは使えません。
これら2つのRS/6000の最新のM2コンパイラ で
Edinburgh Portable Compilers, +44 31 225 6262 (UK)
Gardens Point compiler +41 65 520311 (Switzerland)
です
Oberonはanonymous ftp でneptune.inf.ethz.ch(129.132.101.33)のOberon/RS6000か
gatekeeper.dec.com(16.1.0.2)から入手できます。
目次へ
4.13: kermit
kermitの入手はwatsun.cc.columbia.edu (128.59.39.2)の
kermit/bin/cku189.tar.Zです
Uncompressしてtarで開いて”make rs6000"でコンパイル
目次へ
4.14: Gnu dbm
doug@cc.ysu.edu (Doug Sewell)から
解決策
testgdbm.c:
158c158
< char opt;
---
> int opt;
166c166
< while ((opt = getopt (argc, argv, "rn")) != -1)
---
> while ((opt = getopt (argc, argv, "rn")) != EOF)
systems.h:
111a112,114
> #ifdef RS6000
> #pragma alloca
> #else
112a116
> #endif
でMakefileの修正は
CCにbsdccをセット。(もしbsdccがあなたのシステムに無い時は
/usr/lpp/bos/bsdportを見て下さい)
CFLAGSには -DRS6000 -g,-Oを付けて。SYSVは定義しない事
目次へ
4.15: tcsh
cordes@athos.cs.ua.edu (David Cordes)
tcshは tesla.ee.cornell.edu (pub/tcsh-6.00 directory)で入手できます
コンパイルは問題なくできます。tcshの許可ユーザの為に/etc/security/login.cfg
のファイルにtcshをインストールした場所のPATHを付け加える修正をします
"A. Bryan Curnutt"
AIX3.2.5ではconfig.hの以下を修正して下さい
#define BSDSIGS
to
#undef BSDSIGS
目次へ
4.16: Kyoto Common Lisp
ソースは cli.com.より入手できます。KCLのパッケージは必要です
最近のakclの配布を手に入れて下さい。akclはフロントーエンドを供給してます
オリジナルのKCLのプラットフォームのport数とakclのport数が違ってますが
RS/6000でのportは全く問題がありません。
rootで幾つかのメモリのプロテクトルーチンに関して作成してください
目次へ
4.17: Tcl/Tk
最新versionはTcl 7.3, Tk 3.6 です
sprite.berkeley.edu かharbor.ecn.purdue.edu.で入手できます
目次へ
4.18: Expect
Doug Sewell
作成するインタープリターVersionは 作成に成功したTclのライブラリーを
必要とします。 Expect ライブラリはtclを必要としません
Note:Expectとそのライブラリはbsdccで作成します。そのため
アプリとか関係するものをbsdccで作成します
expectはftp.cme.nist.gov.から入手できます
makefileの修正点を以下に書きます
まずカスタムソースとターゲットディレクトリのファイル
TCLHDIR = /usr/include
TCLLIB = -ltcl
MANDIR = /usr/man/manl (local man-pages)
MANEXT = l
BINDIR = /u/local/bin
LIBDIR = /usr/lib
HDIR = /usr/include
...
次にコンパル関係
#
CC = bsdcc
CFLAGS = -O
...
PTY_TYPE = bsd
...
INTERACT_TYPE = select
...
Then you need to make these changes about line 90 or so:
90行ぐらいの所にある
# CFLAGS = $(CLFLAGS) <ーコメントアウト
CFLAGS = $(CLFLAGS) $(CPPFLAGS) <ー コメントを外す
LFLAGS = ($CLFLAGS) <ー コメントを外す
その後に make
host名など例を参照して変更してください
チョット分からないのですが、全て変更してませんがなんら問題なく動いてます。
目次へ
4.19: CDから入手できるパブリックドメインソフトウェア
From: mbeckman@mbeckman.mbeckman.com (Mel Beckman)
プライムタイムフリーウェアCDコレクション(The Prime Time Freeware CD collection)
という2枚組のCDには、展開すると3GB以上にもなるUNIXソフトウェアが収録されていま
す。価格は69US$です。
>from Prime Time Freeware,
プライムタイムの発売元の連絡先は、415-112 N. Mary Ave., Suite 50, Sunnyvale, CA
94086. Phone 408-738-4832 voice, 408-738-2050 fax.
インターネットによるオーダのサーヴィスは行われていないようです。
このCDにあるパッケージから随分たくさんのものを取り出して試してみましたが、220上
では全て問題なく動作しました。プログラミング言語から3Dモデリングソフトウェアま
でこの宝の山には何でも入っています!
またO'Reillyから出版されている本、『Unix Power Tools』にCD-ROMが付属してきます
がこれにもRS/6000用も含めた多くの環境用にコンパイルされた便利なプログラムが収録
されています。
目次へ
4.20: Andrew Toolkit
From: Gary Keim
カーネギーメロン大学コンピュータ科学学科のAndrew Toolkit ConsortiumはAndrew
User Environment, Andrew Toolkit, およびAndrew Message Systemの新しいヴァージョ
ンをリリースしました。
Andrew User Environment (AUE)は幾つかのユーザアプリケーションからなるもので、一
つ一つのアプリケーションは以下の通りです。'ジェネリックオブジェクト'エディタ、
ez、ヘルプシステム、システム監視ツール(コンソール)、エディタの機能を持ったシェ
ルインターフェイズ(typescript)、そしてマルチメディアドキュメントの印刷機能。
Andrew Toolkit (ATK)は、X11用のユーザインターフェイス構築のためのポータブルな
ツールキットです。ATKはオブジェクト指向の環境で、オブジェクトはダイナミックに
ロードすることができて、またオブジェクト同士を相互に埋め込むことができます。で
すから、例えば複数のフォントを持つばかりでなく、画像やスプレッドシート、ドロー
ツール、方程式、簡単なアニメーション等々を含むようなテキストを編集すると言った
ようなことが可能です。これらのオブジェクトを入れ子構造上に組み合わせることも可
能です。
Andrew Message System (AMS)は電子メールやBBSをマルチメディア化するインターフェ
イスです。AMSでは複数のメール管理方法が提供されています。また幾つかの先端的な機
能が実装されていて、認証、受け取り送付、メールの自動整理、メールによる投票と投
票結果の集計、ファイルの同封、メール内容の検索による関連メッセージの追跡、
AMSはターミナル、パーソナルコンピュータ、ワークステーションの3つのインターフェ
イスをサポートしています。
これらシステムのリリース5.1では多くのバグフィックスと改良がなされています。また
インターネットのマルチメディアメールの標準規格であるMIME(Multipurpose Internet
Mail Extensions)がサポートされました。MIMEに関してはemsworth.andrew.cmu.eduから
ftpできるCHANGESというファイル名のドキュメントをお読みください。
R5.1のソースはexport.lcs.mit.edu (18.30.0.238) の./contrib/andrew以下からftpす
ることができます。詳しくは同じftpにある./contrib/andrew/READMEをお読みくださ
い。
AIX3.2用のパッチはemsworth.andrew.cmu.edu (128.2.45.40)の./aixpatchからftpする
ことができます。またインターネットに直接アクセスできない場合には、電子メールか
ファクシミリでコンソーシアムにオーダすれば3.5inchフロッピーにパッチをコピーして
お送りします。手数料として10$ほどいただきます。コンソーシアムの住所は最後にある
とおりです。
このAndrewをはじめCMUの開発した様々なソフトウェアはemsworth.andrew.cmu.edu
(128.2.30.62)からftpすることもできます。AFSでアクセスできる場合には
/afs/andrew.cmu.edu/itc/sm/releases/X.V11R5/ftpを覗いてみてください。
Remote Andrew Demo Service
このネットワークサーヴィスを利用すればAndrew Toolkitのアプリケーションを簡単に
試すことができます。ファイルを入手してコンパイルする必要はありません。必要なも
のはX11が走っているワークステーションとインターネットへのアクセスだけです。あと
は"finger"コマンドを使ってATKアプリケーションを直接体験できます。例えばマルチメ
ディアドキュメントを作ったり、インタラクティヴなAndrew Tourをして遊んだり、また
AMSをつかって何千もあるCMUのBBSやニュースグループを見て回ったりすることができま
す。
Remote Andrew Demo Serviceを起動するには、
finger help@atk.itc.cmu.edu
と言うコマンドを起動します。そうすればさらに詳しい使用法が表示されます。
Information Sources
ATKのバグを見つけられた場合にはどうぞinfo-andrew-bugs@andrew.cmu.eduにお知らせ
ください。バグに関する情報は定期的にinfo-andrew@andrew.cmu.eduというアドレスの
メーリングリストに報告されています。このメーリングリストに参加のご希望、あるい
はその他のリクエストはnfo-andrew-request@andrew.cmu.eduご連絡ください。
また他に以下のソフトウェア、情報も配布しています。
CDROMによるATKおよびAMSソースコードとバイナリ。バイナリが用意されているシステム
は、
IBM RiscSystem/6000
Sun SparcStation
HP 700 Series
DECstation
です。
QICおよびIotamatテープによるATKとAMSのソースコード、およびドキュメントのハード
コピー。
Andrewシステムを解説したビデオ「Welcome to Andrew: An Overview of the Andrew
System」、技術解説ビデオ「The Andrew Project: A Session at the Winter 1988
Usenix Conference」
さらに詳しい情報については下記にご連絡ください。
Information Requests
Andrew Toolkit Consortium
Carnegie Mellon University
4910 Forbes Avenue, UCC 214
Pittsburgh, PA 15213-3890
USA
phone: +1-412-268-6710
fax: +1-412-621-8081
info-andrew-request@andrew.cmu.edu
目次へ
4.21: sudo
これは全てのプロセスが任意のuidを持つかのように振る舞うことを可能にするソフトで
す。ヴァージョン1.1(最新)はcsn.org:/pub/sudoより入手できます。AIXがサポートさ
れています。
目次へ
4.22: Flexfax とその他のfaxソフトウェア
From: robmack@bsc.no (Rob MacKinnon)
FlexFax v2.2.1はsgi.com:/sgi/faxより入手できます。このファックスソフトは多くの
class1およびclass2のファックスモデムをサポートし、またAIX3.2.3以上を含む幾つか
のUNIXをサポートしています。ファックスモデムの機種に関する情報も同じサイトの
sgi.com:/pub/fax/bakeoffより入手できます。FlexFaxに関するファイルはsgi.comの他
にもftp.bsc.noにコピーが置かれています。
注: FlexFax2.4.3というものがftp.ee.lbl.govより入手できますが、これがSGIで作られ
たものの新しいヴァージョンのものであるかどうか確認していません。
From: michael@hal6000.thp.Uni-Duisburg.DE (Michael Staats)
私たちは mgetty+sendfaxという組み合わせでモデムを使っています。これはこのモデム
用に私がプリンタバックエンドを作ったもので、Postscriptファイルを印刷するのと同
じ位い簡単にファックスとして送信することができます。またX上にファックスの送信を
とても簡単にするようなファックスの定型を作製するインターフェイスも作製しまし
た。以下のソフトウェアは、hal6000.thp.Uni-Duisburg.DEの/pub/sourceにあります。
ソースファイル名 内容:
mgetty+sendfax-0.14.tar.gz モデムのI/Oを制御する基本ソフト。AIX用
には修正が必要
X11/xform-1.1.tar.gz ファックス定型作製ソフト。(定型のサン
プルがあります)
libxviewが必要。
faxiobe.tar.gz ファックス送信のバックエンド。各サイト
ごとの設定必要
AIX用のlibxview.aとヘッダファイルが必要でしたら
/pub/binaries/AIX-3-2/lxview.tar.gzにおいてありますので利用してください。
目次へ
4.23: lsof
From: abe@vic.cc.purdue.edu (Vic Abell)
「プロセスがopenしているファイルを知りたい」、「あるネットワークアドレスを使っ
ているプロセスがどれであるか特定したい」、「あるファイルシステム上のファイルを
openしているプロセスを全部特定したい」といったことをやりたいとします。どうすれ
ばよいでしょう? 答えは「lsof (LiSt Open Files)を使う」です。
Lsofはvic.cc.purdue.eduからanonymous ftpすることができます。ファイルは
pub/lsofVVVtar.Zです。ここでVVVはlsofのヴァージョンを示します。現在最新は299で
す。
目次へ
4.24: popper
POPサーヴァはftpサイトftp.CC.Berkeley.EDU (128.32.136.9, 128.32.206.12)にありま
す。ファイルはpubに二種類のファイルでおいてあります。一つはcompressで圧縮した
popper-version.tar.Zで、もう一つはMacintoshのStuffItアーカイヴをBinHexフォー
マットに変換したものでMacPOP.sit.hqxです。
目次へ
4.26: mpeg link errors version 2.0
posted by (Nathan Lane) nathan@seldon.foundation.tricon.com
.XShmCreateImage
.XShmDetach
.XShmAttach
.XShmGetEventBase
.XShmPutImage
.XShmQueryExtension
これが X サーヴァのシェアードメモリを使うための拡張ライブラリです。シェアードメ
モリを使うか否かは適当に選択することができます。私自身はいつも使わないようにコ
ンパイルします。2x0などのローカルバスグラフィックアダプタをもったモデル以外で
は、シェアードメモリを使うことによる速度の向上はさほど大したものではありませ
ん。Mpeg_playのmakefileにある"DSH_MEM"をCFLAGSから外すだけでシェアードメモリ
不使用にできます。もしDSH_MEMをつけるならば、Xサーヴァ自体もシェアードメモリを使
用するようコンパイルすることが必要です。(その方法については
/usr/lpp/X11/samples/READMEを読んでください。)
それからmpeg_playのvideo.cというファイルをコンパイルしているとコンパイラが最適
化のために必要なメモリが不足だという意味のワーニングを出します。メモリを「大き
く」するためには"qmaxmem=8000"といったオプションをcflagに追加すればよいでしょ
う。ただ私の経験ではこうして最適化をしてもほとんど速くはなりませんでした。
目次へ
5.00: サードパーティ製品
[編者注:この節の記載事項は広告っぽくならないよう編集されています。
記載されている価格は最新とは限りません。会社名は参考までに挙げたもの
で、いかなる形でも保証するものではありません。]
目次へ
5.02: 固定ディスク/テープ/SCSI
From: anonymous
- - ほとんどの SCSI ディスクドライブが作動します。
(Maxtor製品はIBMが再販しているし、Wren 6 と 7 は私自信でも
テストしてみました)
構成時には osdisk (other SCSI disk) を選択して下さい。
- - Exabyte: 残念ながら IBM が販売するもののみ作動します。
IBM製以外のテープドライブでも作動するものがあるでしょう。
構成時には ostape (other SCSI tape) を選択して下さい。
- - STK 3480 "Summit": マイクロコード Version 5.2b で作動します。
From: bell@hops.larc.nasa.gov (John Bell)
概して、サードパーティのテープドライブは、そのテープドライブからブート
しない限り RS/6000 できちんと作動します。それは、IBMのドライブには
'拡張テープマーク' というものがあるためで、ファイル間に置かれる
標準のテープマークが8mmテープでは信頼性がないから、と IBM はその必要性
を主張しています。この拡張テープマークはブート用テープを作る時に用いられ、
RS/6000 がブートする時には IBMテープドライブを探し、拡張テープマークがないと
ブートを拒否されます。
From: jrogers@wang.com (John Rogers)
非IBM SCSIテープドライブからのブートについて:
(私自身では試していませんが、ある方からの情報提供)
キーを Secure にして電源投入。
LED が 200 になって 8mm テープが止まるのを待つ。
キーを Service にする。
From: amelcuk@gibbs.clarku.edu (Andrew Mel'cuk)
IBM製DATは安く、作動します。
もし、すべてのパッチ(U407435, U410140)を早々に入手していて、専用の
"Media Recognition System" テープ (Maxell製, APS 800.443.4461 もしくは
IBM #21F8758 で入手可能)も購入してあるならば、そのDATドライブを快適に使えます。
ドライブの DIPスイッチを操作して、あらゆるグレードのDAT テープを使えるように
することもできます(hardware service manualを読んで下さい)。
他の DAT ドライブも作動します。Archive Python を試してみて(作動します)、
Archive TurboDAT の拡張も実験しました。TurboDAT は高速な圧縮ユニットで、
どのテープとも相性がよく、IBM 7206 のように多くのパッチを必要としません。
AIX 3.2 の 'ost' ドライバでちゃんと動きます。
From: pack@acd.ucar.edu (Daniel Packman)
>>いくつかの非IBMブランドの Exabyte からブートできます。
>>少なくとも TTI と Contemporary Cybernetics は
>>IBM 純正品のエミュレーション化が済んでいます。
モデル TTI CTS 8210 は早期の AIX 3.1 から 3.2 まで作動します。この 8210 は
古く低密度ドライブです。新しい 8510 は2つの密度(2.2GB と 5GB)をサポートします。
背面にある 12個の DIPスイッチで SCSI アドレスとエミュレーションモードを
コントロールできます。これらのドライブには状態(eg, soft error rate, tape
remaining,tape motion, etc.)を読み取れるランプがついてて便利です。
目次へ
5.03: メモリー
Nordisk Computer Services (Portland 503-598-0111, Seattle 206-242-7777)から
フライヤーを入手しました。サンプル価格は以下のとおりです:
16 MB Upgrade Kit $ 990
32 MB Upgrade Kit $1,700
64 MB Upgrade Kit $3,300
5xx モデルには 8つのメモリースロットがあり、3x0 には 2つ、3x5 には 1つしか
ありません。5xx モデルではペアでメモリーを追加する必要があります。
モデル 220, 230 および 250 では "PS/2" 用 SIMM メモリーが使えます。
どれも 8つの SIMM ソケットを持っています。
250 には 60ns かそれ以上のが必要ですが、220 と 230 には 70ns で
だいじょうぶです。
220 と 230 のメモリーは 64MB までに制限されますが、250 では 256MB まで可能です。
目次へ
5.04: その他
From: anonymous
IBM RISC System/6000 インターフェース製品
National Instruments Corporation は IBM RISC System/6000 ワークステーション用
のインターフェース製品を販売しています。これは 3つの製品からなり、それぞれ
標準の VMEバス, VXバス および GPIB と RS/6000 との接続手段を提供します。
詳細は National Instruments Corporation, 512-794-0100 or 1-800-433-3488 まで
問い合わせて下さい。
目次へ
5.05: C++ コンパイラ
C++コンパイラもいくつか使えます。
Glockenspiel, Greenhills, IBM xlC (別個に売っている :), および GNU g++ の
中から選べます。Glockenspiel は今は Computer Associates の一部かもしれません。
Comeau Computing(718-945-0009) は Comeau C++ 3.0 をテンプレート付きで
提供しています。 開発用のフル環境なら ObjectCenter C++ (以前の Saber C++)が
あります。
目次へ
5.06: メモリー・リーク・ディテクタ
IBM xlC には HeapView debugger と呼ばれる、C および C++ のコードの
メモリー関連の障害をトレースできる製品がついて来ます。
SENTINEL はメモリー・リークの検知はもちろん、メモリーアクセスのデバッグのための
フル機能を備えています。
info@vti.com (800) 296-3000 (703) 430-9247 に問い合わせて下さい。
Insight from ParaSoft (818) 792-9941.
comp.sources.* にポストされた debug_malloc もここにはあります。
From: dad@adonis.az05.bull.com (Dave Dennerline)
Purify from Pure software (408) 720-1600.
TestCenter from Centerline (800) 669-2687.
Purify と TestCenter は RS/6000 では使えません :(
目次へ
5.07: PPP
PPP は AIX 3.2.x には含まれておらず(SLIPのみ)、anonymous ftp から入手可能な
バージョンもありません。有償の AIX用PPP なら Morningstar (sales@morningstar.com
or marketing@morningstar.com) (800)558-7872 から入手可能です。
目次へ
5.08: グラフィック・アダプタ
Abstract Technologies Inc. (Austin TX, 512-441-4040, info@abstract.com)
がハイパフォーマンスな RS/6000 用のグラフィック・アダプタを揃えています。
1600x1200, 24-bit true-color, および 低価格の 1024x768 アダプタがあります。
小売価格は US$1000-2000 です。
目次へ
6.00: その他
目次へ
6.01: e-mail を使ったサポートについて
US におけるサポート:
INTERNETおよびUSENET上のユーザがAIXの問題を報告できる mail の窓口として
AIXServ があります. AIXServ は無料です. AIXServ の使い方は mail の
Subject の行に package と書いて (mail -s package) 以下のアドレスまで送っ
て下さい.
Internet: aixbugs%aixserv@uunet.UU.NET
Usenet: uunet.UU.NET!aixserv!aixbugs
aixbugs@austin.ibm.com (transactions request)
services@austin.ibm.com (administrivia)
aasc@austin.ibm.com (test cases under 100KB)
AIXServ を使ったサービスには次の3種類があります.
1. 新しい問題をレポートする.
2. 既存の問題に関する情報を更新する
3. 既存の問題に関するステータスを要求する.
カナダ: BBS でのサポートがあるようです (from Gary Tomic). コンタクト先は
cac.toronto.ibm.com (142.77.253.16) です.
ドイツ:
ESS (Extended Sofware Service) の契約をした方は e-mail によるサポートを
受けることができます. Subject の行に help を書いて (mail -s help)
aixcall@aixserv.mainz.ibm.de 宛に送って下さい. サービスの詳細については
IBMの営業にきいて下さい.
目次へ
6.02: AIX に関する情報を得るFAX番号
IBM のFAXサーバ (1-800-IBM-4FAX) にFAXを送ることでAIXに関する情
報を得ることもできます. この番号に初めてFAXを送る方は上記の番号の後で
3, 2 と順に押すことで RS6000 関係の情報をFAXで要求できます.
以下が現状でのリストです.
document number Title
--------------- -----------------------------------------------------
1453 Recovering from LED 518 in AIX 3.2
1457 Recovering from LED 552 in AIX 3.1 and 3.2
1461 Alternative Problem Reporting Methods
1470 Recovering from LED 223/229, 225/229, 233/235, 221/229, or 221
1537 How to Get AIX Support
1719 Performance Analyzer/6000
1721 Recovering from LED 553 in AIX 3.1 and 3.2
1746 Recovering from LED 551 in AIX 3.1 and 3.2
1755 Recovering Volume Groups
1802 Repairing File Systems with fsck in AIX 3.1 and 3.2
1803 How to Take a System Dump
1804 Setting Up a Modem With the RS/6000
1845 Using iptrace to Track Remote Print Jobs
1867 Clearing the Queuing System
1895 Removing/Replacing a Fixed Disk
1896 Tape Drive Densities and Special Files
1897 Tips on mksysb for AIX 3.2
1909 UUCP (BNU) Helpful Information
1910 Synchronizing Disk Names
1988 Recovering from LED 201 in AIX 3.1 and 3.2
1989 Recovering from LED 727 in AIX 3.2
1991 Recovering from LED c31 in AIX 3.1 and 3.2
2079 AIX 3.2.4
2121 AIX 3.2.4 Installation Tips
2267 How to reduce /usr in AIX 3.2
2443 Man pages for AIX 3.2
2446 How to set up sar
2447 How to reduce /tmp
2448 Installing a 5 GB tape drive
2462 Bosboot diskettes
2465 How to remove ptfs from the ODM
目次へ
6.03: IBM のgopher, WWW, anonymous FTP (6/10/94 での状況)
Ronald S. Woan 氏の情報です.
aix.boulder.ibm.com AIX のPTF に何する FIXDIST SERVER
software.watson.ibm.com rlogin に関するセキュリティFIX その他
gopher.ibmlink.ibm.com アナウンスおよび新聞発表
www.austin.ibm.com S/W, H/W, サービス, サポートに関する情報
IBM 一般に関する情報 (製品発表, 新聞発表等) は WWW のhttp://www.ibm.com/
から得られます.
RS/6000, AIX に関する情報 (マーケット情報, 技術動向, POWER2 に関するオン
ライン情報, APAR のデータベース検索, FAXサーバで得られる情報) はすべ
て http://www.austin.ibm.com/ から得られます.
目次へ
6.04: RS232 接続に関するヒント
graeme@ccu1.aukuni.ac.nz, sactoh0.SAC.CA.US!jak 氏の情報です.
Q. RS232 を使ってターミナルをつなぎたいのですが, どう繋げばよいのですか?
A. 1. Dsub 25 のコネクタの 2->3, 3->2 7->7 を繋ぎます. (クロス接続)
2. コンピュータ側の 6, 20 (DSR, DTR) を繋ぎます.
6, 8, 20 (DSR, DCD, DTR) を繋ぐことが必要な場合もあります.
1 (FG) はシールドされていることが望ましいです. (多くの場合 1, 7 は外され
ていることが多いのですが...)
diskette からブートした場合 (KEY は Services position) は 9600 BPS でつ
ながります. SMIT での設定により, ボーレートその他を変更かのうです.
(38400BPS も大丈夫)
Q. RS232 を使ってプリンタをつなぎたいのですが, どう繋げばよいのですか?
A. 1. Dsub 25 のコネクタの 2->3, 3->2 7->7 を繋ぎます. (クロス接続)
2. コンピュータ側の 4, 5 (CTS, RTS) を繋ぎます.
目次へ
6.05: RS/6000 関連の出版物
現在以下の3つがあります.
1. RS/Magazine
P.O. Box 3272
Lowell, MA 01853-9876
e-mail: aknowles@expert.com (Anne Knowles, editor)
2. AIXpert
IBM Corporation
Mail Stop 36
472 Wheelers Farms Road
Milford, CT 06460
FAX: (203) 783-7669
3. RiSc World
P.O. Box 399
Cedar Park, TX 78613
FAX: (512) 331-3900
Usenet: {cs.utexas.edu,execu,texbell}!pcinews!rsworld
マニュアルはIBMから手に入れることができます.
例
SC23-2204-02 Problem Solving Guide
SC23-2365-01 Performance Monitoring and Tuning Guide for AIX 3.2
SA23-2629-07 Service Request Number Cross Reference, Ver 2.2
SA23-2631-05 Diagnostic Programs: Operator Guide
SA23-2632-05 Diagnostic Programs: Service Guide
SA23-2643-01 Hardware Technical Reference: General Information
SA23-2646-01 Hardware Technical Reference: Options and Devices
目次へ
6.06: 略語について
APAR - authorized program analysis report
BOS - Basic Operating System
DCR - design change request
LPP - Licensed Program Product
ODM - Object Database Manager
PRPQ - programming request for price quotation
PTF - Program Temporary Fix
SMIT - System Management Interface Tool
目次へ
6.07: この FAQ の入手方法 (メールもしくはftp)
このFAQ は news.answers にクロスポストされているので, このNGをアーカイブ
しているサイトから手に入れることが可能です. 例えば rtfm.mit.edu の
pub/usenet/news.answers の下に "aix-faq/faq/part[1-3]" としてあります.
目次へ
6.08: この FAQ のハイパーテキスト版
Michael D. Fischer 氏の情報です.
彼が AIX FAQ を HTML に変換してしてくれていて, この URL は
http://insti.physics.sunysb.edu/faq/index.html
です.
目次へ
6.09: ツールに関して御意見がある方の送り先.
AIX に附属あるいは必要と思われるツールに関する御意見, 御助言は
aix_tool_ideas@austin.ibm.com 宛にお送り下さい.
目次へ
6.10: comp.unix.aix のWWWで検索可能なアーカイブのリスト
Michael Staats & Fred Hucht 氏の情報
http://www.thp.Uni-Duisburg.DE:/cuaix/cuaix.html.
目次へ
7.00: 寄稿
次にあげる方々にこのリストに寄稿して頂きました。匿名で寄稿
したい方はお知らせください。しかしあなたが誰であるか私には
教えてください。
もしどなたか抜けているようでしたらお詫びします。
みなさまありがとうございました。みなさまがたの情報無しでは
決してこのようなものはできなかったでしょう。
目次へ