Wednesday, March 26, 2008

Changing the Configuration Situation in Linux

If you're a fairly experience Linux guy, you'll be able to wander around in /etc and find the configuration file you need with no problem. The common ones rarely change position and the formats have stayed relatively stable for years. The first time you run into a configuration file for a program, it may take a little while to work with. You may even need to open the manual on the program to find where the configuration is located in the odd instance where the location isn't obvious. Most use some kind of plain-text shell configuration, but plenty write in XML these days, too, and the comment syntax varies. That's nothing mind-blowing, but it's kind of a pain.

What if the configuration for every program were (Unixly) available in a comprehensible directory structure, kind of the way /proc and /sys work now.

You've got a kernel panic? Try:
echo 2 > /proc/sys/net/ipv4/route/gc_elasticity
echo 1 > /proc/sys/net/ipv4/route/gc_interval
echo 131072 > /proc/sys/net/ipv4/route/gc_thresh

I's that easy to change the kernel's runtime configuration.

Tip: Echoing something into /proc/cpuinfo won't actually give you a multi-cpu setup on your rig! ;)

What if finding out the root filesystem type was available at system/filesystems/rootfs/type? The configuration information for your default site in Apache might be located in daemons/apache/default/.

Does it sound interesting? While I'm on the fence, it's certainly intriguing.

Well, that's the proposal from Markus Raab that appeared on's XDG mailing list today. Elektra is the vehicle that's supposed to make this all possible, and he's pushing it for inclusion into the Freedesktop specifications. The upside for this is that the configuration information is not limited to /etc level stuff: if the spec becomes reality, KDE, Gnome, XFCE and other compliant window managers and desktop environments could be configured, too. What to change the current user's wallpaper?

kdb set currentuser/desktop/background "/usr/share/wallpapers/1.jpg"

Does that remind you of GConf? Yeah? I was sure it would. I don't see any real difference, except that we're abstracting out the entire configuration for everything on the machine. GConf has enough detractors that I doubt it's going to pass.

It sure would be a different Linux world, though, wouldn't it?


Post a Comment

Other I' Been to Ubuntu Stories