Registry-Pendant in Unix?

Liebe ExpertInnen,

unter Windows ist es üblich, Werte, die über die Laufzeit des Programms hinaus erhalten bleiben sollen, in der Registry abzulegen. Gibt es in der Unix-Welt dafür eine Entsprechung - und sei es in Form einer Konvention, an die sich alle halten? Oder strickt da jeder Programmierer seine eigene Init-Datenbank?

Gruß Ralf

Hallo Ralf,

unter Windows ist es üblich, Werte, die über die Laufzeit des
Programms hinaus erhalten bleiben sollen, in der Registry
abzulegen. Gibt es in der Unix-Welt dafür eine Entsprechung

Keine Ahnung, aber ich sage trotzdem mal was dazu :wink:
Ich denke, das solltest Du etwas genauer spezifizieren. Was für Werte sollen denn das sein, die man in der Registry ablegt, um sie dann später wieder auszulesen? Ich kann jetzt nur für mich sprechen, aber wenn ich sowas mal gebraucht habe (eher selten bis sehr selten), dann richtet sich das eben nach dem Verwendungszweck. Umfangreiche und strukturierte Daten in einer Datenbank (aber danach hast Du bestimmt nicht gefragt), wenn es etwas weniger sein darf ginge auch eine Textdatei, irgendwo dazwischen läge dann die Berkeley DB
http://de.wikipedia.org/wiki/Berkeley_DB
mit all ihren Verwandten (einfache Schlüssel-Wertpaare).
Skriptsprachen (Java, Ruby und sicher noch andere) bieten auch Methoden an, ihre Objekte zu serialisieren (Marshaling, wie es in Ruby heisst), d.h. in einer Datei abzulegen, um diese Datei mit den entsprechenden Methoden dann in einem anderen Skript wieder einlesen zu können.
Mehr fällt mir im Moment nicht ein, da müssen andere was beitragen.
Aber wie schon gesagt, meistens war das nicht notwendig (von tatsächlichen DB-Anwendungen mal abgesehen), weil irgendwelche Werte/Parameter mittels Pipe durchgereicht werden. Das erste Programm/Skript schreibt in die Standardausgabe, von der dann das nächste wieder einliest usw.

und sei es in Form einer Konvention, an die sich alle halten?

Na, alle ist sowieso ein großes Wort, aber Profis werden schon irgendwelche Richtlinien haben.

Oder strickt da jeder Programmierer seine eigene
Init-Datenbank?

Ich weiss jetzt nicht genau, was Du mit „Init-Datenbank“ meinst, aber beim Shell-Skripting gibt es systemweite Variable (environment variable), wie z.B. $HOME (=Home-Verzeichnis des Users), die man auch beliebig erweitern und benutzen kann. Mit

export CONF-FILE=/etc/foo/foo.conf

kann ich z.B. allen interessierten Skripten mitteilen, daß sich im Verzeichnis /etc/foo/ die Konfigurationsdatei foo.conf befindet. Solch einen Mechanismus würde ich schon als Standard ansehen, aber ob Du das meinst?

Viele Grüße
Marvin

Moin, Marvin,

Ich denke, das solltest Du etwas genauer spezifizieren.

es geht nicht um Daten, sondern um anwenderbezogene Einstellungen. Beispiele wären das letze geöffnete Dokument, damit der Anwender beim nächsten Programmstart sofort weiterarbeiten kann, oder (ganz blöd) seine bevorzugte Schriftfarbe.

Gruß Ralf

Hallo,

die meisten Programme systemweiten Programme haben ihre Einstellungen in /etc und speichern Daten in /var zwischen. Userspezifische Einstellungen werden meist im Home-Verzeichnis in versteckten Verzeichnissen gespeichert. Z.B. vim speichert seine Einstellungen in ~/.vim.

Viele Grüße

Hallo Ralf,

es geht nicht um Daten, sondern um anwenderbezogene
Einstellungen. Beispiele wären das letze geöffnete Dokument,
damit der Anwender beim nächsten Programmstart sofort
weiterarbeiten kann, oder (ganz blöd) seine bevorzugte
Schriftfarbe.

Ach so, jetzt weiss ich hoffentlich was Du meinst. Solche Sachen werden vom jeweiligen Windows-Manager und/oder der Desktop-Umgebung geregelt. Wie Patrick schon sagte, gibt es da im Home-Verzeichnis der User versteckte Dateien bzw. Verzeichnisse, in denen der Windowmanager solche Einstellungen ablegt. Da es aber gefühlt über 100 solche Windowsmanager gibt
http://xwinman.org/
http://en.wikipedia.org/wiki/Comparison_of_X_Window_…
http://de.wikipedia.org/wiki/Fenstermanager
kann man Details nur in Verbindung mit dem jeweiligen System erläutern.
Aber damit kommen Otto-Normalverbraucher-User wie ich programmiertechnisch kaum in Berührung. Wenn jemand das Bedürfnis haben sollte, einen ganz neuen Windows-Manager zu programmieren, dann wird er sich aber an gewisse Standards halten, schon weil die benutzten Programmbibliotheken dies erfordern.

Viele Grüße
Marvin

1 Like

Hallo,

ist durchaus programmspezifisch.

Grüße

godam

unter Windows ist es üblich, Werte, die über die Laufzeit des
Programms hinaus erhalten bleiben sollen, in der Registry
abzulegen. Gibt es in der Unix-Welt dafür eine Entsprechung -

Nein.

und sei es in Form einer Konvention, an die sich alle halten?
Oder strickt da jeder Programmierer seine eigene
Init-Datenbank?

Ja. Systemweit liegen die Einstellungen in /etc, das was der einzelne User speichern will, wird in den hidden files im Home-Dir abgespeichert. Es gibt kein einheitliches Format dafür.

Stefan

Hallo Ralf,

unter Windows ist es üblich, Werte, die über die Laufzeit des
Programms hinaus erhalten bleiben sollen, in der Registry
abzulegen. Gibt es in der Unix-Welt dafür eine Entsprechung

Mir ist eingefallen, daß es zumindest ein Projekt dafür gibt, „Elektra“
http://www.golem.de/0409/33343.html
http://www.libelektra.org/Overview_of_the_Elektra_In…
Diese Seiten sehen so aus, als ob es nicht sehr lebendig sei, aber zumindest 2010 wurde es auf dem Linux-Tag noch vorgestellt
http://www.linuxtage.at/slides/glt10-elektra.pdf
und in verschiedenen Linux-Distributionen kann wer will, es auch installieren. Aber grosse Zustimmung oder gar Verbreitung scheint Elektra nicht gefunden zu haben.

Viele Grüße
Marvin