Contacta con nosotros

Temario del curso

Introducción

  •  Objetivos
  •  Quién es usted
  •  The Linux Foundation
  •  Formación de Linux Foundation
  •  Programas de certificación e insignias digitales
  •  Distribuciones de Linux
  •  Plataformas
  •  Preparación de su sistema
  •  Uso y descarga de una máquina virtual
  •  Los cambios en Linux

Aspectos preliminares

  •  Procedimientos
  •  Normas y la LSB

Cómo trabajar en proyectos de OSS **

  •  Descripción general de cómo contribuir adecuadamente
  •  Manténgase cerca de la línea principal para garantizar seguridad y calidad
  •  Estudie y comprenda el ADN del proyecto
  •  Identifique el problema que desea resolver
  •  Identifique a los mantenedores y sus flujos de trabajo y métodos
  •  Obtenga retroalimentación temprana y trabaje de forma abierta
  •  Contribuya con fragmentos incrementales, no con grandes volcados de código
  •  Deje su ego en la puerta: no sea delicado
  •  Sea paciente, desarrolle relaciones a largo plazo y sea útil

Compiladores

  •  GCC
  •  Otros compiladores
  •  Principales opciones de gcc
  •  Preprocesador
  •  Entornos de desarrollo integrados (IDE)
  •  Laboratorios

Bibliotecas

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

Make

  •  Uso de make y Makefiles
  •  Construcción de proyectos grandes
  •  Reglas más complicadas
  •  Reglas integradas
  •  Laboratorios

Control de fuentes

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

Depuración y volcados de núcleo (core dumps)

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

Herramientas de depuración

  •  Obtención de la hora
  •  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 devueltos 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

E/S de archivos

  •  E/S de archivos UNIX
  •  Apertura y cierre
  •  Lectura, escritura y búsqueda
  •  E/S posicional y por vector
  •  Biblioteca de E/S estándar
  •  Soporte para archivos grandes (LFS)
  •  Laboratorios

Operaciones avanzadas de archivos

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

Tuberías y canales nombrados (FIFO)

  •  Tuberías y comunicación entre procesos
  •  popen() y pclose()
  •  pipe()
  •  Canales nombrados (FIFO)
  •  splice(), vmsplice() y tee()
  •  Laboratorios

E/S asíncrona **

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

Señales I

  •  ¿Qué son las señales?
  •  Señales disponibles
  •  Distribución de señales
  •  Alarmas, pausa y espera
  •  Configuración de un controlador de señales
  •  Conjuntos de señales
  •  sigaction()
  •  Laboratorios

Señales II

  •  Reentrancia y controladores de señales
  •  Saltos y devoluciones 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
  •  fork() frente a hilos
  •  Laboratorios

Hilos POSIX II

  •  Interbloqueos 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 transmisión (stream)
  •  Sockets de datagrama
  •  Sockets sin procesar (raw)
  •  Orden de bytes
  •  Laboratorios

Direcciones y hosts de sockets

  •  Estructuras de dirección de socket
  •  Conversión de direcciones IP
  •  Información del host
  •  Laboratorios

Puertos y protocolos de sockets

  •  Información de puertos de servicio
  •  Información del protocolo
  •  Laboratorios

Clientes de sockets

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

Servidores de sockets

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

Operaciones de entrada/salida de sockets

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

Opciones de sockets

  •  Obtención y configuración 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

Interleaving de sockets y servidores concurrentes

  •  E/S de sockets intercalada y asíncrona
  •  select()
  •  poll()
  •  pselect() y ppoll()
  •  epoll
  •  E/S controlada por señales y asíncrona
  •  Servidores concurrentes
  •  Laboratorios

Comunicación entre procesos

  •  Métodos de IPC
  •  IPC POSIX
  •  IPC del Sistema V**
  •  Laboratorios

Memoria compartida

  •  ¿Qué es la memoria compartida?
  •  Memoria compartida POSIX
  •  Memoria compartida del Sistema V**
  •  Laboratorios

Semáforos

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

Colas de mensajes

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

Requerimientos

Este curso está dirigido a desarrolladores con experiencia. Los estudiantes deben tener competencia en programación en C y familiaridad con las utilidades básicas de Linux y editores de texto.

Público objetivo

Este curso está dirigido a desarrolladores con experiencia. Los estudiantes deben tener competencia en programación en C y familiaridad con las utilidades básicas de Linux y editores de texto.

Nivel de experiencia: Intermedio

 28 Horas

Número de participantes


Precio por participante

Próximos cursos

Categorías Relacionadas