Director de sesión en el aula - GNU/Linux & UNIX

Profesor Alejandro de la Torre


Secuencia de inicio – Nivel de ejecución - Gestión de servicios - Gestión de procesos.


Documentos de interés

Documentos de lectura obligatoria

Linux Essentials - Procesos, servicios y log del sistema

Para tratar en el aula

1.- Conceptos

Lenguaje máquina o de bajo nivel.

El lenguaje que entiende el procesador de un sistema informático, con este lenguaje se consigue que el procesador realice una tarea.
Este lenguaje es ininteligible para el ser humano.

Lenguaje de programación o de alto nivel.

El lenguaje que utilizan los programadores (personas) para definir el algoritmo que realiza una tarea en el contexto de un sistema informático (p.e: imprimir el calendario de un año dado).

Ejemplo de lenguajes de programación: C++, Python, Java, COBOL.

Programa fuente.

Archivo de texto que contiene las instrucciones escritas en un lenguaje de programación para realizar una tarea.

Compilar.

La acción de traducir a lenguaje máquina un programa fuente. Dicha acción la ejecuta un programa denominado compilador.

Programa ejecutable.

Archivo creado a partir de la compilación de un programa fuente.
Se entrega directamente al procesador para realizar la tarea que encierra.

Modos de ejecución de un programa ejecutable (clasificación a los efectos de este director).

Aislada: Hace su tarea sin relacionarse con otros programas (p.e. ncal).
Servidor o Servicio: Se mantienen en memoria permamentemente a la espera de que otros programas ejecutables le soliciten la realización de la tarera que tiene encomendada.(p.e. sshd)
Cliente: En este modo de ejecución, el programa solicita a un programa servidor que realice su tarea para él, entregándole el resultado del trabajo si fuera necesario.(p.e. ssh)

Programa interpretado.

Es un programa fuente que no necesita ser compilado para que el procesador realice la tarea que encierra.

Intérprete.

Programa ejecutable que entiende el lenguaje en el que está escrito un programa interpretado, traduce en tiempo real ese lenguaje a lenguaje máquina y hace que el procesador realice la tarea.

Shell script (otros nombres: guión de shell, script).

Programa interpretado escrito en lenguaje de shell, es decir, la conjugación de líneas de ordenes de la shell y estructuras de control que permiten controlar el flujo de dichas órdenes.

Proceso/Trabajo/Job.

Objeto gestionado por el sistema informático, dotado de recursos y atributos y en cuyo seno se ejecutan los programas ejecutables, solos o en secuencia. Un programa ejecutable no se inserta en memoria principal como tal, debe estar embutido en un proceso.

Atributos de un proceso (los más relevantes).

2.- [CUES.] Gestión de procesos. Este enlace te lleva a un documento en español que explica muy clarito lo que son los procesos así como una breve explicación de los comandos y herramientas relacionados con ellos y que aparecen en este apartado.

Procesos en el ámbito del sistema: Comandos y herramientas (para un conocimiento detallado de cada uno consultar las manpages)

Monitorización de procesos.

top, ps, lsof, fuser

Interacción (envío de señales).

kill, pkill, killall

Procesos en el ámbito de la shell.  Comandos y herramientas (para un conocimiento detallado consultar [CUES] este apartado de la manpage de la shell bash).

Monitorización e intercacción

jobs, fg, bg, ^Z, ^C, %n, kill


3.-
[CUES.] Secuencia de arranque de un sistema GNU/Linux. Este enlace apunta a la documentaión oficial de la distro archlinux. Cuenta con precisión todo lo que ocurre -o puede ocurrir- desde que se presiona el botón de poweron (o la invocación de arranque de una VM) hasta que se posiciona el sistema en el estado de usabilidad que conocemos (incluido el entorno gráfico si está instalado). Entre los apartados que van apareciendo en este documento, en el mismo orden que se producen los eventos que describen, encontramos el titulado "Proceso init" al que se le dedican sólo un par de líneas pues el objeto del documento es sólo ubicar en la secuencia temporal del arranque a esta pieza. Por nuestra parte le dedicaremos el resto del presente director ya que es la batuta con la que el administrador va a dirigir la sinfonía de servicios del sistema una vez que tomamos el control del mismo.

Resumen de la secuencia:

1.- BIOS/UEFI.

2.- GRUB/extlinux/LiLo u otro.
3.- kernel.
4.- systemd
systemd es el primer programa que se ejecuta después de que el kernel ha llegado al estado de estabiliad en la RAM. ¡OJO!, vamos a trabajar con systemd pero debe quedar claro que NO ES EL ÚNICO "init process", sí es el más extendido y estandarizado actualmente. Antes de él, init era el hegemónico, tanto es así, que existen paquetes (p.e. initscripts en Debian) que añaden un interface para manejar systemd como si de init de tratara.

systemd Lleva al sistema al estado de usabilidad que conocemos como usuarios y/o administradores. Simplificando mucho hace lo siguiente:
4.-systemd (Gestión de servicios) (link a la página oficial del constructor, se explica brevemente qué es y porporciona multitud de enlaces para administradores de sistemas y desarrolladores)

    Para conocer, entender, y lo más importante, manejar esta vital pieza de GNU/Linux se proporcionan los enlaces de más abajo, como se puede observar, dos de ellos pertenecen a la documentación de Fedora pero las referencias específicas a esta distribución concreta no empañan el caracter genérico de lo que expresan. Se exhorta al alumno a que lea profunda y comprensivamente toda la información que encierran.

Trabajando con Systemd


5.- Ámbito de Infraestructura (Monitorización de redes)

Instalar Nagios para veririfcar las funcionalidades del segmento Free de este producto



Amplio repositorio de documentos para estudiantes y profesionales de TI