Programa del Curso

Introducción

  •  Objetivos
  •  ¿Quién eres?
  •  La Fundación Linux
  •  Linux Entrenamiento básico
  •  Programas de Certificación e Insignias Digitales
  •  Linux Distribuciones
  •  Plataformas
  •  Preparación del sistema
  •  Uso y descarga de una máquina virtual
  •  Las cosas cambian en Linux

Preliminares

  •  Procedimientos
  •  Las normas y la LSB

Cómo trabajar en proyectos OSS **

  •  Visión general sobre cómo contribuir adecuadamente
  •  Manténgase cerca de la línea principal para mayor seguridad y calidad
  •  Estudiar y comprender el ADN del proyecto
  •  Averigua qué picazón quieres Scratch
  •  Identificar a los mantenedores y sus flujos y métodos de trabajo
  •  Obtenga información temprana y trabaje al aire libre
  •  Contribuya con bits incrementales, no con volcados de código grandes
  •  Deja tu ego en la puerta: no seas delgado
  •  Sé paciente, desarrolla relaciones a largo plazo, sé servicial

Compiladores

  •  GCC
  •  Otros compiladores
  •  Principales opciones de gcc
  •  Preprocesador
  •  Entornos de Desarrollo Integrados (IDE)
  •  Laboratorios

Bibliotecas

  •  Bibliotecas estáticas
  •  Bibliotecas compartidas
  •  Enlaces a bibliotecas
  •  Cargador de enlaces dinámicos
  •  Laboratorios

Hacer

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

Control de código fuente

  •  Control de código fuente
  •  RCS y CVS
  •  Subversión
  •  Git
  •  Laboratorios

Depuración y volcados de memoria

  •  Gdb
  •  ¿Qué son los archivos de volcado de memoria?
  •  Producción de volcados de núcleo
  •  Examen de volcados de memoria
  •  Laboratorios

Herramientas de depuración

  •  Conseguir el tiempo
  •  Elaboración de perfiles 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

Memoria Management y asignación

  •  Memoria Management
  •  Asignación dinámica
  •  Ajuste 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 de registro en diario
  •  El sistema de archivos ext4/
  •  Laboratorios

E/S de archivos

  •  E/S de archivos UNIX
  •  Apertura y cierre
  •  Leer, escribir y buscar
  •  E/S posicionales y vectoriales
  •  Biblioteca de E/S estándar
  •  Compatibilidad con archivos grandes (LFS)
  •  Laboratorios

Operaciones avanzadas de archivos

  •  Funciones estadísticas
  •  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 del proceso
  •  Grupos de procesos
  •  El sistema de archivos proc
  •  InterProcess Communication (Métodos)
  •  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()
  •  Salir
  •  Constructores y destructores
  •  Espera
  •  Procesos demoníacos
  •  Laboratorios

Tuberías y Fifos

  •  Tuberías e InterProcess Communication
  •  popen() y pclose()
  •  pipe()
  •  Canalizaciones con nombre (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
  •  Linux Implementación
  •  Laboratorios

Señales  I

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

Señales  II

  •  Reentrada y manejadores de señales
  •  Saltos y devoluciones no locales
  •  siginfo y sigqueue()
  •  Señales en tiempo real
  •  Laboratorios

Hilos POSIX I  

  •  Subprocesos múltiples en Linux
  •  Estructura básica del programa
  •  Creación y destrucción de subprocesos
  •  Señales e hilos
  •  Bifurcación vs. enhebrado
  •  Laboratorios

Hilos  POSIX II

  •  Puntos muertos y condiciones de carrera
  •  Operaciones de exclusión mutua
  •  Semáforos
  •  Futexes
  •  Operaciones condicionales
  •  Laboratorios

Networking y enchufes

  •  Networking Capas
  •  ¿Qué son los enchufes?
  •  Sockets de flujo
  •  Sockets de datagramas
  •  Sockets sin procesar
  •  Orden de bytes
  •  Laboratorios

Sockets  , direcciones y hosts

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

Sockets  , puertos y protocolos

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

Clientes de sockets  

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

Servidores de sockets  

  •  Secuencia básica del servidor
  •  bind()
  •  escuchar()
  •  aceptar()
  •  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 zócalos  

  •  Obtención y configuración de 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 simultáneos  

  •  E/S de socket multiplexada y asíncrona
  •  select()
  •  poll()
  •  pselect() y ppoll()
  •  epoll
  •  E/S asíncronas y controladas por señal
  •  Servidores simultáneos
  •  Laboratorios

Inter Proceso Communication

  •  Métodos de la CIP
  •  POSIX IPC
  •  Sistema V IPC**
  •  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 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


Comienza

Termina


Las fechas están sujetas a disponibilidad y tienen lugar entre 09:30 y 16:30.

Precio por participante

Cursos Relacionados

Categorías Relacionadas