Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Temario del curso
Introducción
- breve historia de GNU/Linux
- licenciamiento
- versionado del kernel
- ciclo de lanzamiento
- árboles de kernel
- mainline
- kernel vs. espacio de usuario
- mecanismo vs. política
- alternativas a los controladores del kernel
- RTOS vs. Linux
Administración de Memoria
- memoria virtual vs. memoria física
- asignación de memoria en el kernel
- páginas
- zonas
- API
- slab
Parche del Kernel
- ciclo de vida
- git
- código fuente del kernel
- crear parche
- verificar parche
- corregir parche
- enviar parche
- código auditado
Módulos del Kernel
- obtener fuentes del kernel
- configurar/compilar/instalar
- controladores de dispositivos (enlazados estáticamente, cargados en tiempo de ejecución)
- init/exit
- licenciamiento
- EXPORT SYMBOL GPL
- makefile fuera del árbol
- module-init-tools
- módulo en el árbol del kernel
- Kconfig
- paso de parámetros
- sparse
Controladores de Caracteres
- arquitectura
- interfaz usuario/kernel
- subsistema I/O
- VFS
- sysfs (dispositivos, bus, controladores, clases),
- kobject/ktype/kset
- modelo de controlador del kernel de Linux
- archivos de dispositivo
-
controlador de caracteres
- inicialización
- registro
- open, release
- cdev, cdev add, cdev del,...
- números mayor/menor
- udev, udevmonitor, udevadm
Operaciones Avanzadas de Controladores de Caracteres
- ioctl
- unlocked ioctl
- compat ioctl
- API de espacio de usuario
- API de espacio del kernel
- ciclo de vida del proceso
- durmiendo/bloqueando
- durmiendo/despertando
- cola de espera
- manada rugiente
- poll/select
Depuración del Kernel
- depuración
-
depuración del kernel
- búsqueda binaria con git
- soporte de depuración desde el kernel
- printk syslogd, klogd, niveles de registro, límite de velocidad, niveles de depuración, subsistemas de depuración selectiva
- depuración consultando debugfs
- depuración de oops, afirmar oops
- Magic SysRq Key
- kgdb/kdb
- JTAG
Seguimiento
- gcov
- lcov
- oprofile
-
ftrace
- trazador nop
- trazador de funciones
- trazador de cambio de programación
- trazador de gráficos de funciones
- trazador dinámico
- trace-cmd/kernelshark
- perf
- LTTng
Interrupciones
- interrupciones vs. sondeo
- interrupción
- secciones de programa
- reentrancia
- eventos
- manejador de interrupción
- manejador compartido de interrupciones
- flujo de interrupción
- control de interrupción
Trabajo Diferido
- mitad superior/inferior
- softirqs
- tasklets
- colas de trabajo
- interrupciones en hilos
Concurrency
- región/sección crítica
- operaciones atómicas
- condición de carrera
- sincronización
- bloqueo
- soluciones de bloqueo
- deadlocks
- contention
- ¿Qué bloquear?
-
¿Qué se puede usar?
- operaciones atómicas
- spin locks
- spin locks de lectura-escritura
- semáforo
- semáforo binario
- mutex
- semáforo de lectura-escritura
- variables de completado
- locks secuenciales
- deshabilitar la preempción
- ordenación y barreras
Tiempo
- HZ
- Jiffies
- retrasos grandes/pequeños
- temporizadores del kernel
Hardware I/O
- Puertos I/O
- Memoria I/O
- ¿Cómo lidiar con los efectos secundarios al acceder a registros?
Comunicación Usuario-Kernel
- put(get)_user()
- copy to(from)_user()
- E/S del Kernel
- mapeo de memoria
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portabilidad
- tamaño de palabra
- tipos opacos
- char signado/sin signo
- alineación de datos
- promoción integral
- reutilización de código
- endianness
- tick del sistema
- tamaño de página
- ordenación de instrucciones
- SMP/preempción/memoria alta
Salvo indicación contraria, el contenido y este esquema del curso están licenciados bajo Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0).
Requerimientos
- Familiaridad básica con el uso de un sistema GNU/Linux como usuario final
- Familiaridad básica con una línea de comandos shell
- Conocimientos básicos de desarrollo en espacio de usuario / aplicaciones
- Conocimientos intermedios de programación en C
- Debería haber asistido a Arquitectura de Sistemas Embebidos GNU/Linux antes (¡altamente recomendado!) y/o tener un buen entendimiento de los temas allí expuestos
35 Horas
Testimonios (3)
Todo está bien.
Adrian Rybka - SEOyon
Curso - Flutter Development Bootcamp with Dart
Traducción Automática
Información adicional muy útil
Grzegorz - Comp S.A.
Curso - BLoC Pattern
Traducción Automática
Su conocimiento y paciencia.
Chrisna - Agricatural Research Council
Curso - Ionic 4 and Angular for Developers
Traducción Automática