jueves, 29 de septiembre de 2011

IV secuencia de encendido y apagado en UNIX

La ultima entrega de secuencias de arranque de los principales sistemas operativos, acabamos con el mas antiguo de ellos y PADRE de todos.
Modos de funcionamiento



Ken Thompson (izquierda) y Dennis Ritchie (derecha), creadores de UNIX

Microsoft usando Unix Windows systems finales de 1os 80











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 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.




Comandos básicos del sistema operativo Unix

Este pretende ser un pequeño resumen de comandos que se utilizan en Unix:
-        Comandos de directorios:
ls - lista todos los archivos de un directorio, usando el switch -al lista los permisos y fecha de última actualización de los archivos.
cd (cd_nombre_directorio) - cambia de directorio. Por ejemplo: cd public llevara al usuario al directorio public
• cd.. - lleva al usuario al directorio padre (un nivel más arriba)
cd $home - lleva al usuario al directorio raíz sin importar donde este el mismo
mkdir - crea un nuevo directorio, por ejemplo: mkdir nombre_directorio
• pwd - muestra el directorio actual de trabajo
• rmdir - permite borrar un directorio
mv (mv archivo o directorio) - mueve archivos o subdirectorios de un directorio a otro, o cambia el nombre del archivo o directorio
• chmod (chmod modo archivo) - utilizado para cambiar la protección o permisos de accesos a los archivos. Lectura (r), Escritura (w) y Ejecución (x).
Permisos de (l): Usuario: permisos que tiene con respecto a un archivo o directorio de su propiedad. Grupo: permisos que tiene el archivo y/o directorio para los usuarios que pertenecen al mismo grupo. Otros: permisos que tienen otros usuarios en el archivo o directorio.
Para modificar los permisos del usuario, grupo y otros se utiliza "+" para añadir permiso o "-" para no dar permiso, indicando el tipo de permiso w, r, x. Además, puede especificarse de una forma numérica, donde cada letra correspondiente a una parte del permiso (r,w,x) puede estar activada o no (en 1 ó 0) para formar un número binario, el cual es convertido luego a número decimal.
• cp (cp nom_archivo o directorio) - copia archivos en el directorio indicado.
• rm (rm_nombre_archivo) - remueve o elimina un archivo. Una vez eliminado el archivo no puede ser recuperado.
• rmdir (rmdir_nombre_directorio) - elimina el directorio indicado, el cual debe estar vacio.
• lpr (lpr_lista de requerimientos) - imprime un archivo en la impresora predeterminada.
• wc (wc_archivo) - cuenta los caracteres, líneas y palabras del archivo de texto.
• file (file_archivo) - determina el tipo del o de los archivo(s) indicado(s). Ejemplo: texto, programa, grafico, etc.
• find (find_directorio o archivo condición) - busca los archivos que satisfacen la condición en el directorio indicado.
• tar (tar -[arg] archivo.tar) - comprime archivos y directorios utilizando la extensión .tar
• gzip (gzip_archivo) - comprime solo archivos utilizando la extensión .gz
-          Comandos para visualizar y modificar archivos:
• more, less, cat - permite visualizar un archivo sin realizar modificaciones.
• more (more_nom_archivo) - Muestra el archivo en pantalla. Presionando "enter", se visualiza línea por línea. Presionando la barra espaciadora, pantalla por pantalla. Si se desea salir, se presiona q.
• less (less_nom_archivo) - muestra el archivo de la misma forma que more, pero se puede regresar a la página anterior presionando las teclas "u" o "b".
• cat (cat_nom_archivo) - muestra el contenido del archivo en pantalla en forma continua, el prompt retornará una vez mostrado el contenido de todo el archivo. Permite concatenar uno o más archivos de texto: cat arch [arch2...]
• diff (diff_archivo_1_archivo_2) - permite la comparación de 2 archivos línea por línea. Es utilizado para comparar archivos de datos.
• vi (vi_nom_archivo) - permite editar un archivo en el directorio actual de trabajo. Es uno de los editores de texto más usado en UNIX.
• view (view_nom_archivo) - es similar al vi, solo que no permite guardar modificaciones en el archivo, es para leer el contenido del archivo.
-          Comandos para obtener información:
• man - ofrece información acerca de los comandos o tópicos del sistema UNIX, así como de los programas y librerías existentes.
• whoami - escribe el nombre del usuario en pantalla.
• who,w - lista quienes están conectado al servidor, con nombre de usuario, tiempo de conexión y el computador remoto desde donde se conecta.
• finger - permite encontrar información acerca de un usuario.
• date - muestra el día, fecha, hora (con minutos y segundos) y año.
• mail - coloca los correos en modo mail. El prompt es el signo ?. La tecla "enter" pasa al siguiente correo. Presionando h y luego "enter", lista los correos que tiene el buzón. La tecla d y luego "enter", elimina el correo que esté mostrando en pantalla. Para salir se utilizan las teclas q y "enter".
-          Comandos de ayuda de otros comandos:
• clear - limpia la pantalla, y coloca el prompt al principio de la misma.
• history - lista los más recientes comandos que se han introducido en la ventana. Es utilizado para repetir comandos ya tipiados, con el comando !.
• ! - repite el último comando colocando la letra con la que comienza el comando o su número de history.
-        Comandos de acceso y uso de maquinas remotas:
• ftp - protocolo de transferencia de archivos, permite transferir archivos de y para computadores remotos.
rlogin - conecta un host local con un host remoto.
• ssh - "Secure Shell Client", es un programa para conectarse en una máquina remota y ejecutar programas en ella. Utilizado para reemplazar el rlogin y rsh, además provee mayor seguridad en la comunicación entre dos hosts. El ssh se conecta al host indicado, donde el usuario debe ingresar su identificación (login y password) en la máquina remota, la cual realiza una autentificación del usuario.
• telnet - conecta al host local con un host remoto, usando la interfaz TELNET.
-          Comandos para chequear trabajos y procesos antes de salir:
• ps - muestra información acerca de los procesos activos. Sin opciones, muestra el número del proceso, terminal, tiempo acumulado de ejecución y el nombre del comando. De otra manera, la información de salida es controlada por las opciones indicadas.
• kill - elimina los procesos que esté realizando el sistema.
• jobs - lista los trabajos y sus números de identificación. Si el prompt retorna sin ninguna información, es que no hay ningún trabajo corriendo. Un trabajo puede ser creado por la letra & antes de un comando, que lo hace ejecutable
• exit - cierra las ventanas o las conexiones remotas establecidas o las conchas abiertas. Antes de salir es recomendable eliminar todos los trabajos o procesos de la estación de trabajo.

No hay comentarios:

Publicar un comentario

Deja tus opiniones y/o comentarios, nos sirven para mejorar nuestro blog, gracias