そこで、分散プログラミングを始めてみることにしました。
目標はリモートのプロセッサで任意のプログラムを実行し、実行結果を受け取るところに設定します。
参考としたのはこのURLです。
http://www.resc.rdg.ac.uk/twiki/bin/view/Resc/CallingRemoteServices
そのものずばりのことを示しています。
リモートで実行されているのか、ローカルで実行されているのかがよくわからなくなりそうなところを、うまく工夫されていてすばらしいです。
いまさら自分が追記するようなことは特に無いのですが、一応試したことを記録しておきます。
○まずはテスト
二台のinferno環境を用意し、ネットワークでつなぎます。
別のホストOSで動いているとわかりやすいです。
今回はリモートをLinux、ローカルをcygwinで実験しました。
・remote
svc/net
bind -a '#C' /
サービス立ち上げて、/cmdをバインド(ホストOSのコマンド実行のため)。
・local
bind -a '#C' /
mount [remoteホスト] /n/remote
bind -b /n/remote/cmd /cmd
mountでremoteホストにstyxで接続、remoteの/cmdを上書きで(?)バインド。
-bがポイント。
os uname を実行すると、remoteのOS名(Linux)が表示される!
なお、バインドする前はもちろんos unameを実行するとlocalのOS名(cygwin)が表示されます。
○file2chanの簡単なテスト
・remote
svc/net
cd /usr/user
load file2chan
file2chan oschan {} { os uname}
oschanという名前のsynthetic file ができるらしいが正直よくわからない。
echo rubbish > oschan
とかやると、remoteのOS名が表示される。
なんなんでしょうね?
(echoする文字列は別にrubbishじゃなくていいんですが)
・local
svc/net
mount remoteホスト /n/remote
cd /n/remote/usr/user
echo rubbish > oschan
とすると、remoteのプロンプトにremoteのos名が表示される。
不思議。
○limboでプログラミング
・・to be continued.
file2chanモジュールをロードしてごにょごにょするはず。
○疑問点
・いまだにunion directoryがよくわかっていない。
・bindを解除する方法は?
・認証を絡めるには?
0 件のコメント:
コメントを投稿