Dispositivos para gestores del sistema BSD 4.3

A continuación se explican los dispositivos para los gestores del sistema BSD 4.3.

Una aplicación sólo puede acceder a un dispositivo de un sistema 4.3 BSD cuando:

  • El dispositivo está instalado físicamente y en funcionamiento.
  • El controlador para el dispositivo está en el kernel.
  • Los archivos especiales de dispositivo para el dispositivo existen en el directorio /dev.

Un dispositivo en AIX® es accesible a una aplicación sólo cuando:

  • El dispositivo está instalado físicamente y en funcionamiento.
  • El controlador para el dispositivo está en el kernel o en una extensión de kernel cargada.
  • Los archivos especiales de dispositivo para el dispositivo existen en el directorio /dev .
  • La base de datos de objetos del directorio /etc/objrepos contiene entradas para el dispositivo que coinciden con la configuración física.

Los programas específicos del dispositivo denominados métodos, que se encuentran en el directorio /etc/methods, mantienen la base de datos de objetos. Los métodos los invoca el Gestor de configuración (al que se accede mediante el mandato cfgmgr ) y otros mandatos.

Si un programa de aplicación ya no puede acceder a un dispositivo, puede significar que el hardware es anómalo o puede significar que la base de datos de configuración del directorio /etc/objrepos está dañada.

El mandato cfgmgr procesa la base de datos de configuración del directorio /etc/objrepos y se procesa por el mandato cfgmgr al arrancar (Gestor de configuración).

El pseudocódigo siguiente muestra la lógica del Gestor de configuración:

/* Main */
While there are rules in the Config_Rules database
        {
        Get the next rule and execute it
        Capture stdout from the last execution
        Parse_Output(stdout)
        }
/* Parse Output Routine */
/* stdout will contain a list of devices found */
Parse_OutPut(stdout)
        {
        While there are devices left in the list
                {
                Lookup the device in the database
                if (!defined)
                        Get define method from database and execute
                if (! configured)
                        {
                        Get config method from database and execute
                        Parse_Output(stdout)
                         }
                }
        }