l4-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Task destruction


From: Marcus Brinkmann
Subject: Re: Task destruction
Date: Tue, 6 Aug 2002 16:31:46 +0200
User-agent: Mutt/1.4i

On Tue, Aug 06, 2002 at 04:13:18PM +0200, Niels Möller wrote:
> But then the proc server in the child hurd can neither track nor
> control its proceses,

Uh, of course it can, as usually tasks register themselves with the proc
server voluntarily.

Otherwise, if you have the need, you use a proxy task server again.

Note that we have no task tracking whatsoever in Mach, except that you can
get the control ports of all tasks if you are privileged.  And we have all
the features you claim would be impossible to have if we can not track task
inheritance.

> I realize that you could probably get around that with a proxy task
> server, but I think it would be cleaner and simpler to let both hurds
> use the same task server (and the same memory server for that matter),
> unless there's a really good reason that can't work.

I think you are missing one very important paradigm here, and that is
simplicity.  You forget that this task server we are talking about _must_ be
used by all personalities running on the L4 system.  It is something you can
not avoid.  So its operation should be simple, and lean, and it should not
itself invent any policy except that much of policy as belongs into it.
Compare it with the auth server:  auth is hardly avoidable if you want to
use Hurd servers at all, and thus it only provides very basic operations,
while complex things like parsing the passwd file are in other elements,
like the password server.

The second thing you are probably missing is that the same task server must
be used by non-POSIXish, or even non-Hurdish systems and personalities.
So its operation must be generic enough.  It's easier to be generic if you
do less than if you do more.

I don't claim to have the solution, I just notice that everything we can do
now can be done by a simple task server that does nothing but create, list
and destroy tasks, but that what we need for the Hurd to work better is
an inheritance tree.  So much the status quo.  All the other features, like
deciding who can kill tasks, can be in the proc server, where they are now,
or even in proxy task servers.

Actually, now that the only way to create a new task is to ask the task
server, we could just put the proc server in there as a proxy task server,
and have that being the only one who can create new tasks in a Hurd system.
Then you can put all process organisation in the proc server, and the task
server doesn't need to do any inheritance tracking.
 
Thanks,
Marcus

--
`Rhubarb is no Egyptian god.' GNU      http://www.gnu.org    address@hidden
Marcus Brinkmann              The Hurd http://www.gnu.org/software/hurd/
address@hidden
http://www.marcus-brinkmann.de/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]