Logo address

Plan9端末

最初に Plan9 を試す場合には local ディスクをベースにした Plan9 端末から
始める。使用されるカーネルは 9pcdisk である。

注: この内容は古く、書き改める必要がある。またもっと初頭的な内容から始める必要がある。(2021)

IP の設定法

ネットワークを使用するには
IP アドレス
IP マスク
IP ゲートウェイ
を設定する必要がある。
これらの設定は /bin/termrc の中で ipconfig によって行なわれるが

配布版の
/bin/termrc
の中では次の様になっている。

ip/ipconfig >/dev/null >[2=1]

この設定は必要な IP を DHCP サーバから受け取る場合のものである。
DHCP サーバが動作していない場合、あるいは自分で設定したい場合には
ipconfig に必要なデータを引数によって渡す必要がある。

例えば

IP=202.250.160.40
IPMASK=255.255.255.0
IPGW=202.250.160.254
の場合には
ip/ipconfig >/dev/null >[2=1]
の代わりに
ip/ipconfig -g 202.250.160.254 ether /net/ether0 add 202.250.160.40  255.255.255.0
を実行してやればよいが、
/bin/termrc
でホストに依存する IP の設定データを明示的に持ち込むのは気がきかない。

ホスト名と IP の対応は

/lib/ndb/local
の中で例えば
ipnet=arlab ip=202.250.160.0 ipmask=255.255.255.0
        ipgw=202.250.160.254

ip=202.250.160.40  ether=00105a9f9404   sys=ar
        dom=ar.aichi-u.ac.jp
        bootf=/386/9pcdisk
        proto=il
の様に行われているのだから、ここで指定されているデータをそのまま ipconfig に
渡す方がずっと気がきいている。その為には次の様に行えばよい。まず
plan9.ini
の中で
ipconfig=local
の行を入れる。plan9.ini でのこの設定は環境変数として /bin/termrc に渡されるのである。そこで
ip/ipconfig >/dev/null >[2=1]

switch($ipconfig){
case local
        eval `{ndb/ipquery sys $sysname ip ipgw ipmask}
        ip/ipconfig -g $ipgw ether /net/ether0 add $ip $ipmask
case dhcp
        ip/ipconfig >/dev/null >[2=1]
}
で置き換えるがよい。
このようにしておけば IP を DHCP サーバから得る時には
plan9.ini で
ipconfig=dhcp
を指定しておけばよい。

なお

$sysname
は /bin/termrc の中の
ndb/cs
sysname=`{cat /dev/sysname}
によって設定される。
これはネットワークカードのイーサネットアドレスと
/lib/ndb/local
からシステム名(ホスト名)を設定しているのである。

plan9.ini の中での sysname の設定は特殊であり、単なる環境変数ではない。
例えば

sysname=ar
の様に設定すれば、これが /dev/sysname に設定され(従って正当なシステム名としての
扱いを受ける)るのである。
この設定は先に述べたイーサネットアドレスと/lib/ndb/local からのシステム名の決定よりも優先される。