Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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