Encendido y apagado de UNIX

Anuncio
Secuencia de encendido y apagado del sistema
Modos de funcionamiento
En UNIX SVR4 existen varios modos o niveles de ejecución, cada uno de los cuales tiene unas características
y funciones específicas. A continuación se nombran estos niveles de ejecución:
Nivel 0 Estado de shutdown (apagado del sistema).
Nivel 1 Estado de administración.
Nivel 2 Modo monousuario.
Nivel 3 Estado de red distribuida.
Nivel 4 Usuario definible (no usado).
Nivel 5 Estado de diagnósticos.
Nivel 6 Estado de rearranque y/o shutdown.
Secuencia de encendido:
Para iniciar el sistema desde un estado inactivo, se realiza una secuencia de pasos conocido como bootstrap.
El procedimiento de arranque varía según el tipo de máquina y nivel de ejecución pero el objetivo es el mismo
en todos ellos: obtener una copia del sistema operativo en la memoria principal e iniciar su ejecución.
Generalmente, cuando se enciende el ordenador, se instruye a la máquina a cargar un programa de bootstrap
desde el microcódigo. El procedimiento de bootstrap lee el bloque 0 (boot block) del sistema de archivos
principal y lo carga en memoria. El programa contenido en el boot block carga el kernel desde el sistema de
archivos y después transfiere el control a la dirección de inicio del núcleo, para que el núcleo comience a
ejecutarse.
El kernel inicializa sus estructuras de datos internas, monta el sistema de archivos principal y prepara el
entorno para el proceso 0. Una vez preparado el entorno, el sistema comienza a ejecutarse como el proceso 0;
luego se bifurca (se desdobla con la llamada al sistema fork) creando un nuevo proceso, el proceso 1. El
proceso 0 se convierte en el proceso swapper (intercambiador) que será el encargado de manejar la asignación
de espacio de direccionamiento entre la memoria principal y los dispositivos de swap. El proceso 0 o proceso
swapper se ejecutará en modo kernel.
Por otra parte, el proceso 1 realiza varias inicializaciones y pasa a ejecutarse en modo usuario. Luego ejecuta
el programa /usr/etc/init. Al proceso 1 se le llama normalmente como el proceso init porque es el responsable
de la inicialización de nuevos procesos; o dicho de otra forma, todos los procesos en el sistema, excepto el
proceso swapper, descienden del proceso init.
El proceso init es un proceso dispatcher (despachador) y produce, entre otros, los procesos para que los
1
usuarios puedan conectarse al sistema. Normalmente ejecuta la secuencia de órdenes del script /etc/rc.boot
para comprobar los sistemas de archivos y posteriormente ejecuta las órdenes del etc/rc y /etc/rc.local para
comenzar las operaciones de multiusuario; en otro caso, se comenzaría en modo monousuario.
En operaciones de multiusuario, el papel de init es crear un proceso por cada puerto del terminal en el cuál un
usuario pueda conectarse. Para iniciar estas operaciones, lee el archivo /etc/ttytab y ejecuta, normalmente, la
orden /usr/etc/getty por cada terminal especificado en el archivo que tenga el campo de status a on. getty abre
e inicializa la línea del terminal y ejecuta la orden login para permitir la conexión de usuarios. Básicamente, la
orden login actualiza los archivos de accounting, imprime el mensaje del día, informa de la existencia de
algún correo y muestra la fecha de la última conexión. Por último, login inicia un intérprete de órdenes
basándose en las especificaciones encontradas en el archivo /etc/passwd.
Cuando se abandona el shell, el proceso init elimina la entrada apropiada del archivo /etc/utmp, el cuál
registra los usuarios actuales, y realiza una entrada en el archivo /etc/wtmp, el cuál contiene un histórico de las
conexiones y desconexiones.
Los procesos en un sistema UNIX pueden ser procesos de usuario, procesos daemon o procesos del kernel.
Los procesos de usuarios, la mayoría, se asocian con usuarios de un terminal. Los procesos daemon no se
asocian con ningún usuario pero hace funciones del sistema, tales como la administración y control de redes,
ejecución de actividades dependientes del tiempo, spooling de impresión, etc... Los procesos daemon se
ejecutan en modo usuario.
Los procesos del kernel se ejecutan sólo en modo kernel. Son creados por el proceso 0 antes de que éste se
convierta en el proceso swapper. Los procesos del kernel son similares a los procesos daemon (proporcionan
servicios del sistema) pero ellos tienen un mayor control sobre las prioridades de ejecución ya que su código
es parte del kernel. Ellos pueden acceder a algoritmos del kernel y a estructuras de datos directamente sin
tener que usar llamadas al sistema; por ello son extremadamente potentes. Sin embargo no son tan flexibles
como los procesos daemon, porque el núcleo del sistema operativo debe ser recompilado para poder
cambiarlos.
Apagado del sistema
Antes de efectuar el apagado físico del sistema es necesario efectuar el procedimiento shutdown, encargado de
efectuar la parada del sistema en una secuencia lógica que evite la corrupción de los sistemas de archivos y la
posible pérdida de información.
La ejecución de este procedimiento puede variar ligeramente dependiendo de que el sistema esté en modo
multiusuario o monousuario. En el primer caso es conveniente comprobar si hay algún usuario conectado al
sistema. Si hay alguien trabajando deberá notificársele la situación y concederle un tiempo para que pueda
cerrar sus archivos y hacer logoff. A continuación puede lanzarse el proceso shutdown.
Para que se pueda ejecutar el proceso shutdown, es necesario tener privilegios de administrador y estar
posicionado en el directorio raíz. Una vez ejecutado el proceso, aparecerá un mensaje indicando que ya se
puede desconectar la máquina.
2
Descargar