> 1) Having a window with rc and pressing CTRL+d usually closes the window.
> However, from time to time it does not. Instead, I can see EOT (one
> character; diagonally) written after the prompt, the window stays, I can
> write anything into the window, but my commands are not executed. When does
> this happen?

this generally happens when you have mounted a fileserver which doesn't
close all of rio's fds (inherited from the rc you terminated).  rio considers
the window active until all the fds are closed.

> 2) Reading pwd.c I can see 'char pathname[512]' at the beginning of the main
> function. Does it mean plan9 paths are thus limited?

no.  fileservers evaludate the path one element at a time.


> 3) Why do I have to press END key several times to get to the bottom of a
> window (usu when there is a lot of output text from the issued command)?
> (The rio maunual says just one press.)

if you notice that once you are at the end, you can press
<home> then <end> and you will be at the end.  so what's
happening when you press <end> when there's pending output
is that you're placed at the end of the buffer but since the command
producing the output blocked on its output, it immediately started
outputting more data.  so <end> always puts you at the the
*current* end of the buffer.  that doesn't mean that there won't
be data immediately available.

> 4) What is the sense of
> bind 'sth' 'the_same_sth'
> ? (like 'bind / /' or 'bind /usr/ruda/a /usr/ruda/a')

i believe this is a noop.  in the case of "bind / /", look
at /lib/namespace.  consider the case where $rootdir
isn't nil.

> 5) When I do
> 
> cd
> mkdir a
> mntgen a
> bind lib a/b
> unmount a
> 
> all these command finish ok, but I am left with
> 
> bind /usr/ruda/lib /usr/ruda/a/b
> 
> in the namespace (see the result of the 'ns' command; there you can also
> spot that after issueing the 'mntgen' command a line
> 'bind /usr/ruda/a /usr/ruda/a/' appears; that relates to my 4th question;
> this bind is the one removed by the 'unmount' command).
> How can I get rid of that then?

i don't think any pruning of inaccessable bits of
the namespace is ever done.  consider a program
like ftpd which via /lib/namespace.ftp (sic) typically
binds something like /usr/ftp/ onto /.  while everything
above /usr/ftp is unaccessable, it's not removed from
the namespace and you can't touch it.

        ; mntgen a
        ; bind /env a/env
        ; bind /bin a/bin
        ; bind /proc a/proc
        ; bind a /
        ; ns

consider it a security feature.

- erik


Reply via email to