From mboxrd@z Thu Jan 1 00:00:00 1970 Message-Id: <200302251649.h1PGnxM09056@augusta.math.psu.edu> To: 9fans@cse.psu.edu Subject: Re: [9fans] A proposal regarding # in bind In-Reply-To: Your message of "Tue, 25 Feb 2003 09:36:22 EST." From: Dan Cross Date: Tue, 25 Feb 2003 11:49:59 -0500 Topicbox-Message-UUID: 72585584-eacb-11e9-9e20-41e7f4b1d025 > > 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.