- Elektra-Initiative
-
Elektra (auch als Elektra-Initiative bezeichnet) ist ein Projekt mit dem Ziel, eine einheitliche Schnittstelle zu Konfigurationinformationen von GNU/Linux-Software zu schaffen. Die Konfigurationsinformationen sollen dabei in einem einheitlichen Format an zentralen Stellen gespeichert werden; Anwendungen können dann über das Elektra-API darauf zugreifen.
Inhaltsverzeichnis
Hintergrund
Programme, die für Linux-Systeme entwickelt werden, arbeiten zur Zeit nicht mit einem einheitlichen Konfigurationssystem, wie man es zum Beispiel von Windows (die Registrierungsdatenbank) kennt. Das wird hauptsächlich als Vorteil betrachtet, es ergeben sich dadurch jedoch auch Nachteile:
- Die Aufbau von Konfigurationsdateien ist nicht standardisiert und ist daher von Programm zu Programm unterschiedlich.
- Die Position von Konfigurationsdateien innerhalb des Systems ist nicht standardisiert und ist daher von System zu System unterschiedlich.
- Aus den beiden obigen Problemen ergibt sich automatisch, dass es keine einheitliche Schnittstelle (API) gibt, mit der Programme auf die Konfigurationsinformationen zugreifen können. Jedes Programm kennt in erster Linie nur die eigene Konfiguration; der Zugriff auf die Konfiguration anderer Programme ist nicht oder nur eingeschränkt möglich. Vor allem Änderungen, die von einem Programm in programmfremde Konfigurationen geschrieben werden könnten, müssen oftmals vom Benutzer selber durchgeführt werden.
Funktionalität von Elektra
Elektra ist in erster Linie eine Bibliothek, die den Anwendungen als Schnittstelle zu den Konfigurationsinformationen dient. Wo und in welchem Format diese Informationen letztendlich gespeichert werden, lässt sich durch Auswahl eines entsprechenden Back-ends beeinflussen. Damit die Elektra-Bibliothek möglichst vielseitig verwendbar ist, hat sie keine besonderen Abhängigkeiten. Auf die Verwendung eines Daemons wurde absichtlich verzichtet, um keinen "Single Point of Failure" zu schaffen.
Neben der Bibliothek bietet Elektra auch Tools (sowohl mit grafischer Oberfläche als auch als Kommandozeilentool), mit der Benutzer die Konfigurationsinformationen einsehen und bearbeiten können. Wird ein Backend verwendet, das auf Textdateien aufbaut, sind diese mit den gewohnten Tools wie vi, cat, grep, und so weiter einzusehen und zu bearbeiten. Zusätzlich bietet Elektra eine XML-Unterstützung, mit der alle gespeicherten Informationen exportiert und importiert werden können.
Backends
Backend Beschreibung Status Filesys Speichert Schlüssel als Ordner und Werte als Dateien im Dateisystem. Fully featured, well tested; searching for maintainer. INI Speichert Werte in INI-Dateien. Not fully featured; actively developed. BerkeleyDB Speichert Werte in einer Berkeley-Datenbank. Eine Datenbank enthält alle Einstellungen aus /system, die benutzerspezifischen Einstellungen werden in einzelnen Datenbanken in den jeweiligen Homeverzeichnissen gespeichert. Not tested; searching for maintainer. GConf ? ? Network ? Noch in der Planung. Uniconf ? ? Aufbau der Informationsstruktur
Schlüssel
Ähnlich wie die Windows-Registrierungsdatenbank verwendet Elektra eine Baumstruktur aus Schlüsseln, in der die Konfigurationsinformationen gespeichert werden. Schlüssel können, wie Ordner im Dateisystem, beliebig verschachtelt werden. Schlüssel, die mit einem Punkt . anfangen, sind inaktiv - sie können zwar über die Elektra-API ausgelesen werden, sollten aber von den Anwendungen ignoriert werden. Dies entspricht dem Auskommentieren in Textdateien.
Elektra Linux Windows Schlüssel /system Ordner /etc Schlüssel HKEY_LOCAL_MACHINE Schlüssel /user Ordner $HOME Schlüssel HKEY_CURRENT_USER Schlüssel user:Benutzername 1 Ordner /home/Benutzername 1 Datei C:\Dokumente und Einstellungen\Benutzername 1\ntuser.dat Schlüssel user:Benutzername 2 Ordner /home/Benutzername 2 Datei C:\Dokumente und Einstellungen\Benutzername 2\ntuser.dat Schlüssel user:Benutzername n Ordner /home/Benutzername n Datei C:\Dokumente und Einstellungen\Benutzername n\ntuser.dat Werte
Elektra unterstützt aus Einfachheitsgründen nur drei Datentypen, nämlich String (Text), Binary (Binärdaten, werden in Hexadezimalschreibweise ebenfalls als String gespeichert) und Links. Von der Verwendung von Binary wird jedoch abgeraten, da sie als „unmanageable blackboxes“[1] betrachtet werden. Elektra arbeitet intern mit UTF8, daher werden alle Strings vor der Speicherung in UTF8 konvertiert.
Weblinks
Referenzen
Wikimedia Foundation.