|
Director de sesión en el aula - GNU/Linux & UNIXProfesor Alejandro de la Torre |
|
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, sólos 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).
Niveles de ejecución de un sistema Unix/GNU-Linux. (0 1 2 3 4 5 6).
Dependiendo del runlevel
solicitado el sistema se para (0),
se reinicia (6) o arranca los servicios asignado a cada nivel (mirar el
apartado correspondiente de init):
2.- Secuencia de arranque (detalle de la secuencia con sysvinit / detalle de la secuencia de BSD).
3.- init: archivos y directorios relevantes (ejemplos de la sesión con sysresccd).
Utilidades para insertar servicios
en un escenario init
Para conocer y entender este nuevo modelo (muy similar al anterior en cuanto a la operatoria) 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 contenidas en ellos 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, pero no antes de comprender init y todo lo que le rodea.
Servicio numera. Genera en un fichero de texto de nombre /var/tmp/numera.list 10.000 números aleatorios. A continuación se presenta el código del servicio, se divide en dos módulos ambos alojados en /usr/sbin.
numera
debe establecerse como servicio en el arranque del
sistema en los niveles de ejecución que el comando update-rc.d
establezca por
defecto y parar en los que por
defecto update-rc.d
considere. Antes de proceder a la manipulación de
los directorios /etc/init.d y
/etc/rcN.d
los
módulos deben estar en su sitio, a saber: /usr/sbin/numera,
/usr/sbin/numerador, /etc/init.d/numera
y todos con permisos 755
Lo visto hasta ahora se corresponde con el modelo de puesta en escena de init y gestión de servicios de los sistemas basados en System V, así como el sustituto de todo eso: systemd.
El modelo correspondiente a los sistemas basados en BSD se explica aquí. Los procesos se gestionan de la misma forma en ambos tipos de sistemas.
Ámbito del sistema
Monitorización de procesos.
top, ps, lsof, fuser
Interacción (envío de señales).
kill, pkill, killall
Ámbito de la shell (espacio de
usuario)
jobs, fg, bg, ^Z, ^C, %n, kill
Ámbito de Infraestructura (Monitorización de redes)