Sinopsis del curso
RHD236 Aspectos del interior del núcleo de Red Hat es un curso intensivo de carácter práctico diseñado para examinar con detalle la arquitectura del núcleo de Linux, incluidos la planificación de procesos, la gestión de memoria, los sistemas de archivo y el control de los dispositivos periféricos. El curso RHD236 se imparte en una sala con ordenadores equipados con la distribución actual de Linux. Este curso de cinco días de duración proporciona formación práctica, conceptos y demostraciones aplicadas sobre prácticas de laboratorio y ejercicios de programación realistas.
Descripción del curso RHD236 Aspectos del interior del núcleo de Red Hat
Objetivo del curso:
Tras completar el curso, los alumnos deben sentirse cómodos a la hora de modificar el núcleo de Linux para adaptarlo a las necesidades de su hardware o sus aplicaciones, y para desarrollar controladores de dispositivos. También dispondrán de las herramientas necesarias para migrar aplicaciones existentes y controladores de dispositivos a Linux, principalmente desde sistemas de tipo Unix.
Dirigido a:
Este curso va dirigido a desarrolladores con experiencia que desee obtener unos conocimientos avanzados de la arquitectura de Linux, incluidos los núcleos más nuevos.
Los alumnos obtendrán un examen con detalle de la arquitectura del núcleo de Linux, incluidos la planificación de procesos, la gestión de memoria, los sistemas de archivo y el control de los dispositivos periféricos. Tras completar el curso, los alumnos se sentirán cómodos a la hora de modificar el núcleo de Linux para adaptarlo a las necesidades de su hardware o sus aplicaciones, y para desarrollar controladores de dispositivos. También dispondrán de las herramientas necesarias para migrar aplicaciones existentes y controladores de dispositivos a Linux, principalmente desde sistemas de tipo Unix. En este curso no se describen las redes.
Requisitos previos:
Superar el curso RHD221 (Controladores de dispositivos de Red Hat) o disponer de experiencia equivalente, incluido:
Alto nivel de competencia en la programación en C
Conocimiento básico de herramientas tales como vi, emacs y utilidades de archivos.
El conocimiento de la programación de sistemas en un entorno Unix o Linux es obligatorio; se recomienda tener conocimientos de programación de hardware a nivel de registro.
Asimilación de los conceptos básicos de los sistemas operativos.
Alguna experiencia previa en la ejecución de Linux, la compilación e instalación de núcleos, etc.
No es esencial tener experiencia en la escritura de controladores de dispositivos y módulos de núcleo, aunque puede resultar muy útil.
Temario:
* Arquitectura del núcleo
* Disposición y configuración del núcleo
* Estilo del núcleo y consideraciones generales
* Módulos
* Métodos de sincronización
* Inicialización del núcleo
* Mediciones de tiempos
* Temporizadores de núcleo dinámico
* Colas de espera
* Colas de tareas
* Tasklets
* Técnicas de depuración
* Sistema de archivos /proc
* Interfaz seq_file
* Procesos
* Límites y capacidades de los procesos
* Planificación de procesos
* Interrupciones y excepciones
* Llamadas a sistema
* Señales
* Linux incorporado
* Controladores de dispositivos
* Espacio usuario <-> núcleo
* Controladores de caracteres
* Direccionamiento de memoria
* Gestión de memoria
* Proceso del espacio de direccionamiento
* Cachés de disco
* Espacio de intercambio
* E/S Raw y E/S de núcleo
* Asignación de memoria
* E/S asíncrona
* Sistema de archivos virtual (VFS)
* Sistema de archivos ext2/ext3
* Sistemas de archivos Journalling