LINUX-DEV-KERN. Разработка модулей ядра Linux [2022] [Высшая инженерная школа СПбПУ] [Егор Орлов]

Bot

Администратор
Команда форума
23 Янв 2020
191,095
3,078
113
LINUX-DEV-KERN. Разработка модулей ядра Linux [2022]
Высшая инженерная школа СПбПУ (Санкт-Петербургский Политехнический Университет)
Егор Орлов
Курс "Разработка модулей ядра Linux" посвящен изучению основных принципов функционирования ядра ОС Linux, способам расширения функциональности ядра с помощью модулей, принципам взаимодействия с подсистемами ядра и компонентами аппаратного обеспечения. Большое внимание уделяется синхронизации доступа к данным, управлению памятью и эффективности использования процессорного времени.

После окончания данного курса слушатели будут обладать знаниями по следующим направлениям:

1. Основные принципы функционирования ядра ОС;
2. Настройка параметров, компиляция и сборка ядра;
3. Структура модуля ядра, управление функционированием модулей;
4. Отладка и получение информации о состоянии модуля;
5. Взаимодействие модуля с другими компонентами ядра;
6. Взаимодействие модуля с аппаратным обеспечением.

К числу полученных практических навыков, полученных после окончания данного курса, следует отнести:
1. Проектирование и реализацию модулей ядра Linux.

Спойлер: Содержание
Модуль 1. Архитектура ядра Linux.
  • Классификация ядер ОС.
  • Основные принципы работы ядра Linux.
  • Структура ядра Linux.
Модуль 2. Компиляция, сборка и установка ядра.
  • Сбор сведений о системе.
  • Конфигурирование ядра.
  • Компиляция и сборка ядра.
  • Установка ядра и конфигурирование загрузчика.
  • Настройка параметров времени выполнения.
Модуль 3. Основные сведения о модулях ядра.
  • Структура модуля.
  • Параметры модуля.
  • Компиляция модуля.
  • Установка и управление модулями.
Модуль 4. Отладка модулей.
  • Вывод отладочных сообщений.
  • Сообщения “kernel oops”.
  • Интерфейс с файловой системой procfs.
  • Использование отладчиков.
Модуль 5. Символьные устройства.
  • Основные структуры данных.
  • Регистрация символьного устройства.
  • Реализация интерфейса с файловой системой.
  • Реализация вызова ioctl.
Модуль 6. Реализация моделей ввода-вывода.
  • Блокируемый ввод-вывод.
  • Неблокируемый ввод-вывод.
  • Синхронное мультиплексирование.
  • Ввод-вывод, управляемый сигналом.
Модуль 7. Синхронизация доступа к данным.
  • Спин – блокировки.
  • Мьютексы.
  • Seqlock –блокировки.
  • Атомарные переменные.
Модуль 8. Измерение времени.
  • Таймерные тики.
  • Циклы процессора.
  • Системное время.
Модуль 9. Функции отложенного выполнения.
  • Таймеры.
  • Тасклеты.
  • Очереди выполнения.
Модуль 10. Управление памятью ядра.
  • Распределение памяти в ядре.
  • Выделение произвольных областей памяти.
  • Создание и управление кэшами объектов.
  • Операции со страницами памяти.
Модуль 11. Взаимодействие с аппаратными устройствами.
  • Операции с портами ввода-вывода.
  • Ввод-вывод, отображённый на память.
  • Регистрация обработчиков прерываний.
  • Ввод-вывод, управляемый прерываниями.

Продажник