[Top][All Lists]

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

Re: the master device port and the privileged host port in subhurd

From: olafBuddenhagen
Subject: Re: the master device port and the privileged host port in subhurd
Date: Fri, 9 May 2008 20:22:49 +0200
User-agent: Mutt/1.5.17+20080114 (2008-01-14)


On Thu, May 08, 2008 at 12:09:39AM +0200, zhengda wrote:
> olafBuddenhagen@gmx.net wrote:

>> The way I read the implementation of __get_privileged_ports() in
>> glibc (hurd/privports.c), it gets the ports from the proc server in
>> the normal case, not from Mach.
> but boot does use the system call to get these two port from Mach,
> right?

No. It uses get_privileged_ports() to get it from the proc server, like
any other normal process.

Again, why do you think it gets it from Mach?

> In the main() of boot, it calls mach_port_request_notification() twice
> for pseudo_master_device_port and pseudo_console respectively.
> pseudo_master_device_port and pseudo_console have only the receive
> right, but the servers in subhurd has their send rights. so boot gets
> the notification only when all servers in the subhurd exit,  right?

Well, not exactly. It's actually when all subhurd processes having send
rights on these ports exit. This is not identical to the set of all
servers: Some servers don't need the master device port, and thus never
request it (I assume); and (at least in theory) any root process might
request the ports, not only servers...

Not sure about the console port; haven't looked into that.

The "no senders" notification is sent when the last send right for the
port gets destroyed.


reply via email to

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