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)
}
}
}