config management on a PDA
I am interested in configuration from a point of view of the Linux PDA. There is a real need for lightweight, centralised config management. Some of the requirements are:
* low memory usage
* one interface to the config, not duplicated effort (ie. one option setting library vs. every app having a custom written options page)
* persistence of options (obvious)
* buffer changes to prevent continual writes to disk/flash
* ability for apps to behave more like daemons in restarting and re-reading config files on the fly.
The best thing about doing this on a PDA is that it is a limited platform, so it is a feasible target to rewrite the config interface to every app and daemon on the platform.
There is a good page on config storage here:
I used to have a link to a linux registry project that was widely dissed, I think for the wrong reasons. I hope they didn't give up. IMHO there are great gains in taking the responsibility for config file parsing, editing, restarting and so on away from the application programmer.
Some other comments on the article:
* application programmers should be able to 'layer' their option changing interface over the standard - eg. to provide a visual representation of page margins, line spacing, paragraph positioning etc. instead of the underlying numbers.
* internationalisation should be a separate issue. Config values are code. Static language dependent prompts should be internationalisable. But if a french guy wants to rename his 'Inbox' it is a matter of personal preference (config editing) not internationalisation. All we need is the ability to set default config settings depending on language preference.
* you do not mention management of config between different versions of applications. Imagine being able to: back up Abiword settings; update to latest version; revert to previous version (and settings)... all with minimal effort on the part of the application programmer.
* the trouble with maintaining a master copy in existing files is the potential for damage by a user.
* no mention of the ability to store the config centrally yet present it as a number of text files... think /proc
And I wish people would stop knee-jerking and shouting XML. That is great for interchange between systems but has little to offer as a config file repository. All the man-readablity of a binary database and all the bloat of text files. IMHO we need text files or a binary registry. Imagine a registry coded with unix values at heart, presented as a filesystem of text files: /conf a bit like /proc... I dream on!