Re: How about extending /proc?
I really like this idea. In my mind this would allow applications to still keep their configuration files where/and how they want while ALSO creating a centralized place for all configuration information. I would propose that the best way to do this would be a linux kernel virtual filesystem in conjunction with a daemon that has multiple modules for different applications and their configuration file formats. That way people (or application programmers) can provide a configfs module for their application, if they don't someone who understands how to configure the application can write their own and have configfs dlopen() the module for that application.
> The Linux kernel puts its configuration
> variables in the virtual filesystem
> /proc. I think this is a winning
> strategy. It fits in with the
> fundamental Unix design brilliance,
> 'everything is a file'.
> I suggest building on the /proc
> filesystem. I suggest a virtualised
> filesystem as a consistent interface to
> configurations such as user accounts and
> Apache setup. The virtual filesystem
> would read and write the normal config
> files in the /etc directory.
> Restoring a backup of
> /proc/virtual-etc would ideally have the
> same effect as restoring a backup of
> /etc. The only difference would be the
> former would take longer because the
> 'deep magic' running the
> /proc/virtual-etc filesystem would have
> to build the real configuration files in
> The /proc filesystem is brilliant. I
> can browse the hierarchy of system
> configuration information using simple
> shell commands or the browser of my
> choice. I can see details such as the
> CPU info using any editor, or using a
> simple 'cat' command.
> I can even turn on and off kernel
> facilities, such as IP forwarding, using
> a simple 'cat'.
> So, extending the genius and
> simplicity of /proc, how about something
> like this?
> Example 1: View all the Unix accounts
> in the system:
> shell#> ls
> root mail fred joe
> barney wilma
> Example 2: Set the shell of the Unix
> account 'fred' to '/bin/bash':
> shell#> cat "/bin/bash"
> Example 3: Copy a named virtual host
> in Apache, and set the HTML directory
> for the new virtual host:
> shell#> cd
> shell#> cp -R somehost newhost
> shell#> cd newhost
> shell#> cat
> "/var/www/newhost" >