Infernoのサーバー機能についてちょっと解って来ました。
Plan9のサーバーは
- CPUサーバー
- 認証サーバー
- ファイルサーバー
にわかれるそうです。
どうやらInfernoもそういう分け方という理解で良さそう。
なお、それぞれのサーバー機能で、サービス名のニーモニック(styxとか、ポート番号を文字列で表現する)とか、ネットワークアクセスをする場合は、あらかじめ
ndb/cs
を実行しておく。
・認証サーバー
認証サーバーのプログラムはsvc/auth。
アカウント情報はauth/changeloginで追加する。
例えば、ユーザー/パスワードを追加するには、
auth/changelogin [ユーザー]
と実行する。
また、auth/createsignerkeyで鍵の生成も必要。
auth/createsignerkey [ユーザー]
認証サーバーを使う場合は、getauthinfoで
認証を行う。
例えば、後述のCPUサーバーの機能を使う場合は、
CPUサーバー、クライアントそれぞれでgetauthinfoを実行する。
・CPUサーバー
サービス名はrstyx。
サーバー側では、getauthinfoを実行するか、svc/rstyxを
実行するとサービスが立ち上がるんじゃなかろうか(自信無い)。
getauthinfo default
signer: 認証サーバー(cpuサーバーと同じ所で認証サーバーを動かすときはlocalhost)
user: ユーザー
保存しますか?にYESと答えると、認証情報が保存される。
再起動後はsvc/net or svc/rstyxの起動だけでよい。
クライアントからはまず認証。
getauthinfo tcp!接続先アドレス
signer: 認証サーバー
user: ユーザー
つぎに、接続コマンド
cpu tcp![CPUサーバー]
とすると、サーバーにログインし、
プロンプトが表示される。
抜けるときはexit。
ほかに、クライアントからはrcmdというのもつかえそう。
こちらはおそらくコマンドの単品実行でしょう。
・ファイルサーバー
ファイルサーバー側ではgetauthinfoを行う。
やり方はCPUサーバーと同じ。
getauthinfoの結果ファイルサーバーが立ち上がるようだ。
save file = yes としたときだけかな?
サーバー立ち上げはsvc/styxで。
または、細かくオプションを選ぶ場合はlisten。
認証(引数にキーを選ぶ)、エクスポートするディレクトリを選べるようだ。
クライアントからはgetauthinfoで認証し(CPUサーバーと同じ)
mountする。
mountは、こんな感じで。
mount tcp![ファイルサーバー] /n/remote
でOK。
※マウント後のファイルの使い方はいろいろ面白いことがありそう。
例えば、Xみたいに画面を飛ばすのが面白かった。
※svc/net というサーバーコマンドもあるけど、これは
CPUサーバーとファイルサーバー両方まとめて立ち上げるように
思われる。
もう一度試してみたらどうもうまく行かない。
返信削除結局サーバー側のinfernoを再起動してやり直した。
特に手順は間違えていなかったと思うんだけど。