9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* Re: [9fans] A proposal regarding # in bind
@ 2003-02-24 19:04 rog
  2003-02-24 19:04 ` rob pike, esq.
                   ` (3 more replies)
  0 siblings, 4 replies; 29+ messages in thread
From: rog @ 2003-02-24 19:04 UTC (permalink / raw)
  To: 9fans

rob:
> Your proposal is interesting but doesn't solve the bootstrap problem.
> How would /proto get mounted?  You see, the thing about # names
> is that they're really not in the name space, and that comes in handy
> when booting or creating a name space from scratch, such as in
> listen.  Since a program can't name the proto driver, how does one
> establish a connection to it?  I'm sure there's a way; I just wonder
> what your plan is.

two possibilities spring to mind:

a) there's still an escape from the namespace, but a smaller one:
there could be one (and only one) device nameable in the '#' name
space, the proto device.  (whether one allows an attach spec is a
matter of taste).  that at least would solve some of the naming
problems.

b) have a special system call for attaching proto.

martin:
> One could have a /proto/ctl file to which commands could be sent to remove
> (or even add?!) devices from the visibility of this, and inheriting, processes
> (a sort of fine-grained NODEVS).

this would require that the namespace served by the proto device
was specific to a namespace group. how would the proto device
know to serve the same namespace to a process that's just
done an rfork(RFNAMEG)?

you could make it so each attach to '#' (the proto device) gave
you a new instance of that device, so:

	unmount /proto
	bind '#' /proto

would allow changing of availability of devices in /proto
without affecting anything else.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 19:04 [9fans] A proposal regarding # in bind rog
@ 2003-02-24 19:04 ` rob pike, esq.
  2003-02-24 19:53   ` Jack Johnson
  2003-02-25  4:37   ` Martin C.Atkins
  2003-02-24 19:29 ` Fco.J.Ballesteros
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 29+ messages in thread
From: rob pike, esq. @ 2003-02-24 19:04 UTC (permalink / raw)
  To: 9fans

/proto is an odd choice of name and also kinda long.
/ur seems better.  one could have the ur-console /ur/console,
etc.

-rob



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 19:04 [9fans] A proposal regarding # in bind rog
  2003-02-24 19:04 ` rob pike, esq.
@ 2003-02-24 19:29 ` Fco.J.Ballesteros
  2003-02-24 22:34 ` George Michaelson
  2003-02-25  5:00 ` Martin C.Atkins
  3 siblings, 0 replies; 29+ messages in thread
From: Fco.J.Ballesteros @ 2003-02-24 19:29 UTC (permalink / raw)
  To: 9fans

An alternative to having a special system call
could be for RFCNAMEG to mean `a namespace with just
a reasonable set of kernel devices mounted under /ur'.


There'd be no bootstrap problem (well, it would be hidden inside the code
for RFCNAMEG).

This alternative would lead to:

1. the problem of using just some of the devices and not
all of them.

2. the problem of `which one is the reasonable set' (eg. we probably
dont want #| there for each RFCNAMEG).

If the implementation of RFCNAMEG becomes just a bunch of attach calls
to the set of `reasonable' # names, and we permit unmount on, say, /ur/console
then I'd say that 1 is not a problem.

Regarding 2, I don't have an answer (other than keeping #| or changing
its semantics---eg. creating pipes by cloning and not by attaching).



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 19:04 ` rob pike, esq.
@ 2003-02-24 19:53   ` Jack Johnson
  2003-02-25  4:37   ` Martin C.Atkins
  1 sibling, 0 replies; 29+ messages in thread
From: Jack Johnson @ 2003-02-24 19:53 UTC (permalink / raw)
  To: 9fans

rob pike, esq. wrote:
> /proto is an odd choice of name and also kinda long.
> /ur seems better.  one could have the ur-console /ur/console,
> etc.

But then I'd have to name a host enlil and find a cuneiform font...

-J



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 19:04 [9fans] A proposal regarding # in bind rog
  2003-02-24 19:04 ` rob pike, esq.
  2003-02-24 19:29 ` Fco.J.Ballesteros
@ 2003-02-24 22:34 ` George Michaelson
  2003-02-24 23:32   ` Bruce Ellis
  2003-02-25  5:00 ` Martin C.Atkins
  3 siblings, 1 reply; 29+ messages in thread
From: George Michaelson @ 2003-02-24 22:34 UTC (permalink / raw)
  To: 9fans


well either /// or /... spring to mind as precedents

(newcastle connection)

-George


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 22:34 ` George Michaelson
@ 2003-02-24 23:32   ` Bruce Ellis
  2003-02-25  5:02     ` Martin C.Atkins
  0 siblings, 1 reply; 29+ messages in thread
From: Bruce Ellis @ 2003-02-24 23:32 UTC (permalink / raw)
  To: 9fans

Research Inferno has an "indirect driver" which provides
attach by name rather than magic rune.  It's magic rune
is * and the mount spec is the name of the sought driver.

'#*cons' is equivalent to '#c'

This makes scripts and startup code a lot easier to follow,
and ns files clearer.  e.g.

    bind -a '#*kprof' /dev

It also makes dynamically loadable device drivers with
autoallocated magic runes more manageable.

brucee


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 19:04 ` rob pike, esq.
  2003-02-24 19:53   ` Jack Johnson
@ 2003-02-25  4:37   ` Martin C.Atkins
  2003-02-25 11:02     ` chris
  1 sibling, 1 reply; 29+ messages in thread
From: Martin C.Atkins @ 2003-02-25  4:37 UTC (permalink / raw)
  To: 9fans

On Mon, 24 Feb 2003 11:04:21 -0800 "rob pike, esq." <rob@mightycheese.com> wrote:
> /proto is an odd choice of name and also kinda long.
> /ur seems better.  one could have the ur-console /ur/console,
> etc.
>
> -rob
>

I didn't like 'proto' either, but coming up with a good name is even more
difficult than coming up with a good idea :-)!

Martin
--
Martin C. Atkins				martin@mca-ltd.com
Mission Critical Applications Ltd, U.K.		http://www.mca-ltd.com


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 19:04 [9fans] A proposal regarding # in bind rog
                   ` (2 preceding siblings ...)
  2003-02-24 22:34 ` George Michaelson
@ 2003-02-25  5:00 ` Martin C.Atkins
  2003-02-25  9:05   ` [9fans] lpdaemon probs Conor Williams
  3 siblings, 1 reply; 29+ messages in thread
From: Martin C.Atkins @ 2003-02-25  5:00 UTC (permalink / raw)
  To: 9fans

On Mon, 24 Feb 2003 19:04:01 0000 rog@vitanuova.com wrote:
>...
>
> a) there's still an escape from the namespace, but a smaller one:
> there could be one (and only one) device nameable in the '#' name
> space, the proto device.  (whether one allows an attach spec is a
> matter of taste).  that at least would solve some of the naming
> problems.
>
> b) have a special system call for attaching proto.

I was hoping to avoid any visibility from user space of the mechanism
for attaching /proto. (See my reply to Rob's message)

>
> martin:
> > One could have a /proto/ctl file to which commands could be sent to remove
> > (or even add?!) devices from the visibility of this, and inheriting, processes
> > (a sort of fine-grained NODEVS).
>
> this would require that the namespace served by the proto device
> was specific to a namespace group. how would the proto device
> know to serve the same namespace to a process that's just
> done an rfork(RFNAMEG)?

Ahh yes - good point. That's one reason why I said that it may be going
too far!


> you could make it so each attach to '#' (the proto device) gave
> you a new instance of that device, so:
>
> 	unmount /proto
> 	bind '#' /proto
>
> would allow changing of availability of devices in /proto
> without affecting anything else.
>

See above....

Martin
--
Martin C. Atkins				martin@mca-ltd.com
Mission Critical Applications Ltd, U.K.		http://www.mca-ltd.com


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-24 23:32   ` Bruce Ellis
@ 2003-02-25  5:02     ` Martin C.Atkins
  2003-02-25 11:19       ` chris
  0 siblings, 1 reply; 29+ messages in thread
From: Martin C.Atkins @ 2003-02-25  5:02 UTC (permalink / raw)
  To: 9fans

On Tue, 25 Feb 2003 10:32:20 +1100 "Bruce Ellis" <brucee@chunder.com> wrote:
> Research Inferno has an "indirect driver" which provides
> attach by name rather than magic rune.  It's magic rune
> is * and the mount spec is the name of the sought driver.
>
> '#*cons' is equivalent to '#c'
>

Ahh! It's rather funny that I didn't know that!

> This makes scripts and startup code a lot easier to follow,
> and ns files clearer.  e.g.
>
>     bind -a '#*kprof' /dev
>
> It also makes dynamically loadable device drivers with
> autoallocated magic runes more manageable.

Indeed!

> brucee

Martin
--
Martin C. Atkins				martin@mca-ltd.com
Mission Critical Applications Ltd, U.K.		http://www.mca-ltd.com


^ permalink raw reply	[flat|nested] 29+ messages in thread

* [9fans] lpdaemon probs
  2003-02-25  5:00 ` Martin C.Atkins
@ 2003-02-25  9:05   ` Conor Williams
  2003-02-25 10:07     ` Geoff Collyer
  0 siblings, 1 reply; 29+ messages in thread
From: Conor Williams @ 2003-02-25  9:05 UTC (permalink / raw)
  To: 9fans

got acd working successfully through acme -
I like the interface - have my big stereo hooked up
to the cd drive and line in on and it sounds pretty good!

having problems with lpdaemon at the mo - getting a
read error: connection lost
in the log file when I connect using
aux/lpdsend -d myibm -H 10.5.1.20 india18 /tmp/blah
or when I set up a new printer which points to myibm
and print using
lp -d myibmremote /tmp/blah
myibm works fine from india18
/tmp/blah is only a small 4 line txt file which prints fine from
india18
tx
will551



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] lpdaemon probs
  2003-02-25  9:05   ` [9fans] lpdaemon probs Conor Williams
@ 2003-02-25 10:07     ` Geoff Collyer
  2003-02-25 10:33       ` Conor Williams
  0 siblings, 1 reply; 29+ messages in thread
From: Geoff Collyer @ 2003-02-25 10:07 UTC (permalink / raw)
  To: 9fans

lp is complicated.  What are the entries in /sys/lib/lp/devices for
your printers?



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] lpdaemon probs
  2003-02-25 10:07     ` Geoff Collyer
@ 2003-02-25 10:33       ` Conor Williams
  2003-02-25 23:50         ` Geoff Collyer
  0 siblings, 1 reply; 29+ messages in thread
From: Conor Williams @ 2003-02-25 10:33 UTC (permalink / raw)
  To: 9fans

ok...
dont have the file with me but its something like:
myibm             -                 -            -             /dev/lp2data
gs!laserjet!?    nospool    - - - -
# this line isnt quite it but is working perfectly on india18
myibmremote india18    india18 myibm   -                        post+nohead
lpdaemon lpd - -  FIFO
# this line isnt quite it but the log for the lpdaemon on india18 is showing
a connection
# but then I get the read error: connection lost line...
# lpdaemon- just calls aux/lpdsend (it was already there in the spool dir)
# lpd is used for the stats...
# I get a very similar error when I use aux/lpdsend directly bypassing the
above line
# for myibmremote
#
I traced some of the code for the lpdaemon on port 515 - could it be that it
doesnt have permissions somewhere?
l8r
will551


> lp is complicated.  What are the entries in /sys/lib/lp/devices for
> your printers?
>
>



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25  4:37   ` Martin C.Atkins
@ 2003-02-25 11:02     ` chris
  2003-02-25 14:01       ` Martin C.Atkins
  0 siblings, 1 reply; 29+ messages in thread
From: chris @ 2003-02-25 11:02 UTC (permalink / raw)
  To: 9fans

Rather than rog's special special #name for acquiring the
local device namespace I'd prefer a syscall.

Things in the namespace (named by paths) can be anywhere
in the network.  Syscalls are tied to the local machine.
This seems conceptually cleaner.

Other notes:

pctl(NODEVS) still allows attach to certain devices such as devpipe
and prog.  Martin's unmount /ur would prevent an app from killing
off any spawned threads or using pipes, which seems draconian.

[NOTE: general access to prog is a problem anyway - consider multiple
users logged in as 'none' - any one can kill the threads of the others.]





^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25  5:02     ` Martin C.Atkins
@ 2003-02-25 11:19       ` chris
  2003-02-25 14:06         ` Martin C.Atkins
  2003-02-26  0:04         ` Bruce Ellis
  0 siblings, 2 replies; 29+ messages in thread
From: chris @ 2003-02-25 11:19 UTC (permalink / raw)
  To: 9fans


On Tue, 25 Feb 2003 10:32:20 +1100 "Bruce Ellis" <brucee@chunder.com> wrote:
> Research Inferno has an "indirect driver" which provides
> attach by name rather than magic rune.  It's magic rune
> is * and the mount spec is the name of the sought driver.
>
> '#*cons' is equivalent to '#c'
>

can you ls '#*' to get a list of devices or do you still
have to cat /dev/drivers ?

Also, you've reminded me of the use of attach name in several of
the drivers (e.g. kfs).
How do you get an attach name to an underlying device attached
through '#*' when you are using the attach name to
identify the device?

This is also an issue for Martin's "/ur" scheme.
The # namespace partitions the initial path element into
device id (letter) and attach name, which is used to paramaterise
the particular instance of the driver in the namespace.
There seems no way of paramaterising device instances in
Martin's scheme as there is only ever one instance or am I
missing something?





^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 11:02     ` chris
@ 2003-02-25 14:01       ` Martin C.Atkins
  2003-02-25 14:11         ` Russ Cox
  0 siblings, 1 reply; 29+ messages in thread
From: Martin C.Atkins @ 2003-02-25 14:01 UTC (permalink / raw)
  To: 9fans

On Tue, 25 Feb 2003 11:02:27 +0000 chris@cjl1.demon.co.uk wrote:
> Rather than rog's special special #name for acquiring the
> local device namespace I'd prefer a syscall.

Like I've said in another message, I'd prefer there to be no (user-visible)
way to mount /ur, only a way to unmount it!

>..
> Other notes:
>
> pctl(NODEVS) still allows attach to certain devices such as devpipe
> and prog.  Martin's unmount /ur would prevent an app from killing
> off any spawned threads or using pipes, which seems draconian.

Right. Now I understand the comments in another message...

How about this:
Before starting the init process, the kernel binds into init's namespace

	#/ onto /
	#smallur onto /ur
	#bigur onto /ur (BEFORE)

using the kernel's private, special version of bind, which does understand these names.

#smallur would provide names for '#|' etc, and #bigur would provide names
for the rest. Then an inheriting process could unmount bigur, but still be able
to create pipes, etc.

(NB I'm not seriously suggesting these exact names! :-)

BTW: why would my unmount /ur prevent an application from killing spawned
threads? If the application had #p mounted on /prog, then unmounting /ur wouldn't
affect that in any way.... (/ur is only used during the bind of #p etc.)

>
> [NOTE: general access to prog is a problem anyway - consider multiple
> users logged in as 'none' - any one can kill the threads of the others.]

Indeed!

Martin
--
Martin C. Atkins				martin@mca-ltd.com
Mission Critical Applications Ltd, U.K.		http://www.mca-ltd.com


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 11:19       ` chris
@ 2003-02-25 14:06         ` Martin C.Atkins
  2003-02-26  0:04         ` Bruce Ellis
  1 sibling, 0 replies; 29+ messages in thread
From: Martin C.Atkins @ 2003-02-25 14:06 UTC (permalink / raw)
  To: 9fans

On Tue, 25 Feb 2003 11:19:57 +0000 chris@cjl1.demon.co.uk wrote:
>...
> Also, you've reminded me of the use of attach name in several of
> the drivers (e.g. kfs).
> How do you get an attach name to an underlying device attached
> through '#*' when you are using the attach name to
> identify the device?
>
> This is also an issue for Martin's "/ur" scheme.
> The # namespace partitions the initial path element into
> device id (letter) and attach name, which is used to paramaterise
>...

No, I dealt with this when I suggested that '#Dppp/path' would expand
to '/proto/shortnames/D/ppp/path'. Of course, this requires some,
(perhaps unusually clever) path processing in the proto/ur driver, but who's
saying it can't be clever :-) ?!

Martin
--
Martin C. Atkins				martin@mca-ltd.com
Mission Critical Applications Ltd, U.K.		http://www.mca-ltd.com


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 14:01       ` Martin C.Atkins
@ 2003-02-25 14:11         ` Russ Cox
  2003-02-25 14:17           ` Martin C.Atkins
  0 siblings, 1 reply; 29+ messages in thread
From: Russ Cox @ 2003-02-25 14:11 UTC (permalink / raw)
  To: 9fans

> Like I've said in another message, I'd prefer there to be no (user-visible)
> way to mount /ur, only a way to unmount it!

How would you implement newns?



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 14:11         ` Russ Cox
@ 2003-02-25 14:17           ` Martin C.Atkins
  2003-02-25 14:34             ` Russ Cox
  0 siblings, 1 reply; 29+ messages in thread
From: Martin C.Atkins @ 2003-02-25 14:17 UTC (permalink / raw)
  To: 9fans

On Tue, 25 Feb 2003 09:11:46 -0500 "Russ Cox" <rsc@plan9.bell-labs.com> wrote:
> > Like I've said in another message, I'd prefer there to be no (user-visible)
> > way to mount /ur, only a way to unmount it!
>
> How would you implement newns?
>

Newns should only work if /proto is mounted, right? Just like it shouldn't work
after a pctl(NODEVS). Or is newns more powerful than I had appreciated?

Martin
--
Martin C. Atkins				martin@mca-ltd.com
Mission Critical Applications Ltd, U.K.		http://www.mca-ltd.com


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 14:17           ` Martin C.Atkins
@ 2003-02-25 14:34             ` Russ Cox
  2003-02-25 14:36               ` Russ Cox
  0 siblings, 1 reply; 29+ messages in thread
From: Russ Cox @ 2003-02-25 14:34 UTC (permalink / raw)
  To: 9fans

> Newns should only work if /proto is mounted, right? Just like it shouldn't work
> after a pctl(NODEVS). Or is newns more powerful than I had appreciated?

Newns builds a new name space from scratch.  The implementation
is in /sys/src/libauth/newns.c.

Once newns opens the file describing the name space it is
to construct, it clears the name space with rfork(RFNAMEG)
and then starts rebuilding.  If rfork(RFNAMEG) doesn't clear
/ur, then /ur is still a special case.  If it does clear /ur, then
how do you get it back?

Russ



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 14:34             ` Russ Cox
@ 2003-02-25 14:36               ` Russ Cox
  2003-02-25 14:52                 ` Ronald G. Minnich
  2003-02-25 16:49                 ` Dan Cross
  0 siblings, 2 replies; 29+ messages in thread
From: Russ Cox @ 2003-02-25 14:36 UTC (permalink / raw)
  To: 9fans

> Newns should only work if /proto is mounted, right? Just like it shouldn't work
> after a pctl(NODEVS). Or is newns more powerful than I had appreciated?

[RFCNAMEG not RFNAMEG]

Newns builds a new name space from scratch.  The implementation
is in /sys/src/libauth/newns.c.

Once newns opens the file describing the name space it is
to construct, it clears the name space with rfork(RFCNAMEG)
and then starts rebuilding.  If rfork(RFCNAMEG) doesn't clear
/ur, then /ur is still a special case.  If it does clear /ur, then
how do you get it back?

Russ



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 14:36               ` Russ Cox
@ 2003-02-25 14:52                 ` Ronald G. Minnich
  2003-02-25 19:57                   ` northern snowfall
  2003-02-25 16:49                 ` Dan Cross
  1 sibling, 1 reply; 29+ messages in thread
From: Ronald G. Minnich @ 2003-02-25 14:52 UTC (permalink / raw)
  To: 9fans

possibly me being a stick-in-the-mud, but so far the /ur ideas seem to be
adding new rules with special cases, mountpoints that happen in magic
ways, exceptions to things that shouldn't have exceptions (newns), and so
on. It's also adding two "special" names (/ur and #) where there used to
be one.

So far the simplicity of # seems a bit nicer.

ron



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 14:36               ` Russ Cox
  2003-02-25 14:52                 ` Ronald G. Minnich
@ 2003-02-25 16:49                 ` Dan Cross
  2003-02-26  5:12                   ` Martin C.Atkins
  1 sibling, 1 reply; 29+ messages in thread
From: Dan Cross @ 2003-02-25 16:49 UTC (permalink / raw)
  To: 9fans

> > Newns should only work if /proto is mounted, right? Just like it shouldn't work
> > after a pctl(NODEVS). Or is newns more powerful than I had appreciated?
>
> [RFCNAMEG not RFNAMEG]
>
> Newns builds a new name space from scratch.  The implementation
> is in /sys/src/libauth/newns.c.
>
> Once newns opens the file describing the name space it is
> to construct, it clears the name space with rfork(RFCNAMEG)
> and then starts rebuilding.  If rfork(RFCNAMEG) doesn't clear
> /ur, then /ur is still a special case.  If it does clear /ur, then
> how do you get it back?

Hmm.  I wonder if one can post a file descriptor for a kernel
device under /ur ala what srv does.  Then, newns() could simply
open that file descriptor, clear the namespace, and then mount
it.  That's not shockingly different from what we do now.

Similarly, the bootstrapping case could be handled by having the
kernel pass init() an open file descriptor, which it could mount
on /ur.  I'm not so concerned about being able to remount it in
a process (or descendent thereof) that's unmounted it, so I see
little difference between ``bigur'' and ``smallur''.  If you
want /proc, mount it.  If you want #|, mount it somewhere, then
do your unmount.  Environment's might be a little wierd to deal
with, though.

	- Dan C.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 14:52                 ` Ronald G. Minnich
@ 2003-02-25 19:57                   ` northern snowfall
  0 siblings, 0 replies; 29+ messages in thread
From: northern snowfall @ 2003-02-25 19:57 UTC (permalink / raw)
  To: 9fans

>
>
>It's also adding two "special" names (/ur and #) where there used to
>be one.
>
>So far the simplicity of # seems a bit nicer.
>
Agreed. A nexus isn't composed of multiple parts. A nexus should be just
that,
a single access endpoint. Though '#' may be "clunky" it works well and is
simple. I like the idea of device names rather than Runes, but, it seems
that
/ur /whatever and whatnots are even worse hacks over complicating the
issue, rather than creating a solid solution.
Don

>



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] lpdaemon probs
  2003-02-25 10:33       ` Conor Williams
@ 2003-02-25 23:50         ` Geoff Collyer
  2003-02-27  9:59           ` [9fans] lpdaemon probs (fix) Conor Williams
  0 siblings, 1 reply; 29+ messages in thread
From: Geoff Collyer @ 2003-02-25 23:50 UTC (permalink / raw)
  To: 9fans

I think we need your /sys/lib/lp/devices file (or at least the entries
relevant to your printers), not an approximation, to debug this.
There should be a dozen fields in most entries; they should look
something like this (all one line):

fn			2C-501	olive.cs.bell-labs.com	tcp!fn.cs.bell-labs.com!9100 81920	post+600dpi+duplex+hp4simx	generic	generic	generic	generic		tcppost	FIFO

Also, could you run this and send us the output:

flag x +
echo fs $fs fileserver $fileserver
9fs other
ls -ld /lp /n/other/lp



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 11:19       ` chris
  2003-02-25 14:06         ` Martin C.Atkins
@ 2003-02-26  0:04         ` Bruce Ellis
  2003-02-26  6:06           ` Skip Tavakkolian
  1 sibling, 1 reply; 29+ messages in thread
From: Bruce Ellis @ 2003-02-26  0:04 UTC (permalink / raw)
  To: 9fans

> How do you get an attach name to an underlying device attached
> through '#*' when you are using the attach name to
> identify the device?

The Research Inferno devindir uses the syntax:

    name [ ! spec ]

So ...

    #*cons  == #c
    #*ether!0 == #l0
    #*ip!1 == #I1
    #*srv!auth == #sauth

etc. Note that the driver is very simple. The only code involved is
in indirattach() which smashes the spec, scrounges thru devtab,
and calls the appropriate attach.  Nothing else was changed.

brucee


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-25 16:49                 ` Dan Cross
@ 2003-02-26  5:12                   ` Martin C.Atkins
  0 siblings, 0 replies; 29+ messages in thread
From: Martin C.Atkins @ 2003-02-26  5:12 UTC (permalink / raw)
  To: 9fans

On Tue, 25 Feb 2003 11:49:59 -0500 Dan Cross <cross@math.psu.edu> wrote:
> > > Newns should only work if /proto is mounted, right? Just like it shouldn't work
> > > after a pctl(NODEVS). Or is newns more powerful than I had appreciated?
> >
> > [RFCNAMEG not RFNAMEG]
> >
> > Newns builds a new name space from scratch.  The implementation
> > is in /sys/src/libauth/newns.c.

Right. I forgot about RFCNAMEG, and assumed that it just read /prog/pid/ns
and unmounted it found there! But...

> > Once newns opens the file describing the name space it is
> > to construct, it clears the name space with rfork(RFCNAMEG)
> > and then starts rebuilding.  If rfork(RFCNAMEG) doesn't clear
> > /ur, then /ur is still a special case.  If it does clear /ur, then
> > how do you get it back?
>
> Hmm.  I wonder if one can post a file descriptor for a kernel
> device under /ur ala what srv does.  Then, newns() could simply
> open that file descriptor, clear the namespace, and then mount
> it.  That's not shockingly different from what we do now.

This sounds neat to me. It's not really a special case any more, just
the application of a general mechanism. (I don't like special cases
either! :-)

> Similarly, the bootstrapping case could be handled by having the
> kernel pass init() an open file descriptor, which it could mount
> on /ur.  I'm not so concerned about being able to remount it in
> a process (or descendent thereof) that's unmounted it, so I see
> little difference between ``bigur'' and ``smallur''.  If you
> want /proc, mount it.  If you want #|, mount it somewhere, then
> do your unmount.  Environment's might be a little wierd to deal
> with, though.

Agreed! That was exactly my point of view too - I only suggested smallur
to show that there are several possible approaches.

>
> 	- Dan C.
>

Re: /ur introducing more special cases than it removes: I believe
that most of the new special cases are to continue the support for
the old '#' syntax. During the transition period, there would of course
be more complications, since both the old and the new syntaxes
have to work simultaneously!

However, once backwards compatibility for '#' could be removed
completely, then using Dan's suggestion, I would have thought the
'/ur' approach would be gloriously free of special cases (except
perhaps, the fact that init is spawned with an open file descriptor).

Anyway, the whole thing was just a suggestion/idea/question, and the
discussion has been educational for me, at least. (It sure beats spam
and "how do we avoid spam" messages, however important the later
might be! :-)

Martin
--
Martin C. Atkins				martin@mca-ltd.com
Mission Critical Applications Ltd, U.K.		http://www.mca-ltd.com


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] A proposal regarding # in bind
  2003-02-26  0:04         ` Bruce Ellis
@ 2003-02-26  6:06           ` Skip Tavakkolian
  0 siblings, 0 replies; 29+ messages in thread
From: Skip Tavakkolian @ 2003-02-26  6:06 UTC (permalink / raw)
  To: 9fans

> So ...
>
>     #*cons  == #c
>     #*ether!0 == #l0
>     #*ip!1 == #I1
>     #*srv!auth == #sauth
>

I like '#*' idea.

In the interest of considering all possibilities, I was looking up QNX's
idea of a node, and its notation which is '//n' where n == 0 means
local node.  QNX's idea is "the namespace rooted at node n", where
nodes ids are statically assigned by administrator, so not directly
comparable to '#'.  But if there was a way to dynamically define
ids for known resource locations, then //n could be used to mean
the same thing as '#' on machine n.
example:
	//0/	== #/
	//n/cons	== #c on machine n
	etc.

Just a thought.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] lpdaemon probs (fix)
  2003-02-25 23:50         ` Geoff Collyer
@ 2003-02-27  9:59           ` Conor Williams
  2003-02-27 20:57             ` Geoff Collyer
  0 siblings, 1 reply; 29+ messages in thread
From: Conor Williams @ 2003-02-27  9:59 UTC (permalink / raw)
  To: 9fans

hey Geoff
thanks for youre interest...
got it running last night - spent half the night hacking the
lpdaemon.c code (/root/sys/src/cmd/lp) and traced the problem
to the fork and exec - which didnt seem to be running - so ran
touch and that worked then watched the processes being spawned on
the server and found that lp was being spawned...
so eventually after trying differnt things traced the problem to the
namespace... what happened was the parallel port wasnt bound for
user none coming into the box...
so  a bind -a '#'L2 /dev in the /rc/bin/service/tcp515 file before the
lpdaemon line fixed it... jumping around the room last night!! This
fixed the "read error: connection lost line" aswell! So I can now print from
my diskless terminal to my server which has the printer hanging out
of its parallel port.
Q. Has no-one come across that before?
The devices file I had created was actually ok (it is quite similar to
the one I posted)
l8r
will551

----- Original Message -----
From: "Geoff Collyer" <geoff@collyer.net>
To: <9fans@cse.psu.edu>
Sent: Tuesday, February 25, 2003 11:50 PM
Subject: Re: [9fans] lpdaemon probs


> I think we need your /sys/lib/lp/devices file (or at least the entries
> relevant to your printers), not an approximation, to debug this.
> There should be a dozen fields in most entries; they should look
> something like this (all one line):
>
> fn          2C-501  olive.cs.bell-labs.com  tcp!fn.cs.bell-labs.com!9100
81920  post+600dpi+duplex+hp4simx  generic generic generic generic
tcppost FIFO
>
> Also, could you run this and send us the output:
>
> flag x +
> echo fs $fs fileserver $fileserver
> 9fs other
> ls -ld /lp /n/other/lp
>
>



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [9fans] lpdaemon probs (fix)
  2003-02-27  9:59           ` [9fans] lpdaemon probs (fix) Conor Williams
@ 2003-02-27 20:57             ` Geoff Collyer
  0 siblings, 0 replies; 29+ messages in thread
From: Geoff Collyer @ 2003-02-27 20:57 UTC (permalink / raw)
  To: 9fans

Ah, yes, I have run into that in the past.  It only matters if you
have a parallel-port printer.  It might be worth a mention in the
installation notes.



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2003-02-27 20:57 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-24 19:04 [9fans] A proposal regarding # in bind rog
2003-02-24 19:04 ` rob pike, esq.
2003-02-24 19:53   ` Jack Johnson
2003-02-25  4:37   ` Martin C.Atkins
2003-02-25 11:02     ` chris
2003-02-25 14:01       ` Martin C.Atkins
2003-02-25 14:11         ` Russ Cox
2003-02-25 14:17           ` Martin C.Atkins
2003-02-25 14:34             ` Russ Cox
2003-02-25 14:36               ` Russ Cox
2003-02-25 14:52                 ` Ronald G. Minnich
2003-02-25 19:57                   ` northern snowfall
2003-02-25 16:49                 ` Dan Cross
2003-02-26  5:12                   ` Martin C.Atkins
2003-02-24 19:29 ` Fco.J.Ballesteros
2003-02-24 22:34 ` George Michaelson
2003-02-24 23:32   ` Bruce Ellis
2003-02-25  5:02     ` Martin C.Atkins
2003-02-25 11:19       ` chris
2003-02-25 14:06         ` Martin C.Atkins
2003-02-26  0:04         ` Bruce Ellis
2003-02-26  6:06           ` Skip Tavakkolian
2003-02-25  5:00 ` Martin C.Atkins
2003-02-25  9:05   ` [9fans] lpdaemon probs Conor Williams
2003-02-25 10:07     ` Geoff Collyer
2003-02-25 10:33       ` Conor Williams
2003-02-25 23:50         ` Geoff Collyer
2003-02-27  9:59           ` [9fans] lpdaemon probs (fix) Conor Williams
2003-02-27 20:57             ` Geoff Collyer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).