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.
Programa del Curso
Introducción
- Objetivos
- Quién Eres
- The Linux Foundation (La Fundación Linux)
- Formación de la Fundación Linux
- Programas de Certificación y Digital Badging (Plaqueta Digital)
- Distribuciones de Linux
- Plataformas
- Preparando Tu Sistema
- Usar y Descargar una Máquina Virtual
- Las cosas cambian en Linux
Preliminares
- Procedimientos
- Estándares y LSB (LSB)
Cómo Trabajar en Proyectos de Código Abierto **
- Visión General sobre Cómo Contribuir Propiamente
- Mantente Cerca del Mainline para Seguridad y Calidad
- Estudia y Entiende el ADN del Proyecto
- Determina Qué Necesitas Resolver
- Identifica Mantenedores y Sus Flujos de Trabajo y Métodos
- Obtén Entrada Temprana y Trabaja en Público
- Contribuye Con Peces, No con Grandes Vertidos de Códigos
- Deja tu Ego en la Puerta: No Seas Delicado
- Sé Paciente, Desarrolla Relaciones a Largo Plazo, Sé Ayudante
Compiladores
- GCC
- Otros Compiladores
- Opciones Principales de GCC
- Preprocesador
- Entornos de Desarrollo Integrados (IDE)
- Laboratorios
Bibliotecas
- Bibliotecas Estáticas
- Bibliotecas Compartidas
- Enlazado a Bibliotecas
- Cargador de Enlace Dinámico
- Laboratorios
Make
- Usar make y Makefiles
- Construcción de Proyectos Grandes
- Reglas más Complicadas
- Reglas Integradas
- Laboratorios
Control de Versiones
- Control de Versiones
- RCS y CVS
- Subversion
- git
- Laboratorios
Depuración y Volcados de Core
- gdb
- ¿Qué son los Archivos de Volcado de Core?
- Produciendo Volcados de Core
- Examinando Volcados de Core
- Laboratorios
Herramientas de Depuración
- Obtener el Tiempo
- Perfomance y Perfilado
- valgrind
- Laboratorios
Llamadas al Sistema
- Llamadas al Sistema vs. Funciones de Biblioteca
- Cómo se Realizan las Llamadas al Sistema
- Valores Devueltos y Números de Error
- Laboratorios
Gestión y Asignación de Memoria
- Gestión de Memoria
- Asignación Dinámica
- Afinado 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 de Transacciones
- El Sistema de Archivos ext4/
- Laboratorios
E/S de Archivos
- E/S de Archivos UNIX
- Abrir y Cerrar
- Lectura, Escritura y Búsqueda
- E/S Posicional y Vectorial
- Biblioteca E/S Estándar
- Compatibilidad con Archivos Grandes (Large File Support)
- Laboratorios
Operaciones de Archivos Avanzadas
- 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 Proceso
- Grupos de Procesos
- El Sistema de Archivos proc
- Métodos de Comunicación Interproceso (IPC)
- Laboratorios
Procesos II
- Usar system() para Crear un Proceso
- Usar fork() para Crear un Proceso
- Usar exec() para Crear un Proceso
- Usando clone()
- Salida
- Constructores y Destructores
- Espera
- Procesos Demonio
- Laboratorios
Tuberías y FIFOs
- Tuberías y Comunicación Interproceso
- popen() y pclose()
- pipe()
- Tuberías Nombradas (FIFOs)
- splice(), vmsplice() y tee()
- Laboratorios
I/O Asíncrona**
- ¿Qué es la I/O Asíncrona?
- La API de I/O Asíncrona POSIX
- Implementación en Linux
- Laboratorios
Señales I
- ¿Qué son las Señales?
- Señales Disponibles
- Distribución de Señales
- Alarma, Pausa y Sueno (Sleep)
- Configurar un Manejador de Señales
- Conjuntos de Señales
- sigaction()
- Laboratorios
Señales II
- Reentrancia y Manejadores de Señales
- Saltos y Devoluciones No Locales (NonLocal)
- siginfo y sigqueue()
- Señales en Tiempo Real
- Laboratorios
Hilos POSIX I
- Multiprocesamiento bajo Linux
- Estructura de Programa Básica
- Creación y Destrucción de Hilos
- Señales y Hilos
- Forking vs. Hilado (Threading)
- Laboratorios
Hilos POSIX II
- Ligaduras y Condiciones de Carrera (Deadlocks and Race Conditions)
- Operaciones con Mutexes
- Semáforos
- Futexes
- Operaciones Condicionales
- Laboratorios
Red y Sockets
- Capas de Red
- ¿Qué son los Sockets?
- Sockets de Flujo (Stream Sockets)
- Sockets de Datagrama (Datagram Sockets)
- Sockets Raw
- Ordenación de Bytes
- Laboratorios
Sockets Direcciones y Hosts
- Estructuras de Dirección de Socket
- Conversión de Direcciones IP
- Información del Host
- Laboratorios
Sockets Puertos y Protocolos
- Información de Puertos de Servicio
- Información del 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 (I/O)
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laboratorios
Sockets Opciones
- Obtener y Configurar Opciones de Socket
- fcntl()
- ioctl()
- getsockopt() y setsockopt()
- Laboratorios
Sockets Netlink**
- ¿Qué son los Sockets Netlink?
- Abrir un Socket Netlink
- Mensajes de Netlink
- Laboratorios
Sockets Multiplexación y Servidores Concurrentes
- Entrada/Salida (I/O) de Sockets Multiplexadas y Asíncronas
- select()
- poll()
- pselect() y ppoll()
- epoll
- I/O Controlada por Señales y Asíncrona
- Servidores Concurrentes
- Laboratorios
Comunicación Interproceso (IPC)
- 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
Colas de Mensajes
- ¿Qué son las Colas de Mensajes?
- Colas de Mensajes POSIX
- Colas de Mensajes System V**
- Laboratorios
Requerimientos
Este curso es para desarrolladores experimentados. Los estudiantes deben ser competentes en programación en C y estar familiarizados con las utilidades básicas Linux y los editores de texto.
Audiencia
Este curso es para desarrolladores experimentados. Los estudiantes deben ser competentes en programación en C y estar familiarizados con las utilidades básicas Linux y los editores de texto.
Nivel de experiencia: Intermedio
28 Horas