Règles de configuration (Config_Rules) Classe d'objets

Descriptif

La classe d'objets Règles de configuration (Config_Rules) contient les règles de configuration utilisées par le gestionnaire de configuration. Le gestionnaire de configuration s'exécute en deux phases lors de l'amorçage du système. La première phase est responsable de la configuration des unités de base de sorte que l'unité racine réelle puisse être configurée et prête pour l'opération. La seconde phase configure le reste des unités du système une fois que le système de fichiers racine est en cours d'exécution. Le gestionnaire de configuration peut également être appelé lors de l'exécution. La routine du gestionnaire de configuration est guidée par les règles de la classe d'objets Config_Rules.

La classe d'objets Config_Rules est préchargée avec des règles de configuration prédéfinies lors de la livraison du système. Il existe trois types de règles: phase 1, phase 2 et service de phase 2. Vous pouvez utiliser les commandes ODM pour ajouter, supprimer, modifier et afficher des règles de configuration nouvelles ou existantes dans cette classe d'objets afin de personnaliser le comportement du gestionnaire de configuration. Cependant, toutes les modifications apportées à une règle de phase 1 doivent être écrites dans le système de fichiers d'amorçage pour être efficaces. Cette commande est effectuée à l'aide de la commande Botte bosboot .

Toutes les unités logiques et physiques du système sont organisées en clusters de structures arborescenes appelées noeuds. Pour plus d'informations sur les noeuds ou les structures d'arborescence, voir "Présentation de Device Configuration Manager" Dans Concepts de programmation de prise en charge des extensions et des périphériques du noyau. Les règles de la classe d'objets Config_Rules définissent les noms de programme exécutables par le gestionnaire de configuration. Généralement, ces programmes sont les programmes de configuration pour le haut des noeuds. Lorsque ces programmes sont appelés, les noms des périphériques de niveau inférieur suivants qui doivent être configurés sont renvoyés dans la sortie standard.

Le gestionnaire de configuration configure les unités de niveau inférieur suivantes en appelant Configurer la méthode pour ces unités. A leur tour, ces unités renvoient une liste de noms d'unité à configurer. Ce processus est répété jusqu'à ce qu'aucun autre nom d'unité ne soit renvoyé. Toutes les unités du même noeud sont configurées dans un ordre transversal.

La deuxième phase de l'amorçage du système nécessite deux ensembles de règles: la phase 2 et le service. La position de la clé sur le panneau frontal détermine l'ensemble de règles utilisé. Les règles de service sont utilisées lorsque la clé est en position de maintenance. Si la clé est dans une autre position, les règles de la phase 2 sont utilisées. Différents types de règles sont indiqués dans le descripteur de phase du gestionnaire de configuration de cette classe d'objets.

Chaque règle de configuration comporte un masque d'amorçage associé. Si ce masque a une valeur différente de zéro, il représente le type d'amorçage auquel la règle s'applique. Par exemple, si le masque a une valeur DISK_BOOT , la règle s'applique aux démarrages système où les disques sont des unités de base. Le type de masque d'amorçage est défini dans le fichier /usr/include/sys/cfgdb.h .

Descripteurs

La classe d'objets Règles de configuration contient les descripteurs suivants:

Type ODM Nom du descripteur Descriptif Statut du descripteur
ODM_SHORT phase Phase du gestionnaire de configuration Obligatoire
ODM_SHORT Séq Valeur de séquence Obligatoire
ODM_LONG Masque d'amorçage Type de démarrage Obligatoire
ODM_VCHAR Val_règle [ RULESIZE ] Valeur de règle Obligatoire

Ces descripteurs sont décrits comme suit:

Descripteur Descriptif
Phase du gestionnaire de configuration Ce descripteur indique la phase qu'une règle doit être exécutée en phase 1, phase 2 ou service de phase 2.
1 seul
Indique que la règle doit être exécutée dans la phase 1.
2
Indique que la règle doit être exécutée dans la phase 2.
3
Indique que la règle doit être exécutée en mode service de phase 2.
Valeur de séquence En ce qui a trait aux autres règles de cette phase,seqNombre indique l'ordre dans lequel exécuter ce programme. En général, laseq, plus la priorité est élevée. Par exemple, une règle avec unseqNuméro 2 est exécuté avant une règle avec unseqNombre de 5. Il existe une exception à cette règle: la valeur 0 indique une condition DONT_CARE et toute règle avec unseqNuméro de 0 est exécuté en dernier.
Type de démarrage Si la commandeboot_maskA une valeur différente de zéro, elle représente le type d'amorçage auquel la règle s'applique. Si l'indicateur -m est utilisé lors de l'appel de la commande Cfgmgr , la commande Cfgmgr applique le masque spécifié à cette zone pour déterminer s'il faut exécuter la règle. Par défaut, la commande Cfgmgr exécute toujours une règle pour laquelleboot_maskA une valeur 0.
Valeur de règle Il s'agit du nom de chemin complet du programme à appeler. Le descripteur de valeur de règle peut également contenir toutes les options qui doivent être transmises à ce programme. Cependant, les options doivent suivre le nom du programme, car toute la chaîne sera exécutée comme si elle avait été tapée sur la ligne de commande.
Remarque: Il existe une règle pour chaque programme à exécuter. Si plusieurs programmes sont nécessaires, plusieurs règles doivent être ajoutées.
Rule Values

Phase   Sequence   Type of boot   Rule Value

1         1            0             /usr/lib/methods/defsys
1         10           0x0001        /usr/lib/methods/deflvm
2         1            0             /usr/lib/methods/defsys
2         5            0             /usr/lib/methods/ptynode
2         10           0             /usr/lib/methods/starthft
2         15           0             /usr/lib/methods/starttty
2         20           0x0010        /usr/lib/methods/rc.net
3         1            0             /usr/lib/methods/defsys
3         5            0             /usr/lib/methods/ptynode
3         10           0             /usr/lib/methods/starthft
3         15           0             /usr/lib/methods/starttty