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

Número de participantes


Precio por Participante​

Próximos cursos

Categorías Relacionadas