Contacta con nosotros

Temario del curso

Introducción

  • Objetivos
  • Sobre usted
  • La Linux Foundation
  • Capacitación de la Linux Foundation
  • Programas de certificación y distintivos digitales
  • Distribuciones de Linux
  • Plataformas
  • Preparación de su sistema
  • Uso y descarga de una máquina virtual
  • Cambios en Linux

Preparativos

  • Procedimientos
  • Normas y el LSB

Cómo trabajar en proyectos de código abierto (OSS) **

  • Resumen sobre cómo contribuir adecuadamente
  • Manténgase cerca de la rama principal para garantizar seguridad y calidad
  • Estudie y comprenda el ADN del proyecto
  • Identifique qué problema desea resolver
  • Identifique a los mantenedores, sus flujos de trabajo y métodos
  • Obtenga retroalimentación temprana y trabaje de forma transparente
  • Contribuya con fragmentos incrementales, no con grandes volcados de código
  • Deje su ego en la puerta: no sea sensible a las críticas
  • Sea paciente, desarrolle relaciones a largo plazo y brinde ayuda

Compiladores

  • GCC
  • Otros compiladores
  • Opciones principales de gcc
  • Preprocesador
  • Entornos de desarrollo integrado (IDE)
  • Laboratorios

Bibliotecas

  • Bibliotecas estáticas
  • Bibliotecas compartidas
  • Enlace a bibliotecas
  • Cargador de enlace dinámico
  • Laboratorios

Make

  • Uso de make y archivos Makefile
  • Construcción de proyectos grandes
  • Reglas más complejas
  • Reglas integradas
  • Laboratorios

Control de versiones

  • Control de versiones
  • RCS y CVS
  • Subversion
  • git
  • Laboratorios

Depuración y volcados de núcleo

  • gdb
  • ¿Qué son los archivos de volcado de núcleo?
  • Generación de volcados de núcleo
  • Análisis de volcados de núcleo
  • Laboratorios

Herramientas de depuración

  • Obtención del tiempo
  • Perfilado y rendimiento
  • valgrind
  • Laboratorios

Llamadas al sistema

  • Llamadas al sistema frente a 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 UNIX
  • Apertura y cierre
  • Lectura, escritura y búsqueda
  • Entrada/Salida posicional y vectorial
  • Biblioteca estándar de entrada/salida
  • Soporte para archivos grandes (LFS)
  • Laboratorios

Operaciones avanzadas con archivos

  • Funciones stat
  • Funciones de directorio
  • inotify
  • Mapeo de memoria
  • flock() y fcntl()
  • Creación de 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

  • Uso de system() para crear un proceso
  • Uso de fork() para crear un proceso
  • Uso de exec() para crear un proceso
  • Uso de clone()
  • Salida
  • Constructores y destructores
  • Espera
  • Procesos demonio
  • Laboratorios

Pipes y FIFOs

  • Pipes y comunicación entre procesos
  • popen() y pclose()
  • pipe()
  • Pipes con nombre (FIFOs)
  • splice(), vmsplice() y tee()
  • Laboratorios

Entrada/Salida asíncrona **

  • ¿Qué es la entrada/salida asíncrona?
  • La API de entrada/salida asíncrona de POSIX
  • Implementación en Linux
  • Laboratorios

Señales I

  • ¿Qué son las señales?
  • Señales disponibles
  • Envío de señales
  • Alarmas, pausas y suspensión
  • Configuración de 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 de tiempo real
  • Laboratorios

Hilos POSIX I

  • Multihilo en Linux
  • Estructura básica del programa
  • Creación y destrucción de hilos
  • Señales e hilos
  • forking frente a threading
  • Laboratorios

Hilos POSIX II

  • Deadlocks y condiciones de carrera
  • Operaciones con mutex
  • Semáforos
  • Futexes
  • Operaciones condicionales
  • Laboratorios

Redes y sockets

  • Capas de red
  • ¿Qué son los sockets?
  • Sockets de flujo
  • Sockets de datagrama
  • Sockets crudos
  • Orden 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 de protocolos
  • Laboratorios

Sockets: clientes

  • Secuencia básica de cliente
  • socket()
  • connect()
  • close() y shutdown()
  • Cliente UNIX
  • Cliente de Internet
  • Laboratorios

Sockets: servidores

  • Secuencia básica de servidor
  • bind()
  • listen()
  • accept()
  • Servidor UNIX
  • Servidor de Internet
  • Laboratorios

Sockets: operaciones de entrada/salida

  • write(), read()
  • send(), recv()
  • sendto(), recvfrom()
  • sendmsg(), recvmsg()
  • sendfile()
  • socketpair()
  • Laboratorios

Sockets: opciones

  • Obtención y establecimiento de opciones de socket
  • fcntl()
  • ioctl()
  • getsockopt() y setsockopt()
  • Laboratorios

Sockets netlink **

  • ¿Qué son los sockets netlink?
  • Apertura de un socket netlink
  • Mensajes netlink
  • Laboratorios

Sockets: multiplexación y servidores concurrentes

  • Entrada/salida de socket multiplexada y asíncrona
  • select()
  • poll()
  • pselect() y ppoll()
  • epoll
  • Entrada/salida impulsada por señales y asíncrona
  • Servidores concurrentes
  • Laboratorios

Comunicación entre procesos

  • Métodos de IPC
  • IPC de POSIX
  • IPC de System V **
  • Laboratorios

Memoria compartida

  • ¿Qué es la memoria compartida?
  • Memoria compartida de POSIX
  • Memoria compartida de System V **
  • Laboratorios

Semáforos

  • ¿Qué es un semáforo?
  • Semáforos de POSIX
  • Semáforos de System V **
  • Laboratorios

Colas de mensajes

  • ¿Qué son las colas de mensajes?
  • Colas de mensajes de POSIX
  • Colas de mensajes de System V **
  • Laboratorios

Requerimientos

Este curso está dirigido a desarrolladores con experiencia. Los estudiantes deben dominar la programación en C y conocer las utilidades básicas de Linux y los editores de texto.

Público objetivo

Este curso está dirigido a desarrolladores con experiencia. Los estudiantes deben dominar la programación en C y conocer 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