LINUX-DEV-KERN. Разработка модулей ядра Linux [2022]
Высшая инженерная школа СПбПУ (Санкт-Петербургский Политехнический Университет)
Егор Орлов
Курс "Разработка модулей ядра Linux" посвящен изучению основных принципов функционирования ядра ОС Linux, способам расширения функциональности ядра с помощью модулей, принципам взаимодействия с подсистемами ядра и компонентами аппаратного обеспечения. Большое внимание уделяется синхронизации доступа к данным, управлению памятью и эффективности использования процессорного времени.
После окончания данного курса слушатели будут обладать знаниями по следующим направлениям:
- Основные принципы функционирования ядра ОС;
- Настройка параметров, компиляция и сборка ядра;
- Структура модуля ядра, управление функционированием модулей;
- Отладка и получение информации о состоянии модуля;
- Взаимодействие модуля с другими компонентами ядра;
- Взаимодействие модуля с аппаратным обеспечением.
1. Проектирование и реализацию модулей ядра Linux.
Модуль 1. Архитектура ядра Linux.
- Классификация ядер ОС.
- Основные принципы работы ядра Linux.
- Структура ядра Linux.
- Сбор сведений о системе.
- Конфигурирование ядра.
- Компиляция и сборка ядра.
- Установка ядра и конфигурирование загрузчика.
- Настройка параметров времени выполнения.
- Структура модуля.
- Параметры модуля.
- Компиляция модуля.
- Установка и управление модулями.
- Вывод отладочных сообщений.
- Сообщения “kernel oops”.
- Интерфейс с файловой системой procfs.
- Использование отладчиков.
- Основные структуры данных.
- Регистрация символьного устройства.
- Реализация интерфейса с файловой системой.
- Реализация вызова ioctl.
- Блокируемый ввод-вывод.
- Неблокируемый ввод-вывод.
- Синхронное мультиплексирование.
- Ввод-вывод, управляемый сигналом.
- Спин – блокировки.
- Мьютексы.
- Seqlock –блокировки.
- Атомарные переменные.
- Таймерные тики.
- Циклы процессора.
- Системное время.
- Таймеры.
- Тасклеты.
- Очереди выполнения.
- Распределение памяти в ядре.
- Выделение произвольных областей памяти.
- Создание и управление кэшами объектов.
- Операции со страницами памяти.
- Операции с портами ввода-вывода.
- Ввод-вывод, отображённый на память.
- Регистрация обработчиков прерываний.
- Ввод-вывод, управляемый прерываниями.
Продажник