[Top][All Lists]

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

Re: Hurd FS hierarchy (was Re: LD_LIBRARY_PATH troubles)

From: Jeroen Dekkers
Subject: Re: Hurd FS hierarchy (was Re: LD_LIBRARY_PATH troubles)
Date: Sun, 17 Mar 2002 19:56:31 +0100
User-agent: Mutt/1.3.27i

On Sun, Mar 17, 2002 at 11:49:55AM -0500, Richard Kreuter wrote:
> On Sun, Mar 17, 2002 at 02:25:08PM +0100, Jeroen Dekkers wrote:
> > On Sat, Mar 16, 2002 at 04:21:37PM -0500, Marcus Brinkmann wrote:
> > >  Before we can really claim FHS compliance, I would guess that
> > > some things in the FHS have to change to cater for the Hurd.
> > 
> > I already have some work on this, but it's far from finished. I will
> > finish it when I've more time, I can post it if somebody is
> > interested in working on it.
>   Sure, I'd like to help.

Ok, this are the things I have on my hard disk. I don't claim it is
perfect or even makes sense. It's some under development thing.

The following things need to change in the FSH itself:
3.1 Prohibiting creating of subdirectories of the root filesystem is
too restrictrive, it should be discouraged
3.4.2 We don't have dmesg, kill or umount. I think dmesg is too
OS-specific, kill will be in the next shellutils and I'm not sure what
to do about umount. Should we provide a frontend just like for mount?
3.5.1 Grub needs its config in /boot and that should be allowed.
3.9.3 I'm not sure /lib/modules is the right place for kernel
modules. I think we should move it to the GNU/Linux specific annex.
4.11.3 /usr/share/info should be required in the GNU specific annex,
/usr/share/man should be made optional here. We also might add a
subsection describing the info dir layout.
5.6.1 says "it not supported under Linux", what is too OS-specific IMHO.
6.1 Should be named "GNU/Linux" instead of "Linux"

This the OS specific annex I've written so far. It's not finished and
the current things probably need changing. I haven't add numbers to
the paragraphs to not have it to change when adding a new
paragraph. I'm not sure the /var/spool/cron shouldn't go to the non
OS-specific part.

6.2  GNU

This is the annex for the GNU operating system.

The GNU system is special compared to other UNIX-like operating
systems in the way it treats the filesystem namespace. The filesystem
namespace is very flexible, you can do anything with it what you
want. That's why it is reasonable to specify where you should find
directories and files, but not the way those directories and files
should get there.

6.2.x  / : The Root Filesystem

It's allowed to create a new subdirectory of the root filesystem by
the distribution creator or user.

6.2.x  /boot : Static files of the bootloader

6.2.x  /bin : Essential user command binaries (for use by all users)

6.2.x  /hurd : The Hurd servers

/hurd contains the Hurd server binaries. Servers with .static appended
to their name must be statically linked servers, servers without
.static appended should be dynamic linked servers.

The following servers, or symbolic links to servers, are required in

auth[.static]  The standard authentication server.
exec[.static]  The standard execution server.
init[.static]  The standard initialization and state maintaining server.
proc[.static]  The standard process server.

6.2.x  /libexec : Executables only run by other programs

The directory for installing executable programs to be run by other
programs rather than by users.

6.2.x  /sbin : 

Add parted.

6.2.x  /servers : Standard location where Hurd servers translate

This is the directory Hurd servers translate rendezvous filesystem
nodes in standard locations, so that other programs can easily find
them and use server-specific interfaces.

/servers/exec      The node where the exec sever translates.
/servers/password  The node where the password server translates.
/servers/socket/1  The node where the pflocal server translates.
/servers/socket/2  The node where the pfinet server translates.

6.2.x  /usr : Secondary Hierarchy

In the GNU system the current practice is to have /usr a symbolic link
to /. The / and /usr directory have thus the namesame and names of
files and directories within must not conflict. It's recommended to
have the symbolink link.


The GNU Hurd has a special filesystem, called shadowfs, which can
"merge" directories. Thus everything from different sources can be
merged (both static and variable data) and /usr isn't really needed.d
/usr, everything will be found under /.


6.2.x  /usr/share/info : GNU Info system's primary directory

This directory is required.

6.2.x  /usr/X11R6 : X Window System, Version 11 Release 6

This directory should not be used. Instead the X Window System should
be placed in /usr.

6.2.x  /var/spool/cron : cron and at jobs

This directory contains the variable data for the cron and at

Jeroen Dekkers
Jabber supporter - Jabber ID:
Debian GNU supporter -
IRC: jeroen@openprojects

Attachment: pgpAP6umGDF6Z.pgp
Description: PGP signature

reply via email to

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