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

Número de participantes


Precio por Participante​

Próximos cursos

Categorías Relacionadas