[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    Re: Configuration database (was Re: Changed information for PR misc/278)
From:       Doug Rabson <dfr () nlsys ! demon ! co ! uk>
Date:       1995-03-31 20:32:28
[Download RAW message or body]

On Wed, 29 Mar 1995, Bakul Shah wrote:

> Jordan K. Hubbard says:
> >        We've always just barreled along and never even really given
> > the user the opportunity to easily deselect what might be an entirely
> > gratuitous set of daemons..
> 
> > Sigh..  I think it must be said: Most of /etc is a mess, it always has
> > been a mess and all I've ever seen other operating systems do with it
> > is make it a more *convoluted* mess (SVR4 - gag me!).  What's the
> > cool, killer paradigm shift we're missing here? :-)
> 
> In two words: configuration database!
> 
> Garrett Wollman sez:
> > As for configuration, I have had a dream occasionally that we could
> > have a completely integrated, text-file-based, configuration database
> > system with a different sort of naming concept.
> 
> I experimented with something like this in my Fortune
> Systems days [in '83!  Gawd, I feel old].  Here is how I
> would do this today:
> 
> 1.  Describe configuration using a consistent syntax.  Some
>     type of configuration objects may be hard wired but it
>     should be possible to add new object types using the
>     same syntax.  Allow storing this information in a number
>     of places.  See below for an example of such a syntax.
>     I have some code that handles a lot of it.
> 
> 2.  Provide a library to fetch/store whole objects or some
>     particular components.  Tools using this library should
>     ignore object components they do not understand.  This
>     makes the design open ended. [And allows you to store
>     stuff like font spec., image, audio file names etc. for
>     snazzy graphical interfaces].
> 
> 3.  init should be made to understand this syntax.  Based on
>     what devices have been found, its current state and user
>     specified options in the config. database (CDB), it
>     starts up various things (in some sequence specified in
>     the CDB).
> 
>     During bootstrap it should be possible to interactively
>     control this process for debugging purposes.
> 
>     Probably a minimal backup CDB should be built in init to
>     allow progress even when the root FS is totally messed
>     up.
> 
> 4.  It is inevitable that some scripts will have to be run
>     -- we should use /bin/sh where it is best suited -- but
>     a lot of tests can be removed from the rc scripts.
>     Where such configuration tests are needed, they should
>     use a command that queries the CDB.
> 
> 5.  Convert a number of disparate databases that are using
>     their own peculiar syntax into this format.  Converters
>     to old formats can be written to handle legacy
>     applications.
> 
> 6.  Have the kernel provide a device DB in a similar format
>     in the /kern filesystem or through some syscall.
>     [which reminds me, I'd also like to see the bootstrap
>     chatter from device drivers brought into some sort of
>     usable format and should only be printed optionally].
> 
> 7.  Tie-in the installed package database somehow.  For some
>     packages we need to run scripts at bootstrap time (or
>     while going multiuser) and they should use the same
>     configuration mechanism as the base system.
> 
> Comments?  Any interest, anyone?

Smells a lot like AIX ;-)

Seriously though, I quite liked AIX sys admin after I got used to that 
funny SMIT thing.  It had basically exactly this aproach of an OO 
database from which old-style configuration files were generated.

--
Doug Rabson				Mail:  dfr@nlsys.demon.co.uk
					Phone: +44 181 951 1891

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic