Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Temario del curso
Introducción
- Objetivos
- Quiénes Son Ustedes
- The Linux Foundation
- Formación de The Linux Foundation
- Programas de Certificación y Insignias Digitales
- Distribuciones de Linux
- Plataformas
- Preparar Su Sistema
- Usar y Descargar una Máquina Virtual
- Cosas Cambiantes en Linux
Preliminares
- Procedimientos
- Estándares y el LSB
Cómo Trabajar en Proyectos de OSS **
- Visión General sobre Cómo Contribuir Adequadamente
- Mantenerse Cerca del Mainline para Seguridad y Calidad
- Estudiar y Entender el ADN del Proyecto
- Identificar la Necesidad que Quieres Satisfacer
- Identificar a los Mantenedores y sus Métodos de Trabajo
- Obtener Insumos Tempranos y Trabajar en el Ámbito Público
- Contribuir con Pequeñas Partes, No con Grandes Volcados de Código
- Dejar tu Ego a la Puerta: No Ser Delicado
- Ser Paciente, Desarrollar Relaciones a Largo Plazo, Ser Útil
Compiladores
- GCC
- Otros Compiladores
- Opciones Principales de gcc
- Preprocesador
- Entornos de Desarrollo Integrados (IDE)
- Laboratorios
Bibliotecas
- Bibliotecas Estáticas
- Bibliotecas Compartidas
- Enlazar con Bibliotecas
- Cargador de Enlace Dinámico
- Laboratorios
Make
- Usar make y Makefiles
- Construir Proyectos Grandes
- Reglas Más Complicadas
- Reglas Incorporadas
- Laboratorios
Control de Versiones
- Control de Versiones
- RCS y CVS
- Subversion
- git
- Laboratorios
Depuración y Volcados de Memoria (Core Dumps)
- gdb
- ¿Qué son los Archivos de Volcado de Memoria?
- Producir Volcados de Memoria
- Examinar Volcados de Memoria
- Laboratorios
Herramientas de Depuración
- Obtener la Hora
- Perfiles y Rendimiento
- valgrind
- Laboratorios
Llamadas al Sistema
- Llamadas al Sistema vs. Funciones de Biblioteca
- Cómo Se Realizan las Llamadas al Sistema
- Valores de Retorno y Números de Error
- Laboratorios
Gestión y Asignación de Memoria
- Gestión de Memoria
- Asignación Dinámica
- Ajuste de malloc()
- Bloqueo de Páginas
- Laboratorios
Archivos y Sistemas de Archivos en Linux **
- Archivos, Directorios y Dispositivos
- El Sistema de Archivos Virtual
- El Sistema de Archivos ext2/ext3
- Sistemas de Archivos con Registro (Journaling)
- El Sistema de Archivos ext4/
- Laboratorios
Entrada/Salida de Archivos
- Entrada/Salida de Archivos en UNIX
- Abrir y Cerrar
- Leer, Escribir y Buscar Posición
- Entrada/Salida Posicional y Vectorial
- Biblioteca de Entrada/Salida Estándar
- Soporte para Archivos Grandes (LFS)
- Laboratorios
Operaciones Avanzadas de Archivos
- Funciones Stat
- Funciones de Directorio
- inotify
- Mapeo de Memoria
- flock() y fcntl()
- Crear Archivos Temporales
- Otras Llamadas al Sistema
- Laboratorios
Procesos I
- ¿Qué es un Proceso?
- Límites de Procesos
- Grupos de Procesos
- El Sistema de Archivos proc
- Métodos de Comunicación Entre Procesos
- Laboratorios
Procesos II
- Usar system() para Crear un Proceso
- Usar fork() para Crear un Proceso
- Usar exec() para Crear un Proceso
- Usar clone()
- Salir
- Constructores y Destructores
- Esperar
- Procesos Daemon
- Laboratorios
Tubos (Pipes) y FIFOs
- Tubos y Comunicación Entre Procesos
- popen() y pclose()
- pipe()
- Tubos Nombrados (FIFOs)
- splice(), vmsplice() y tee()
- Laboratorios
Entrada/Salida Asincrónica **
- ¿Qué es la Entrada/Salida Asincrónica?
- La API de Entrada/Salida Asincrónica POSIX
- Implementación en Linux
- Laboratorios
Señales I
- ¿Qué son las Señales?
- Señales Disponibles
- Despacho de Señales
- Alarmas, Pausa y Sueño
- Configurar un Manejador de Señales
- Conjuntos de Señales
- sigaction()
- Laboratorios
Señales II
- Reentrancia y Manejadores de Señales
- Saltos y Retornos No Locales
- siginfo y sigqueue()
- Señales en Tiempo Real
- Laboratorios
Hilos POSIX I
- Multihilado bajo Linux
- Estructura Básica del Programa
- Crear y Destruir Hilos
- Señales y Hilos
- Forking vs. Threading
- Laboratorios
Hilos POSIX II
- Deadlocks y Condiciones de Carrera
- Operaciones de Mutex
- Semáforos
- Futexes
- Operaciones Condicionales
- Laboratorios
Redes y Sockets
- Capas de Red
- ¿Qué son los Sockets?
- Sockets de Flujo
- Sockets de Datagrama
- Sockets Raw
- Ordenación de Bytes
- Laboratorios
Sockets: Direcciones y Hosts
- Estructuras de Dirección de Sockets
- Convertir Direcciones IP
- Información del Host
- Laboratorios
Sockets: Puertos y Protocolos
- Información de Servicio de Puerto
- Información de Protocolo
- Laboratorios
Sockets: Clientes
- Secuencia Básica del Cliente
- socket()
- connect()
- close() y shutdown()
- Cliente UNIX
- Cliente Internet
- Laboratorios
Sockets: Servidores
- Secuencia Básica del Servidor
- bind()
- listen()
- accept()
- Servidor UNIX
- Servidor Internet
- Laboratorios
Sockets: Operaciones de Entrada/Salida
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laboratorios
Sockets: Opciones
- Obtener y Configurar Opciones de Sockets
- fcntl()
- ioctl()
- getsockopt() y setsockopt()
- Laboratorios
Sockets Netlink **
- ¿Qué son los Sockets Netlink?
- Abrir un Socket Netlink
- Mensajes Netlink
- Laboratorios
Sockets: Multiplexación y Servidores Concurrentes
- Multiplexación de Sockets y Entrada/Salida Asincrónica
- select()
- poll()
- pselect() y ppoll()
- epoll
- Entrada/Salida Asincrónica Activada por Señales
- Servidores Concurrentes
- Laboratorios
Comunicación Entre Procesos
- Métodos de IPC
- IPC POSIX
- IPC System V **
- Laboratorios
Memoria Compartida
- ¿Qué es la Memoria Compartida?
- Memoria Compartida POSIX
- Memoria Compartida System V **
- Laboratorios
Semáforos
- ¿Qué es un Semáforo?
- Semáforos POSIX
- Semáforos System V **
- Laboratorios
Marcas de Mensajes
- ¿Qué son las Marcas de Mensajes?
- Marcas de Mensajes POSIX
- Marcas de Mensajes System V **
- Laboratorios
Requerimientos
Este curso está dirigido a desarrolladores experimentados. Los estudiantes deben ser proficientes en la programación en C y estar familiarizados con las utilidades básicas de Linux y los editores de texto.
Audiencia
Este curso está dirigido a desarrolladores experimentados. Los estudiantes deben ser proficientes en la programación en C y estar familiarizados con las utilidades básicas de Linux y los editores de texto.
Nivel de Experiencia: Intermedio
28 Horas