head 1.5; access; symbols RELENG_4_11_0_RELEASE:1.4 RELENG_4_11:1.4.0.26 RELENG_4_11_BP:1.4 RELENG_4_10_0_RELEASE:1.4 RELENG_4_10:1.4.0.24 RELENG_4_10_BP:1.4 RELENG_5_2_1_RELEASE:1.4 RELENG_5_2_0_RELEASE:1.4 RELENG_5_2:1.4.0.22 RELENG_5_2_BP:1.4 RELENG_4_9_0_RELEASE:1.4 RELENG_4_9:1.4.0.20 RELENG_4_9_BP:1.4 RELENG_5_1_0_RELEASE:1.4 RELENG_5_1:1.4.0.18 RELENG_5_1_BP:1.4 RELENG_4_8_0_RELEASE:1.4 RELENG_4_8:1.4.0.16 RELENG_4_8_BP:1.4 RELENG_5_0_0_RELEASE:1.4 RELENG_5_0:1.4.0.14 RELENG_5_0_BP:1.4 RELENG_4_7_0_RELEASE:1.4 RELENG_4_7:1.4.0.12 RELENG_4_7_BP:1.4 RELENG_4_6_2_RELEASE:1.4 RELENG_4_6_1_RELEASE:1.4 RELENG_4_6_0_RELEASE:1.4 RELENG_4_6:1.4.0.10 RELENG_4_6_BP:1.4 RELENG_4_5_0_RELEASE:1.4 RELENG_4_5:1.4.0.8 RELENG_4_5_BP:1.4 RELENG_4_4_0_RELEASE:1.4 RELENG_4_4:1.4.0.6 RELENG_4_4_BP:1.4 RELENG_4_3_0_RELEASE:1.4 RELENG_4_3:1.4.0.4 RELENG_4_3_BP:1.4 RELENG_4_2_0_RELEASE:1.4 RELENG_4_1_1_RELEASE:1.4 PRE_SMPNG:1.4 RELENG_4_1_0_RELEASE:1.4 RELENG_3_5_0_RELEASE:1.3.2.1 RELENG_4_0_0_RELEASE:1.4 RELENG_4:1.4.0.2 RELENG_4_BP:1.4 RELENG_3_4_0_RELEASE:1.3.2.1 RELENG_3_3_0_RELEASE:1.3.2.1 RELENG_3_2_PAO:1.3.0.4 RELENG_3_2_PAO_BP:1.3 RELENG_3_2_0_RELEASE:1.3 RELENG_3_1_0_RELEASE:1.3 RELENG_3:1.3.0.2 RELENG_3_BP:1.3; locks; strict; comment @# @; 1.5 date 2004.03.24.08.01.14; author luigi; state dead; branches; next 1.4; 1.4 date 99.08.28.01.33.24; author peter; state Exp; branches 1.4.2.1; next 1.3; 1.3 date 98.11.25.14.59.28; author abial; state Exp; branches 1.3.2.1; next 1.2; 1.2 date 98.11.25.11.08.54; author abial; state Exp; branches; next 1.1; 1.1 date 98.11.01.19.52.47; author abial; state Exp; branches; next ; 1.4.2.1 date 2012.11.17.07.24.21; author svnexp; state Exp; branches; next ; 1.3.2.1 date 99.08.29.15.52.43; author peter; state Exp; branches; next ; desc @@ 1.5 log @remove stale documentation @ text @

Unified Configuration Interface Project

The idea behind this project is to completely replace currently used configuration approach, which is based on several shell scripts, and to provide ability to change system behaviour basing on set of well-defined parameters' hierarchy. One of the goals is also to provide an object oriented model of the OS management and structure, instead of currently used (inconsistent) procedural model of system/service startup/shutdown.

This project involves such issues as:

This is work in progress - I'm aware that many pieces are either completely missing or misplaced. Please send any comments and changes you seem appropriate either directly to me, or better to freebsd-small@@freebsd.org. I'll gladly welcome anyone who can help with design and/or implementation.


Unified Configuration Interface


Here is my initial proposal for the User Interface hierarchy:


Please send your comments to Andrzej Bialecki

Last modified: @@DATE@@

@ 1.4 log @$Id$ -> $FreeBSD$ @ text @d2 1 a2 1 @ 1.4.2.1 log @Switch importer @ text @d2 1 a2 1 @ 1.3 log @Fix errors in last commit. @ text @d2 1 a2 1 @ 1.3.2.1 log @$Id$ -> $FreeBSD$ @ text @d2 1 a2 1 @ 1.2 log @New revision of UCI project document. Comments are welcome... @ text @d2 1 a2 1 d471 1 d485 1 d955 1 a955 1 Sat Oct 24 19:33:45 CEST 1998 @ 1.1 log @Added info on Unified Configuration Interface Project. Several people contributed their ideas to this document, among them Terry Lambert and Bryan Mann, both @@whistle.com. Thanks! @ text @d2 1 a2 1 d7 1 a7 8

Here's a preliminary attempt to organize all (well, most) configuration tasks and parameters of PicoBSD system in hierarchy of categories.

This forms a sort of framework, basing on which one can implement consistent configuration file(s), and configuration utilities.

However, the idea behind this project is to completely replace currently d10 3 a12 2 parameters' hierarchy. This approach makes it relatively easy to write consistent user interfaces, either command-line or with GUI front-ends.

d14 17 a30 3

(BTW. this effort is called UCIP for short, which is pronounced "You See IP" and relates to intuitive way you can configure your IP services with this approach.. :-))

d46 1 a46 1

Let's first introduce distinction between the following terms: d52 1 a52 1 mechanism representing mutual dependencies) - the way it's stored is also d61 1 a61 1 configuration agent - an entity performing actual configuration d63 2 a64 2 dealing with the system resources, and from yet another dealing either directly with the user (thus acting as a user interface), d67 8 d104 2 a105 2 process (or, a set of global system parameters, in which case the configuration agent is the service itself).

d107 1 a107 1

Each object stored in management base can be characterized by d126 4 a129 1 list of dependencies on other objects' states, d140 3 a142 1 arbiter between conflicting parties (or signal an error).

d150 2 a151 1 INITthe subsystem is initializing itself d165 2 a166 1 performing its function) d236 14 d269 8 a276 1 parameter) d283 21 a303 4

Ideally, the configuration agent will be equipped with routines to serialize this data into human-readable form, so that it's easily stored, backed up, and repaired in case of inconsistencies.

d329 4 a332 1 protocol and a proxy agent running on other machine.

d340 1 a340 1

All operations performed by configuration agent should be transactional, d353 1 a353 1

A few notes on possible implementation of configuration agent:

d373 5 d381 1 a381 1 from config agent, at the same time registering with it to receive d386 1 a386 1 configuration agent acts as meeting point for all producers and consumers d389 1 a389 1 etc.. Basing on this table, it passes appropriate information to d393 1 a393 1 user interface is then just one of clients of config agent, albeit possessing d397 1 a397 1 one of important tasks of configuration agent, in case given d401 1 a401 1 subsystems. d407 2 a408 2 object. This eliminates (or drastically minimizes) the role of configuration agent which is a single point of failure in centralized case.

d414 1 a414 2

Here is my initial proposal, which perhaps can be used as a model for user interface hierarchy, if not for the management base itself.

d456 1 a456 3 Loadable modules
Optional hardware, services and protocol modules management. d459 16 a474 1 (Enumeration of available loadable modules) d477 16 a492 1 Load / unload / status d508 5 d514 2 @