GConf

From Elektra Initiative

The "G" comes from Gnome, which makes GConf part of the Gnome project. Some GConf characteristics:

  1. Architected, designed and written for desktop applications only. Its developers have whishlists to make it system global, but a lot in the essential design will have to change, making it practically a new system, and the redesign did not started yet.
  2. GConf's namespaces were not architected for global use.
  3. GConf is a daemon, so if one day it will be system global, it will represent a single point of failure.
  4. GConf storage backend uses XML files, which are big, take long time and system resources to parse or update.
  5. GConf seems to be not preocupied with access permissions, making it again a good solution only for single user desktop applications.
  6. GConf is a high level software with many library dependencies, perfect for high level desktop frameworks, but its dependencies are unacceptable for low level early boot stage programs like /sbin/init. GConf's dependencies look like this:
    $ ldd /usr/lib/libgconf-2.so
      libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x0024b000)
      libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0x03dc7000)
      libm.so.6 => /lib/tls/libm.so.6 (0x00b66000)
      libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00dda000)
      libdl.so.2 => /lib/libdl.so.2 (0x00b8b000)
      libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x0099d000)
      libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00101000)
      libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00c7c000)
      libc.so.6 => /lib/tls/libc.so.6 (0x00a3a000)
      libpopt.so.0 => /usr/lib/libpopt.so.0 (0x0077b000)
      /lib/ld-linux.so.2 (0x00a21000)
    This is useless for an early boot stage program (/usr/lib may be still unmounted), and for a very small OS installation that won't require desktop features, like a router, small firewall, or any other appliance. On the other hand, a program that wants to use Elektra will only link to libelektra.so which has a minimum of natural dependencies:
     $ ldd /lib/libelektra.so
       libc.so.6 => /lib/tls/libc.so.6
       /lib/ld-linux.so.2 => /lib/ld-linux.so.2
  7. All Gnome programs use GConf, which makes them already integrated in the configuration level.
  8. In the Gnome context, Elektra fits well as a GConf backend, this way no program needs to be modified. With an additional Elektra backend for KDE's KConfig-XT, this integration will span a single framework, and we'll see KDE programs using Gnome's configurations and vice-versa.

Compared to GConf, Elektra is not a daemon, was designed from the begining for global system usage, is lightweight, is concerned about security and avoids any dependencies.

When we released the Elektra patch for X.org, we mentioned that since Elektra is very lightweight, the patched X server also works with Red Hat Graphical boot (a moment that you still don't have network and mounted partitions), and a long discussion started on the community. Here is one point from the discussion we enjoy quoting, that sumarizes the difference between Elektra and GConf:


Elektrified X.org released (Posted Nov 30, 2004 16:56 UTC (Tue) by subscriber evgeny) (Post reply)
> can't gconf be used for system-wide configurations as well?
Only if Gnome is run from /etc/inittab ;-)
Views
MediaWiki