SlideShare una empresa de Scribd logo
Señales en Linux
2013/
04
Dani Gutiérrez Porset
profesor asociado
de Ing. de Comunicaciones
Eman ta zabal zazu
2
2Señales en Linux
Fuentes y Referencias
● man
● Wikipedia
● Fuentes del kernel
● http://www.advancedlinuxprogramming.com/
● http://www.linuxprogrammingblog.com/all-about-linux-signals
● http://www.linuxjournal.com/article/3985 (mayo 2000)
●
http://www.linuxjournal.com/content/sigalrm-timers-and-stdin-analysis (marzo
2013)
3
3Señales en Linux
Licencia, Agradecimientos y
Herramientas
● Agradecimientos a todas las personas que han
participado en los proyectos GNU y Linux. Gracias a la
compartición libre de ese conocimiento es que esta
presentación existe.
● Úsala, cópiala, difúndela, mejórala según los términos
de la licencia: CC BY-SA 3.0 ES
http://creativecommons.org/licenses/by-sa/3.0/es/
● Esta presentación ha sido realizada íntegramente con
KDE, LibreOffice y Chromium
4
4Señales en Linux
Índice
● Definición de señal
● Tabla y Clasificaciones de señales
● Ocurrencia de una señal
● Handlers de usuario
● Señales en el contexto de un proceso
● Procesos padres e hijos
● Operaciones con señales
● Interfaces C (y consejos de programación), consola y procfs
5
5Señales en Linux
Definición de señal
● Interrupción del flujo o cambio de estado
de un proceso o un thread...
● … de forma asíncrona (externa)
o síncrona (ej. el propio proceso se pone en espera, o
hay un timeout de una alarma)...
● … con un origen desde el kernel o desde otro proceso
de usuario
● Se emplean como mecanismo de comunicación entre
procesos.
6
6Señales en Linux
Tabla de señales
● Inicialmente (POSIX.1-1990) 19 señales, hoy más
de 60.
● Tienen un número y un nombre asociado:
$ kill -l
● Ver tabla completa en:
– man 7 signal
– /usr/include/asm-generic/signal.h
7
7Señales en Linux
Clasificaciones de señales:
Según su origen o causa
● Consola, ej. Ctrl-C, Ctrl-Z,...
● Ventanas: SIGWINCH
● Errores (originados por el propio proceso o el kernel), ej.
división por cero, acceso a memoria no existente
● Cambios de estado, ej. finalización, detención, continuación
● Ejecución de un proceso paso a paso
● Alarmas
● Comunicación entre procesos padres-hijos: SIGCHLD
● Otras de uso generalista, ej. SIGUSR1
8
8Señales en Linux
Clasificaciones de señales:
Según el estándar que las define
● ANSI C (1983-...)
http://en.wikipedia.org/wiki/C_Standard_Library
● BSD (1978-1995)
https://en.wikipedia.org/wiki/Berkeley_Software_Distribution
● Unix System V (1983-1997)
https://en.wikipedia.org/wiki/UNIX_System_V
● POSIX (1988-2008) http://en.wikipedia.org/wiki/POSIX
● Linux
● (Single UNIX Specification)
http://en.wikipedia.org/wiki/Single_UNIX_Specification
Importante ver el apartado “Conforming to” en el man de cada función
9
9Señales en Linux
Clasificaciones de señales:
Comportamientos y handlers
● Según lo que haga el handler por defecto del sistema, en el caso de
que éste esté activado:
– Terminar el proceso. En este caso, con algunas se genera un fichero “core”
(si se tienen permisos de ficheros,...).
– Detener el proceso
– Continuar el proceso
– No hacer nada (se ignora la señal)
● Señales “especiales”:
– SIGKILL y SIGSTOP: no pueden ser ignoradas, gestionadas o bloqueadas.
– SIGILL, SIGTRAP y SIGPWR: si se producen, su handler no se resetea al
valor por defecto
10
10Señales en Linux
Clasificaciones de señales:
estándares o real-time
● Señales real-time:
– Tienen un uso orientado a aplicación.
– Se pueden encolar múltiples (no sólo una) instancia
mientras una señal está bloqueada.
– Permiten obtener más información al handler.
– Se envían a un proceso en orden garantizado.
– Las funciones C para usarlas son de la forma rt_...
11
11Señales en Linux
Ocurrencia de una señal
¿Es
“interceptable”?
No
(SIGKILL,SIGSTOP)
Sí
● Ignorarla: SIG_IGN
● Ejecutar la rutina (handler)
del sistema por defecto:
SIG_DFL
● Ejecutar una función
(handler)
definida por el usuario
El sistema ejecutar
la rutina (handler)
por defecto
Se produce
una señal ¿Está
bloqueada?
¿Cuál es
el comportamiento
definido?
No
Sí
Queda
pendiente
Nota: lo indicado aquí es para
Linux,
no para sistemas Unix más
antiguos
12
12Señales en Linux
Handlers de usuario:
Establecimiento
● Establecimiento con sigaction (2).
● No es recomendable el uso de signal (2) para establecer
un handler de usuario por problemas de compatibilidad.
● Formatos posibles:
void (*sa_handler)(int);
void (*sa_sigaction)(int, siginfo_t *, void *)
En ambos recibe como parámetro el identificador de la
señal que ha originado su llamada.
13
13Señales en Linux
Handlers de usuario:
Ejecución (i)
● En algunos sistemas operativos, al entrar a la ejecución del handler se
resetea a la función por defecto (SIG_DFL). Si esto ocurre, puede ser
conveniente reestablecerlo:
– Al inicio, para que pueda ser llamado de nuevo durante su ejecución.
– Al final, para que pueda ser llamado no durante la ejecución sino al
acabar la misma.
● En Linux, al entrar a la ejecución del handler, según el flag
SA_RESETHAND usado en sigaction (2) el handler puede:
– Resetearse a SIG_DFL (con flag SA_RESETHAND)
– Mantenerse (sin el flag).
14
14Señales en Linux
Handlers de usuario:
Ejecución (ii)
● Otros comportamientos “históricos”:
– System V original: señales “no seguras”; se pueden perder,
etc.
– BSD, POSIX y Linux: señales seguras o fiables. Si se producen
mientras están bloqueadas, pueden comprobarse.
System V BSD
¿Se resetea al handler por defecto? Sí No
¿Se bloquea? No Sí
¿Si el handler interrumpe una llamada del sistema con
bloqueo, dicha llamada del sistema se reinicia
automáticamente?
No Sí
15
15Señales en Linux
Handlers de usuario:
Ejecución (iii)
●Un handler podría ser interrumpido durante su ejecución y
volver a ejecutarse o entrar a otro código.
●Cuidado con:
–La programación del mismo handler para que sea
reentrante.
–El uso de funciones no reentrantes del sistema operativo,
ej. printf a reemplazar por write
(ver lista de funciones seguras en man 7 signal).
16
16Señales en Linux
Señales en el contexto de un
proceso
● Cada proceso tiene información relativa a señales
Ej. ver mediante procfs:
$ grep Sig /proc/self/status
● Información:
–Handlers de señales
–Máscaras de bits asociadas a cada proceso, donde cada bit
representa información sobre cada señal. Tipo struct
sigset
(ver /usr/include/asm-generic/signal.h)
17
17Señales en Linux
Señales en el contexto de un
proceso: Máscaras
● Máscaras respecto a las señales que pueden ocurrir:
– Las se van a bloquear (“máscara del proceso”): aunque se
produzcan, de momento no se tratarán.
– Las que se van a ignorar.
– Las que se van a tratar con handler.
– (Las anteriores no aplican a SIGKILL y SIGSTOP).
● Máscaras respecto a las que ya han ocurrido o señales que
están pendientes: se han producido pero [aún] no se han
tratado por estar bloqueadas, y se quedan en una cola de
espera.
18
18Señales en Linux
Procesos padres e hijos:
Herencia
● En un fork(2) el proceso hijo:
– Hereda la máscara de señales bloqueadas.
– Tiene vacía la lista de señales pendientes.
– Sí hereda los handlers.
– No hereda timers.
● En un exec(3) el proceso lanzado:
– Hereda la máscara de señales bloqueadas.
– Mantiene la lista de señales pendientes.
– No hereda los handlers.
19
19Señales en Linux
Procesos padres e hijos:
Procesos zombies (i)
● Todo proceso tiene:
– Recursos, ej. memoria asignada.
– Una entrada en la tabla de procesos, usada por el
padre para leer su código de salida al finalizar el hijo.
20
20Señales en Linux
Procesos padres e hijos:
Procesos zombies (ii)
● Cuando un proceso finaliza:
– Se liberan sus recursos.
– Si ha terminado con la función exit (3) se envía
automáticamente una señal al padre (SIGCHLD, SIGCLD).
– Si el padre está vivo, a veces no se borra su entrada de la
tabla y queda en estado “zombie”.
Peligro: alcanzar el máximo de PIDs y no poder crearse más
procesos.
– Si el padre estaba muerto, el proceso init se encarga del
huérfano y borra su entrada.
21
21Señales en Linux
Procesos padres e hijos:
Procesos zombies (iii)
● La entrada de la tabla de procesos sólo se borra en
estos casos:
– Automáticamente en sistemas “modernos” (ej. Linux kernel
>=2.6), si ocurre alguna de éstas condiciones:
● Si el padre ignora SIGCHLD de forma explícita (estableciendo el
handler a SIG_IGN)
● Si el padre tiene activado el flag SA_NOCLDWAIT.
– En todos los sistemas, cuando el padre llama a wait (2),
sea dentro de un handler para la señal del hijo (SIGCHLD o
la que sea), o fuera de un handler.
22
22Señales en Linux
Procesos padres e hijos:
Procesos zombies (v)
● Problema en el caso 2 si el padre no llama a wait
(2). Posibles causas:
– Porque la llama dentro de un handler de señal (ej.
SIGCHLD) pero esa señal no le ha llegado, ej. porque
el hijo ha finalizado de forma anómala, no con exit
(3).
– (Porque el padre está mal programado).
23
23Señales en Linux
Procesos padres e hijos:
Procesos zombies (vi)
● Soluciones:
– Si el padre llama a wait (2) desde un handler, enviar al
padre la señal correspondiente, ej. mediante kill
desde consola.
– En sistemas “modernos”: que el padre ignore
SIGCHLD de forma explícita (estableciendo el handler
a SIG_IGN) o activar el flag SA_NOCLDWAIT.
– (Matar al padre, en cuyo caso los hijos huérfanos son
heredados por el proceso init el cual hace la limpieza).
24
24Señales en Linux
Operaciones con señales
Lanzar
una señal
Esperar
a una señal
Definir el
tratamiento
para una señal
Gestión
de bloqueos y
señales
pendientes
Gestión
de máscaras
de señales
Recordatorio C vs Consola. Según los apartados del manual
man:
...(1)... Ejecutables y comandos de shell
…(2)... Funciones del kernel
...(3)... Funciones de bibliotecas externas
Otras: timers,
stack y saltos,
información,
real-time
25
25Señales en Linux
Ops. y funciones C:
Lanzar una señal
● kill (2): enviar una señal a un proceso o a un grupo de
procesos. Hay que tener permisos adecuados (ver man)
● raise (3): enviarse una señal a sí mismo
Otras:
● I/O: pselect (2), fcntl(2)
● Finalización de procesos: exit (3), abort (3)
● killpg (2), tgkill (2), pthread_kill (3), sigqueue (3), killall5
(8), pthread_sigqueue (3)
26
26Señales en Linux
Ops. y funciones C: Definir el
tratamiento para una señal
● sigaction (2):
– Establece la acción para una señal (SIG_DFL, SIG_IGN o un
handler).
– Puede bloquear señales.
– Se emplea una estructura C (ver man 2 sigaction):
● Dos handlers, el que se va a establecer y opcionalmente otro, para
recibir parámetros extras.
● El handler antiguo (como valor de vuelta).
● Una máscara de bloqueo de interrupciones.
● Flags.
27
27Señales en Linux
Ops. y funciones C:
Esperar a una señal
● pause (2): espera a una señal
● sigsuspend (2): espera a una señal, pero permite especificar a
cuáles mediante una máscara de bloqueo (bits a 0). Se reemplaza
temporalmente la máscara de bloqueo del proceso.
● sigwait (3): semejante a la anterior, pero si se produce la señal y
tiene un handler éste no es ejecutado, ni tampoco se reemplaza
la máscara de bloqueo.
● Otras: sigtimedwait (2), sigwaitinfo (2), signalfd (2), signalfd4
(2), sigpause (3)
28
28Señales en Linux
Ops. y funciones C: Gestión de
bloqueos y señales pendientes
Ej. motivo para bloquearla: ej. se está dentro de
otra función que no se quiere interrumpir
● sigprocmask (2): examinar o modificar la máscara
de bloqueo de un proceso
● sigpending (2): ver qué señales están pendientes
(estando bloqueadas se han producido)
● Otras: pthread_sigmask (3)
29
29Señales en Linux
Ops. y funciones C:
Gestión de máscaras
Son operaciones sobre bits, más que de gestión de
señales como tal
● sigemptyset (3), sigfillset (3), sigaddset (3),
sigdelset (3), sigismember (3)
● Extensiones de GNU Glibc: sigandset (3),
sigorset (3), sigisemptyset (3)
30
30Señales en Linux
Otras operaciones y funciones C
● Gestión de timers: alarm (2): al de un tiempo se lanza la señal
SIGALARM al proceso que la ha establecido. Otras: getitimer
(2), setitimer (2), ualarm (3)
● Relacionadas con el stack y con saltos: sigstack (3), sigaltstack
(2), sigsetjmp(3), siglongjmp(3), sigreturn (2)
● De información: strsignal (3), psignal (3), psiginfo (3)
● Gestión de señales real-time: con prefijo “rt_”. Más modernas
(desde el kernel 2.2) para gestionar señales de tiempo real. Ej:
rt_sigaction (2)
● Otras: siginterrupt (3)
31
31Señales en Linux
Funciones C obsoletas
● De ANSI C: signal (2): sólo útil si se elige
ignorarla o ejecutar la rutina por defecto
● De BSD: bsd_signal (3), sigblock (3), siggetmask
(3), sigmask (3), sigsetmask (3), sigvec (3)
● De System V: sysv_signal (3), sighold (3),
sigignore (3), sigrelse (3), sigset (3), gsignal (3),
ssignal (3)
● Otras: tkill (2), sgetmask (2), ssetmask (2)
32
32Señales en Linux
Consejos para programación en C
● Incluir signal.h
● Cuidado en los handlers de usuario:
– Con el uso de funciones del sistema no reentrantes
– Con una programación no reentrante
● Ojo al comportamiento de cada función según el bit
de la máscara sea 1 ó 0.
● Tratamiento de errores, ej. EINTR.
● Ver apartado portabilidad en el man.
33
33Señales en Linux
Interface de consola
● Lanzar una señal a procesos:
kill (1): según PID
killall (1): según nombre
pkill (1): según patron
● “Atrapar” una señal:
trap - comando interno de bash para “atrapar” señales
● Ver las cuatro máscaras para un proceso:
ps -o pending,blocked,ignored,caught
● Tracear señales:
strace (1)
● Obsoletas: skill (1), snice (1)
$>
34
34Señales en Linux
Interface procfs del kernel
● Algunas entradas son de sólo lectura y otras permiten modificar límites.
● Ficheros:
– /proc/[pid]/stat
– /proc/[pid]/status
– /proc/sys/kernel/rtsig-max
– /proc/sys/kernel/rtsig-nr
– /proc/sys/kernel/sysrq
● Se pueden configurar parámetros mediante:
– /etc/sysctl.conf
– /etc/sysctl.d/*
● Más información en man 5 proc

Más contenido relacionado

La actualidad más candente

Estructura de almacenamiento
Estructura de almacenamientoEstructura de almacenamiento
Estructura de almacenamiento
Andrea Mendez
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
Gabriel Calderon
 
Realizar un cron con centos 7
Realizar un cron con centos 7Realizar un cron con centos 7
Realizar un cron con centos 7
santiago Ramirez Ramirez
 
Burbuja Bidireccional
Burbuja BidireccionalBurbuja Bidireccional
Burbuja Bidireccional
Cristopher Blum
 
Ejercicios uml
Ejercicios umlEjercicios uml
estructura de sistemas operativos
estructura de sistemas operativosestructura de sistemas operativos
estructura de sistemas operativos
ernesto perez
 
Cena de Filósofos
Cena de FilósofosCena de Filósofos
Cena de Filósofos
Miguel Cruz
 
Taller de Sistemas Operativos
Taller de Sistemas Operativos Taller de Sistemas Operativos
Taller de Sistemas Operativos
Jean Carlos Bedoya Arce
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#
rezzaca
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
Guillermo
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
Facultad de Ciencias y Sistemas
 
Curso recursividad
Curso   recursividadCurso   recursividad
Curso recursividad
PEDRO OSWALDO BELTRAN CANESSA
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoria
Miguel Magaña
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
David Martinez
 
Ia32 Modo Protegido
Ia32 Modo ProtegidoIa32 Modo Protegido
Ia32 Modo Protegido
Erwin Meza
 
Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)
Alejandro Salas Ledezma
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de Memoria
Luis Eraso
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
Eduardo Suarez
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
José Antonio Sandoval Acosta
 
PROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASESPROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASES
GEOVANIFERNANDOMENDO
 

La actualidad más candente (20)

Estructura de almacenamiento
Estructura de almacenamientoEstructura de almacenamiento
Estructura de almacenamiento
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
 
Realizar un cron con centos 7
Realizar un cron con centos 7Realizar un cron con centos 7
Realizar un cron con centos 7
 
Burbuja Bidireccional
Burbuja BidireccionalBurbuja Bidireccional
Burbuja Bidireccional
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
estructura de sistemas operativos
estructura de sistemas operativosestructura de sistemas operativos
estructura de sistemas operativos
 
Cena de Filósofos
Cena de FilósofosCena de Filósofos
Cena de Filósofos
 
Taller de Sistemas Operativos
Taller de Sistemas Operativos Taller de Sistemas Operativos
Taller de Sistemas Operativos
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Curso recursividad
Curso   recursividadCurso   recursividad
Curso recursividad
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoria
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
 
Ia32 Modo Protegido
Ia32 Modo ProtegidoIa32 Modo Protegido
Ia32 Modo Protegido
 
Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de Memoria
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
PROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASESPROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASES
 

Destacado

Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
Dani Gutiérrez Porset
 
Construccion Parcielmente Industrializada
Construccion Parcielmente IndustrializadaConstruccion Parcielmente Industrializada
Construccion Parcielmente Industrializada
turbi
 
Librecon 2016 - Emprendizaje digital y Software libre
Librecon 2016 - Emprendizaje digital y Software libreLibrecon 2016 - Emprendizaje digital y Software libre
Librecon 2016 - Emprendizaje digital y Software libre
Dani Gutiérrez Porset
 
Las Tics y las aplicaciones Militares
Las Tics y las aplicaciones MilitaresLas Tics y las aplicaciones Militares
Las Tics y las aplicaciones Militares
Alumnos Instituto Grilli
 
Otro Urbanismo es Posible (Albergue Municipal)
Otro Urbanismo es Posible (Albergue Municipal)Otro Urbanismo es Posible (Albergue Municipal)
Otro Urbanismo es Posible (Albergue Municipal)
Baldexalon
 
Avances t..
Avances t..Avances t..
Mis Vacaciones
Mis VacacionesMis Vacaciones
Mis Vacaciones
ariana.sz
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
Alumnos Instituto Grilli
 
Refleja. Dar Amoroso
Refleja. Dar AmorosoRefleja. Dar Amoroso
Refleja. Dar Amoroso
Refleja tu Amor
 
Pruebas De Logica
Pruebas De LogicaPruebas De Logica
Pruebas De Logica
Ramior
 
Brujas
BrujasBrujas
Fotos en gris de Huesca
Fotos en gris de HuescaFotos en gris de Huesca
Fotos en gris de Huesca
miguelsolana
 
Emprendimientos de alto valor por lorenzo vicens
Emprendimientos de alto valor por lorenzo vicensEmprendimientos de alto valor por lorenzo vicens
Emprendimientos de alto valor por lorenzo vicens
Lorenzo Vicens
 
Paz Interior
Paz InteriorPaz Interior
Paz Interior
juancas
 
Openssl
OpensslOpenssl
Fiesta del 21 de Mayo
Fiesta del 21 de MayoFiesta del 21 de Mayo
Fiesta del 21 de Mayo
tata
 
Examen2004 3
Examen2004 3Examen2004 3
Las piezas del PLE: Herramientas 2.0 a partir de los usos
Las piezas del PLE: Herramientas 2.0 a partir de los usosLas piezas del PLE: Herramientas 2.0 a partir de los usos
Las piezas del PLE: Herramientas 2.0 a partir de los usos
Ismael Peña-López
 
Mi Primer Manual
Mi Primer ManualMi Primer Manual
Mi Primer Manual
Alumnos Instituto Grilli
 
O Asturiano
O AsturianoO Asturiano
O Asturiano
Román Landín
 

Destacado (20)

Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
 
Construccion Parcielmente Industrializada
Construccion Parcielmente IndustrializadaConstruccion Parcielmente Industrializada
Construccion Parcielmente Industrializada
 
Librecon 2016 - Emprendizaje digital y Software libre
Librecon 2016 - Emprendizaje digital y Software libreLibrecon 2016 - Emprendizaje digital y Software libre
Librecon 2016 - Emprendizaje digital y Software libre
 
Las Tics y las aplicaciones Militares
Las Tics y las aplicaciones MilitaresLas Tics y las aplicaciones Militares
Las Tics y las aplicaciones Militares
 
Otro Urbanismo es Posible (Albergue Municipal)
Otro Urbanismo es Posible (Albergue Municipal)Otro Urbanismo es Posible (Albergue Municipal)
Otro Urbanismo es Posible (Albergue Municipal)
 
Avances t..
Avances t..Avances t..
Avances t..
 
Mis Vacaciones
Mis VacacionesMis Vacaciones
Mis Vacaciones
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Refleja. Dar Amoroso
Refleja. Dar AmorosoRefleja. Dar Amoroso
Refleja. Dar Amoroso
 
Pruebas De Logica
Pruebas De LogicaPruebas De Logica
Pruebas De Logica
 
Brujas
BrujasBrujas
Brujas
 
Fotos en gris de Huesca
Fotos en gris de HuescaFotos en gris de Huesca
Fotos en gris de Huesca
 
Emprendimientos de alto valor por lorenzo vicens
Emprendimientos de alto valor por lorenzo vicensEmprendimientos de alto valor por lorenzo vicens
Emprendimientos de alto valor por lorenzo vicens
 
Paz Interior
Paz InteriorPaz Interior
Paz Interior
 
Openssl
OpensslOpenssl
Openssl
 
Fiesta del 21 de Mayo
Fiesta del 21 de MayoFiesta del 21 de Mayo
Fiesta del 21 de Mayo
 
Examen2004 3
Examen2004 3Examen2004 3
Examen2004 3
 
Las piezas del PLE: Herramientas 2.0 a partir de los usos
Las piezas del PLE: Herramientas 2.0 a partir de los usosLas piezas del PLE: Herramientas 2.0 a partir de los usos
Las piezas del PLE: Herramientas 2.0 a partir de los usos
 
Mi Primer Manual
Mi Primer ManualMi Primer Manual
Mi Primer Manual
 
O Asturiano
O AsturianoO Asturiano
O Asturiano
 

Similar a Señales en Linux

Taller de seguridad para servidores GNU/Linux (GSICKMinds)
Taller de seguridad para servidores GNU/Linux (GSICKMinds)Taller de seguridad para servidores GNU/Linux (GSICKMinds)
Taller de seguridad para servidores GNU/Linux (GSICKMinds)
cl0p3z
 
Creacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware SoekrisCreacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware Soekris
ozikox
 
gnupg.pdf
gnupg.pdfgnupg.pdf
Manual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagiosManual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagios
Manuel Pérez Ozorio
 
Gns3
Gns3Gns3
Transcripcion (jackeline chillogalli
Transcripcion (jackeline chillogalliTranscripcion (jackeline chillogalli
Transcripcion (jackeline chillogalli
jackeline_chillogalli
 
Como instalar unix
Como instalar unixComo instalar unix
Como instalar unix
ivanita99
 
Ps 10 sos_procesos_señales
Ps 10 sos_procesos_señalesPs 10 sos_procesos_señales
Ps 10 sos_procesos_señales
San Díaz
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
LXC, Docker, LXD &snaps
LXC, Docker, LXD &snapsLXC, Docker, LXD &snaps
LXC, Docker, LXD &snaps
Sergio Schvezov
 
Transcripcion yamy
Transcripcion yamyTranscripcion yamy
Transcripcion yamy
Yomaira_Anzules
 
Seguridad de Código basada en Tecnología Vírica. No cON Name 2006
Seguridad de Código basada en Tecnología Vírica. No cON Name 2006Seguridad de Código basada en Tecnología Vírica. No cON Name 2006
Seguridad de Código basada en Tecnología Vírica. No cON Name 2006
Internet Security Auditors
 
Extendiendo la Seguridad de Elastix con Snort
Extendiendo la Seguridad de Elastix con SnortExtendiendo la Seguridad de Elastix con Snort
Extendiendo la Seguridad de Elastix con Snort
Juan Oliva
 
Extendiendo la seguridad en Elastix con Snort IDS/IPS
Extendiendo la seguridad en Elastix con Snort IDS/IPSExtendiendo la seguridad en Elastix con Snort IDS/IPS
Extendiendo la seguridad en Elastix con Snort IDS/IPS
PaloSanto Solutions
 
Cifrar archivos y directorios en Linux
Cifrar archivos y directorios en LinuxCifrar archivos y directorios en Linux
Cifrar archivos y directorios en Linux
Ulises Hernandez Pino
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
RootedCON
 
Jadira palta
Jadira paltaJadira palta
Jadira palta
jadira23palta
 
Archlinux
ArchlinuxArchlinux
Minibloq+ arduino
Minibloq+ arduinoMinibloq+ arduino
Minibloq+ arduino
ilusaud
 
Ronald
RonaldRonald
Ronald
Ronald Jumbo
 

Similar a Señales en Linux (20)

Taller de seguridad para servidores GNU/Linux (GSICKMinds)
Taller de seguridad para servidores GNU/Linux (GSICKMinds)Taller de seguridad para servidores GNU/Linux (GSICKMinds)
Taller de seguridad para servidores GNU/Linux (GSICKMinds)
 
Creacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware SoekrisCreacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware Soekris
 
gnupg.pdf
gnupg.pdfgnupg.pdf
gnupg.pdf
 
Manual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagiosManual de instalacion y configuracion de nagios
Manual de instalacion y configuracion de nagios
 
Gns3
Gns3Gns3
Gns3
 
Transcripcion (jackeline chillogalli
Transcripcion (jackeline chillogalliTranscripcion (jackeline chillogalli
Transcripcion (jackeline chillogalli
 
Como instalar unix
Como instalar unixComo instalar unix
Como instalar unix
 
Ps 10 sos_procesos_señales
Ps 10 sos_procesos_señalesPs 10 sos_procesos_señales
Ps 10 sos_procesos_señales
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
LXC, Docker, LXD &snaps
LXC, Docker, LXD &snapsLXC, Docker, LXD &snaps
LXC, Docker, LXD &snaps
 
Transcripcion yamy
Transcripcion yamyTranscripcion yamy
Transcripcion yamy
 
Seguridad de Código basada en Tecnología Vírica. No cON Name 2006
Seguridad de Código basada en Tecnología Vírica. No cON Name 2006Seguridad de Código basada en Tecnología Vírica. No cON Name 2006
Seguridad de Código basada en Tecnología Vírica. No cON Name 2006
 
Extendiendo la Seguridad de Elastix con Snort
Extendiendo la Seguridad de Elastix con SnortExtendiendo la Seguridad de Elastix con Snort
Extendiendo la Seguridad de Elastix con Snort
 
Extendiendo la seguridad en Elastix con Snort IDS/IPS
Extendiendo la seguridad en Elastix con Snort IDS/IPSExtendiendo la seguridad en Elastix con Snort IDS/IPS
Extendiendo la seguridad en Elastix con Snort IDS/IPS
 
Cifrar archivos y directorios en Linux
Cifrar archivos y directorios en LinuxCifrar archivos y directorios en Linux
Cifrar archivos y directorios en Linux
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
 
Jadira palta
Jadira paltaJadira palta
Jadira palta
 
Archlinux
ArchlinuxArchlinux
Archlinux
 
Minibloq+ arduino
Minibloq+ arduinoMinibloq+ arduino
Minibloq+ arduino
 
Ronald
RonaldRonald
Ronald
 

Más de Dani Gutiérrez Porset

FFMPEG and LibAV
FFMPEG and LibAVFFMPEG and LibAV
FFMPEG and LibAV
Dani Gutiérrez Porset
 
Multimedia Services: Video
Multimedia Services: VideoMultimedia Services: Video
Multimedia Services: Video
Dani Gutiérrez Porset
 
Multimedia Services: Image
Multimedia Services: ImageMultimedia Services: Image
Multimedia Services: Image
Dani Gutiérrez Porset
 
Multimedia Services: Audio
Multimedia Services: AudioMultimedia Services: Audio
Multimedia Services: Audio
Dani Gutiérrez Porset
 
Evolución de las Herramientas de aprendizaje online con licencia libre
Evolución de las Herramientas de aprendizaje online con licencia libreEvolución de las Herramientas de aprendizaje online con licencia libre
Evolución de las Herramientas de aprendizaje online con licencia libre
Dani Gutiérrez Porset
 
Sockets ipv4
Sockets ipv4Sockets ipv4
Mecanismos IPC system V en Linux
Mecanismos IPC system V en LinuxMecanismos IPC system V en Linux
Mecanismos IPC system V en Linux
Dani Gutiérrez Porset
 
Introducción al diseño grafico con software libre
Introducción al diseño grafico con software libreIntroducción al diseño grafico con software libre
Introducción al diseño grafico con software libre
Dani Gutiérrez Porset
 
Moodle avanzado - Julio 2012
Moodle avanzado - Julio 2012Moodle avanzado - Julio 2012
Moodle avanzado - Julio 2012
Dani Gutiérrez Porset
 
Akademy 2013 bilbao_proposal
Akademy 2013 bilbao_proposalAkademy 2013 bilbao_proposal
Akademy 2013 bilbao_proposal
Dani Gutiérrez Porset
 
Cómo hacer una buena presentación
Cómo hacer una buena presentaciónCómo hacer una buena presentación
Cómo hacer una buena presentación
Dani Gutiérrez Porset
 
Ofimatica con Libreoffice
Ofimatica con LibreofficeOfimatica con Libreoffice
Ofimatica con Libreoffice
Dani Gutiérrez Porset
 
Gestión de redes, SNMP y RMON
Gestión de redes, SNMP y RMONGestión de redes, SNMP y RMON
Gestión de redes, SNMP y RMON
Dani Gutiérrez Porset
 
DHCP, DNS, whois
DHCP, DNS, whoisDHCP, DNS, whois
DHCP, DNS, whois
Dani Gutiérrez Porset
 
Web 2.0 (dic 2010)
Web 2.0 (dic 2010)Web 2.0 (dic 2010)
Web 2.0 (dic 2010)
Dani Gutiérrez Porset
 
Intro a los sistemas operativos móviles
Intro a los sistemas operativos móvilesIntro a los sistemas operativos móviles
Intro a los sistemas operativos móviles
Dani Gutiérrez Porset
 
kde on windows
kde on windowskde on windows
kde on windows
Dani Gutiérrez Porset
 
Software libre para una ciudadanía libre
Software libre para una ciudadanía libreSoftware libre para una ciudadanía libre
Software libre para una ciudadanía libre
Dani Gutiérrez Porset
 

Más de Dani Gutiérrez Porset (20)

FFMPEG and LibAV
FFMPEG and LibAVFFMPEG and LibAV
FFMPEG and LibAV
 
Multimedia Services: Video
Multimedia Services: VideoMultimedia Services: Video
Multimedia Services: Video
 
Multimedia Services: Image
Multimedia Services: ImageMultimedia Services: Image
Multimedia Services: Image
 
Multimedia Services: Audio
Multimedia Services: AudioMultimedia Services: Audio
Multimedia Services: Audio
 
Evolución de las Herramientas de aprendizaje online con licencia libre
Evolución de las Herramientas de aprendizaje online con licencia libreEvolución de las Herramientas de aprendizaje online con licencia libre
Evolución de las Herramientas de aprendizaje online con licencia libre
 
Sockets ipv4
Sockets ipv4Sockets ipv4
Sockets ipv4
 
Mecanismos IPC system V en Linux
Mecanismos IPC system V en LinuxMecanismos IPC system V en Linux
Mecanismos IPC system V en Linux
 
Introducción al diseño grafico con software libre
Introducción al diseño grafico con software libreIntroducción al diseño grafico con software libre
Introducción al diseño grafico con software libre
 
Moodle avanzado - Julio 2012
Moodle avanzado - Julio 2012Moodle avanzado - Julio 2012
Moodle avanzado - Julio 2012
 
Akademy 2013 bilbao_proposal
Akademy 2013 bilbao_proposalAkademy 2013 bilbao_proposal
Akademy 2013 bilbao_proposal
 
Web 2.0 (2010ko abendua) euskeraz
Web 2.0 (2010ko abendua) euskerazWeb 2.0 (2010ko abendua) euskeraz
Web 2.0 (2010ko abendua) euskeraz
 
Sareen kudeaketa, SNMP eta RMON
Sareen kudeaketa, SNMP eta RMONSareen kudeaketa, SNMP eta RMON
Sareen kudeaketa, SNMP eta RMON
 
Cómo hacer una buena presentación
Cómo hacer una buena presentaciónCómo hacer una buena presentación
Cómo hacer una buena presentación
 
Ofimatica con Libreoffice
Ofimatica con LibreofficeOfimatica con Libreoffice
Ofimatica con Libreoffice
 
Gestión de redes, SNMP y RMON
Gestión de redes, SNMP y RMONGestión de redes, SNMP y RMON
Gestión de redes, SNMP y RMON
 
DHCP, DNS, whois
DHCP, DNS, whoisDHCP, DNS, whois
DHCP, DNS, whois
 
Web 2.0 (dic 2010)
Web 2.0 (dic 2010)Web 2.0 (dic 2010)
Web 2.0 (dic 2010)
 
Intro a los sistemas operativos móviles
Intro a los sistemas operativos móvilesIntro a los sistemas operativos móviles
Intro a los sistemas operativos móviles
 
kde on windows
kde on windowskde on windows
kde on windows
 
Software libre para una ciudadanía libre
Software libre para una ciudadanía libreSoftware libre para una ciudadanía libre
Software libre para una ciudadanía libre
 

Último

LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxLA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
pauca1501alvar
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Plan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en VenezuelaPlan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en Venezuela
Gabrielm88
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
yessicacarrillo16
 
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdfCURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
LagsSolucSoporteTecn
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
luiscohailatenazoa0
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
renzocruz180310
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
KukiiSanchez
 
Uso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptxUso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptx
231485414
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
jhonyaicaterodriguez
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
edwinedsonsuyo
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
Gobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a finGobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a fin
Juan Carlos Gonzalez
 
MODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdf
MODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdfMODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdf
MODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdf
SeleniaLavayen
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
jgvanessa23
 

Último (20)

LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxLA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Plan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en VenezuelaPlan de racionamiento de energía en Venezuela
Plan de racionamiento de energía en Venezuela
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
 
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdfCURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
CURSO CAMARAS DE SEGURIDAD 2023 FINAL .pdf
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
 
INFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIAINFORMATICA Y TECNOLOGIA
INFORMATICA Y TECNOLOGIA
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
Morado y Verde Animado Patrón Abstracto Proyecto de Grupo Presentación de Edu...
 
Uso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptxUso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptx
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
Gobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a finGobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a fin
 
MODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdf
MODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdfMODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdf
MODELOS MODERNOS DE TECLADOS Y PANTALLAS.pdf
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 

Señales en Linux

  • 1. Señales en Linux 2013/ 04 Dani Gutiérrez Porset profesor asociado de Ing. de Comunicaciones Eman ta zabal zazu
  • 2. 2 2Señales en Linux Fuentes y Referencias ● man ● Wikipedia ● Fuentes del kernel ● http://www.advancedlinuxprogramming.com/ ● http://www.linuxprogrammingblog.com/all-about-linux-signals ● http://www.linuxjournal.com/article/3985 (mayo 2000) ● http://www.linuxjournal.com/content/sigalrm-timers-and-stdin-analysis (marzo 2013)
  • 3. 3 3Señales en Linux Licencia, Agradecimientos y Herramientas ● Agradecimientos a todas las personas que han participado en los proyectos GNU y Linux. Gracias a la compartición libre de ese conocimiento es que esta presentación existe. ● Úsala, cópiala, difúndela, mejórala según los términos de la licencia: CC BY-SA 3.0 ES http://creativecommons.org/licenses/by-sa/3.0/es/ ● Esta presentación ha sido realizada íntegramente con KDE, LibreOffice y Chromium
  • 4. 4 4Señales en Linux Índice ● Definición de señal ● Tabla y Clasificaciones de señales ● Ocurrencia de una señal ● Handlers de usuario ● Señales en el contexto de un proceso ● Procesos padres e hijos ● Operaciones con señales ● Interfaces C (y consejos de programación), consola y procfs
  • 5. 5 5Señales en Linux Definición de señal ● Interrupción del flujo o cambio de estado de un proceso o un thread... ● … de forma asíncrona (externa) o síncrona (ej. el propio proceso se pone en espera, o hay un timeout de una alarma)... ● … con un origen desde el kernel o desde otro proceso de usuario ● Se emplean como mecanismo de comunicación entre procesos.
  • 6. 6 6Señales en Linux Tabla de señales ● Inicialmente (POSIX.1-1990) 19 señales, hoy más de 60. ● Tienen un número y un nombre asociado: $ kill -l ● Ver tabla completa en: – man 7 signal – /usr/include/asm-generic/signal.h
  • 7. 7 7Señales en Linux Clasificaciones de señales: Según su origen o causa ● Consola, ej. Ctrl-C, Ctrl-Z,... ● Ventanas: SIGWINCH ● Errores (originados por el propio proceso o el kernel), ej. división por cero, acceso a memoria no existente ● Cambios de estado, ej. finalización, detención, continuación ● Ejecución de un proceso paso a paso ● Alarmas ● Comunicación entre procesos padres-hijos: SIGCHLD ● Otras de uso generalista, ej. SIGUSR1
  • 8. 8 8Señales en Linux Clasificaciones de señales: Según el estándar que las define ● ANSI C (1983-...) http://en.wikipedia.org/wiki/C_Standard_Library ● BSD (1978-1995) https://en.wikipedia.org/wiki/Berkeley_Software_Distribution ● Unix System V (1983-1997) https://en.wikipedia.org/wiki/UNIX_System_V ● POSIX (1988-2008) http://en.wikipedia.org/wiki/POSIX ● Linux ● (Single UNIX Specification) http://en.wikipedia.org/wiki/Single_UNIX_Specification Importante ver el apartado “Conforming to” en el man de cada función
  • 9. 9 9Señales en Linux Clasificaciones de señales: Comportamientos y handlers ● Según lo que haga el handler por defecto del sistema, en el caso de que éste esté activado: – Terminar el proceso. En este caso, con algunas se genera un fichero “core” (si se tienen permisos de ficheros,...). – Detener el proceso – Continuar el proceso – No hacer nada (se ignora la señal) ● Señales “especiales”: – SIGKILL y SIGSTOP: no pueden ser ignoradas, gestionadas o bloqueadas. – SIGILL, SIGTRAP y SIGPWR: si se producen, su handler no se resetea al valor por defecto
  • 10. 10 10Señales en Linux Clasificaciones de señales: estándares o real-time ● Señales real-time: – Tienen un uso orientado a aplicación. – Se pueden encolar múltiples (no sólo una) instancia mientras una señal está bloqueada. – Permiten obtener más información al handler. – Se envían a un proceso en orden garantizado. – Las funciones C para usarlas son de la forma rt_...
  • 11. 11 11Señales en Linux Ocurrencia de una señal ¿Es “interceptable”? No (SIGKILL,SIGSTOP) Sí ● Ignorarla: SIG_IGN ● Ejecutar la rutina (handler) del sistema por defecto: SIG_DFL ● Ejecutar una función (handler) definida por el usuario El sistema ejecutar la rutina (handler) por defecto Se produce una señal ¿Está bloqueada? ¿Cuál es el comportamiento definido? No Sí Queda pendiente Nota: lo indicado aquí es para Linux, no para sistemas Unix más antiguos
  • 12. 12 12Señales en Linux Handlers de usuario: Establecimiento ● Establecimiento con sigaction (2). ● No es recomendable el uso de signal (2) para establecer un handler de usuario por problemas de compatibilidad. ● Formatos posibles: void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *) En ambos recibe como parámetro el identificador de la señal que ha originado su llamada.
  • 13. 13 13Señales en Linux Handlers de usuario: Ejecución (i) ● En algunos sistemas operativos, al entrar a la ejecución del handler se resetea a la función por defecto (SIG_DFL). Si esto ocurre, puede ser conveniente reestablecerlo: – Al inicio, para que pueda ser llamado de nuevo durante su ejecución. – Al final, para que pueda ser llamado no durante la ejecución sino al acabar la misma. ● En Linux, al entrar a la ejecución del handler, según el flag SA_RESETHAND usado en sigaction (2) el handler puede: – Resetearse a SIG_DFL (con flag SA_RESETHAND) – Mantenerse (sin el flag).
  • 14. 14 14Señales en Linux Handlers de usuario: Ejecución (ii) ● Otros comportamientos “históricos”: – System V original: señales “no seguras”; se pueden perder, etc. – BSD, POSIX y Linux: señales seguras o fiables. Si se producen mientras están bloqueadas, pueden comprobarse. System V BSD ¿Se resetea al handler por defecto? Sí No ¿Se bloquea? No Sí ¿Si el handler interrumpe una llamada del sistema con bloqueo, dicha llamada del sistema se reinicia automáticamente? No Sí
  • 15. 15 15Señales en Linux Handlers de usuario: Ejecución (iii) ●Un handler podría ser interrumpido durante su ejecución y volver a ejecutarse o entrar a otro código. ●Cuidado con: –La programación del mismo handler para que sea reentrante. –El uso de funciones no reentrantes del sistema operativo, ej. printf a reemplazar por write (ver lista de funciones seguras en man 7 signal).
  • 16. 16 16Señales en Linux Señales en el contexto de un proceso ● Cada proceso tiene información relativa a señales Ej. ver mediante procfs: $ grep Sig /proc/self/status ● Información: –Handlers de señales –Máscaras de bits asociadas a cada proceso, donde cada bit representa información sobre cada señal. Tipo struct sigset (ver /usr/include/asm-generic/signal.h)
  • 17. 17 17Señales en Linux Señales en el contexto de un proceso: Máscaras ● Máscaras respecto a las señales que pueden ocurrir: – Las se van a bloquear (“máscara del proceso”): aunque se produzcan, de momento no se tratarán. – Las que se van a ignorar. – Las que se van a tratar con handler. – (Las anteriores no aplican a SIGKILL y SIGSTOP). ● Máscaras respecto a las que ya han ocurrido o señales que están pendientes: se han producido pero [aún] no se han tratado por estar bloqueadas, y se quedan en una cola de espera.
  • 18. 18 18Señales en Linux Procesos padres e hijos: Herencia ● En un fork(2) el proceso hijo: – Hereda la máscara de señales bloqueadas. – Tiene vacía la lista de señales pendientes. – Sí hereda los handlers. – No hereda timers. ● En un exec(3) el proceso lanzado: – Hereda la máscara de señales bloqueadas. – Mantiene la lista de señales pendientes. – No hereda los handlers.
  • 19. 19 19Señales en Linux Procesos padres e hijos: Procesos zombies (i) ● Todo proceso tiene: – Recursos, ej. memoria asignada. – Una entrada en la tabla de procesos, usada por el padre para leer su código de salida al finalizar el hijo.
  • 20. 20 20Señales en Linux Procesos padres e hijos: Procesos zombies (ii) ● Cuando un proceso finaliza: – Se liberan sus recursos. – Si ha terminado con la función exit (3) se envía automáticamente una señal al padre (SIGCHLD, SIGCLD). – Si el padre está vivo, a veces no se borra su entrada de la tabla y queda en estado “zombie”. Peligro: alcanzar el máximo de PIDs y no poder crearse más procesos. – Si el padre estaba muerto, el proceso init se encarga del huérfano y borra su entrada.
  • 21. 21 21Señales en Linux Procesos padres e hijos: Procesos zombies (iii) ● La entrada de la tabla de procesos sólo se borra en estos casos: – Automáticamente en sistemas “modernos” (ej. Linux kernel >=2.6), si ocurre alguna de éstas condiciones: ● Si el padre ignora SIGCHLD de forma explícita (estableciendo el handler a SIG_IGN) ● Si el padre tiene activado el flag SA_NOCLDWAIT. – En todos los sistemas, cuando el padre llama a wait (2), sea dentro de un handler para la señal del hijo (SIGCHLD o la que sea), o fuera de un handler.
  • 22. 22 22Señales en Linux Procesos padres e hijos: Procesos zombies (v) ● Problema en el caso 2 si el padre no llama a wait (2). Posibles causas: – Porque la llama dentro de un handler de señal (ej. SIGCHLD) pero esa señal no le ha llegado, ej. porque el hijo ha finalizado de forma anómala, no con exit (3). – (Porque el padre está mal programado).
  • 23. 23 23Señales en Linux Procesos padres e hijos: Procesos zombies (vi) ● Soluciones: – Si el padre llama a wait (2) desde un handler, enviar al padre la señal correspondiente, ej. mediante kill desde consola. – En sistemas “modernos”: que el padre ignore SIGCHLD de forma explícita (estableciendo el handler a SIG_IGN) o activar el flag SA_NOCLDWAIT. – (Matar al padre, en cuyo caso los hijos huérfanos son heredados por el proceso init el cual hace la limpieza).
  • 24. 24 24Señales en Linux Operaciones con señales Lanzar una señal Esperar a una señal Definir el tratamiento para una señal Gestión de bloqueos y señales pendientes Gestión de máscaras de señales Recordatorio C vs Consola. Según los apartados del manual man: ...(1)... Ejecutables y comandos de shell …(2)... Funciones del kernel ...(3)... Funciones de bibliotecas externas Otras: timers, stack y saltos, información, real-time
  • 25. 25 25Señales en Linux Ops. y funciones C: Lanzar una señal ● kill (2): enviar una señal a un proceso o a un grupo de procesos. Hay que tener permisos adecuados (ver man) ● raise (3): enviarse una señal a sí mismo Otras: ● I/O: pselect (2), fcntl(2) ● Finalización de procesos: exit (3), abort (3) ● killpg (2), tgkill (2), pthread_kill (3), sigqueue (3), killall5 (8), pthread_sigqueue (3)
  • 26. 26 26Señales en Linux Ops. y funciones C: Definir el tratamiento para una señal ● sigaction (2): – Establece la acción para una señal (SIG_DFL, SIG_IGN o un handler). – Puede bloquear señales. – Se emplea una estructura C (ver man 2 sigaction): ● Dos handlers, el que se va a establecer y opcionalmente otro, para recibir parámetros extras. ● El handler antiguo (como valor de vuelta). ● Una máscara de bloqueo de interrupciones. ● Flags.
  • 27. 27 27Señales en Linux Ops. y funciones C: Esperar a una señal ● pause (2): espera a una señal ● sigsuspend (2): espera a una señal, pero permite especificar a cuáles mediante una máscara de bloqueo (bits a 0). Se reemplaza temporalmente la máscara de bloqueo del proceso. ● sigwait (3): semejante a la anterior, pero si se produce la señal y tiene un handler éste no es ejecutado, ni tampoco se reemplaza la máscara de bloqueo. ● Otras: sigtimedwait (2), sigwaitinfo (2), signalfd (2), signalfd4 (2), sigpause (3)
  • 28. 28 28Señales en Linux Ops. y funciones C: Gestión de bloqueos y señales pendientes Ej. motivo para bloquearla: ej. se está dentro de otra función que no se quiere interrumpir ● sigprocmask (2): examinar o modificar la máscara de bloqueo de un proceso ● sigpending (2): ver qué señales están pendientes (estando bloqueadas se han producido) ● Otras: pthread_sigmask (3)
  • 29. 29 29Señales en Linux Ops. y funciones C: Gestión de máscaras Son operaciones sobre bits, más que de gestión de señales como tal ● sigemptyset (3), sigfillset (3), sigaddset (3), sigdelset (3), sigismember (3) ● Extensiones de GNU Glibc: sigandset (3), sigorset (3), sigisemptyset (3)
  • 30. 30 30Señales en Linux Otras operaciones y funciones C ● Gestión de timers: alarm (2): al de un tiempo se lanza la señal SIGALARM al proceso que la ha establecido. Otras: getitimer (2), setitimer (2), ualarm (3) ● Relacionadas con el stack y con saltos: sigstack (3), sigaltstack (2), sigsetjmp(3), siglongjmp(3), sigreturn (2) ● De información: strsignal (3), psignal (3), psiginfo (3) ● Gestión de señales real-time: con prefijo “rt_”. Más modernas (desde el kernel 2.2) para gestionar señales de tiempo real. Ej: rt_sigaction (2) ● Otras: siginterrupt (3)
  • 31. 31 31Señales en Linux Funciones C obsoletas ● De ANSI C: signal (2): sólo útil si se elige ignorarla o ejecutar la rutina por defecto ● De BSD: bsd_signal (3), sigblock (3), siggetmask (3), sigmask (3), sigsetmask (3), sigvec (3) ● De System V: sysv_signal (3), sighold (3), sigignore (3), sigrelse (3), sigset (3), gsignal (3), ssignal (3) ● Otras: tkill (2), sgetmask (2), ssetmask (2)
  • 32. 32 32Señales en Linux Consejos para programación en C ● Incluir signal.h ● Cuidado en los handlers de usuario: – Con el uso de funciones del sistema no reentrantes – Con una programación no reentrante ● Ojo al comportamiento de cada función según el bit de la máscara sea 1 ó 0. ● Tratamiento de errores, ej. EINTR. ● Ver apartado portabilidad en el man.
  • 33. 33 33Señales en Linux Interface de consola ● Lanzar una señal a procesos: kill (1): según PID killall (1): según nombre pkill (1): según patron ● “Atrapar” una señal: trap - comando interno de bash para “atrapar” señales ● Ver las cuatro máscaras para un proceso: ps -o pending,blocked,ignored,caught ● Tracear señales: strace (1) ● Obsoletas: skill (1), snice (1) $>
  • 34. 34 34Señales en Linux Interface procfs del kernel ● Algunas entradas son de sólo lectura y otras permiten modificar límites. ● Ficheros: – /proc/[pid]/stat – /proc/[pid]/status – /proc/sys/kernel/rtsig-max – /proc/sys/kernel/rtsig-nr – /proc/sys/kernel/sysrq ● Se pueden configurar parámetros mediante: – /etc/sysctl.conf – /etc/sysctl.d/* ● Más información en man 5 proc