lab 86 - srv
This from a post on 9fans, and also on Tip O' the Day
% dc >[0=1] | echo 0 > /srv/desk
Plan 9's srv(3) acts as a bulletin board for open file descriptors, other namespaces see all the files in srv, and so can read and write to /srv/desk.
Inferno has srv(3) which is a file2chan registry, but is also visible to all namespaces on the host.
The current implementation of sh-file2chan(1) does not allow the above. The closest I got was,
% load file2chan
% calc >[0=1] | {file2chan /chan/desk {rblock; putrdata &} {fetchwdata
> /fd/0} } &
% stream -b 1 /chan/desk
% echo 1+1 > /chan/desk
I tried implementing a command equivalent to srv(1) on Plan 9. It takes a command block or network addess and post it in the srv registry.
% srv {calc <[0=1]} /chan/desk
It using an existing '#s' instance if there is one, else binds a new one. Now we can open a console to /chan/desk from another window
% {cat & cat >[1=0] < /dev/cons} <> /chan/desk
and other windows can write to /chan/desk, the output will be seen in the console.
Questions.
Files in this lab is the srv.b implementation.