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

Re: hurd does NOT need /hurd



On Sun, May 19, 2002 at 07:16:08PM -0500, Adam Heath wrote:
> On Mon, 20 May 2002, Wolfgang Jährling wrote:
> 
> > Translators are no kernel modules. They are normal binaries, but with
> > special functionality.
> 
> What is a binary, really?  It's just some file that is based to exec(), and
> the kernel being run knows how to 'run' it.
> 
> With binfmt_misc in linux, the kernel can be easily extended to run any
> arbitrary file.  So, in that case, msdos.o can be a binary.

You are looking at completely the wrong properties.  The issue is not at all
if a file is a binary, a text file, a picture or a marshmallow from outer
space.  Here are a few hints that should bring you on the right track:

/bin:  Executables that should be in the user's (including the superuser's) PATH.
/sbin: Executables that should be in the superuser's PATH, but not in the
       PATH of other user's.
/libexec: executables that should not be in any user's path and that are
          started indirectly by other programs for their own purpose.
/hurd: executables that can do something useful with the bootstrap port to
       attach themself as Hurd servers to the file system, that should not
       be in any user's PATH, and are started indirectly by settrans or
       the parent filesystem on the explicit request of the user.

Forget any argument about what can be started as a program.  You can start
ld.so manually, which is in /lib, and indeed I frequently do so when
debugging.  You can start libc-2.2.5.so as a program.  Who cares?  Neither
should be in the user's path, so they should not be in /bin or /sbin.  The
libc-2.2.5.so file is not started indirectly as an executable by other
programs at all, so it should be in /lib. 

The only weird exception to this is ld.so, which is really an interpreter
and probably should be in /bin like bash, or in libexec if you think it
should not be in the user's PATH (as the BSD people do).  However, for
reasons that escape me, it is in /lib on GNU/Linux and GNU/Hurd.  You might
start with ld.so as an exercise before trying to help with placing Hurd
servers you don't understand conceptionally in the filesystem.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de


-- 
To UNSUBSCRIBE, email to debian-hurd-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: