Фоновый баннер
linux-v2-www

Разработка драйверов устройств в ОС Linux


Ближайшие даты курсов:

24.04.2017
28.08.2017Москва

Цена: 24,490 

Продолжительность (дни/часы): 4/32

Подробнее о курсе

Краткое описание  курса
Этот курс предоставляет слушателям глубокие знания и навыки, необходимые для разработки драйверов устройств для ОС Linux.
Ядро Linux используется в большинстве современных смартфонов за счет применения в популярной платформе Android. Кроме того, не следует забывать и про лидирующее положение Linux в сегменте суперкомпьютеров (469 из топ 500 суперкомпьютеров под данным www.top500.org), второе место в сегменте интернет-серверов и высокую популярность в корпоративном сегменте. GNU Compilers Collection является лидером в списке аналогичного программного обеспечения по популярности среди средств разработки решений с открытым исходным кодом.

Получаемые знания и навыки
По окончании курса слушатели научатся

  • Понимать отличия драйверов устройств от прикладного ПО
  • Знать специфику и ограничения, присущие драйверам устройств
  • Понимать влияние ошибок в драйверах устройств на безопасность всей системы в целом
  • Понимать отличия в реализации символьных драйверов устройств от блочных
  • Знать особенности файловой системы /proc и специфику работы с ней
  • Понимать конкуренцию и ситуацию гонок в ядре, проблемы и их решения
  • Знать аспекты, связанные с совместимостью, специфику использования стандартных типов данных
  • Получите опыт, достаточный, чтобы начать работать в качестве системного программиста Linux

Предварительно рекомендуется прослушать курс(ы)

Краткое содержание курса
Модуль 1 — Ядро Linux 

  • Архитектура ядра Linux
  • Отличия разработки драйверов от прикладного ПО
  • Потенциальные проблемы с безопасностью
  • Лицензирование модулей ядра

Модуль 2 — Модули ядра Linux

  • Простейший модуль ядра
  • Знакомство с printk()
  • Сборка модулей ядра
  • Макроопределения __init и __exit
  • Вопросы документирования модулей
  • Передача модулю параметров командной строки
  • Модули, состоящие из нескольких файлов
  • Сборка модулей под существующее ядро

Модуль 3 — Модули ядра, пространства и устройства

  • Модули ядра и прикладные программы
  • Функции, которые доступны из модулей
  • Пространство пользователя и пространство ядра
  • Пространство имен
  • Адресное пространство
  • Старший и младший номер устройства

Модуль 4 — Символьные устройства

  • Файлы символьных устройств
  • Структура file_operations
  • Структура file
  • Регистрация устройства
  • Отключение устройства
  • Пример драйвера символьного устройства c доступом только на чтение
  • Специфика поддержки записи для символьных устройств
  • Пример драйвера символьного устройства c доступом на чтение и запись

Модуль 5 — Файловая система /proc

  • Особенность файловой системы /proc
  • Пример драйвера, создающего файл в /proc c доступом на чтение
  • Пример драйвера, создающего файл в /proc c доступом на чтение
  • Блокировка процессов при конкурентном доступе к устройству
  • Пример драйвера, приостанавливающего работу процессов

Модуль 6 — Управление памятью в ядре Linux

  • Специфика управления памятью в ядре Linux
  • Преобразование адреса в ядре
  • Отображение файла в память ядра
  • Управление отображением в память

Модуль 7 — Блочные устройства

  • Блочные устройства
  • Регистрация блочного устройства
  • Операции, поддерживаемые для блочных устройств
  • Обработка запросов к блочному устройству
  • Детали реализации блочного устройства
  • Пример драйвера блочного устройства

Модуль 8 — Семафоры

  • Конкуренция и ситуация гонок
  • Семафоры и мьютексы
  • Реализация семафора в ядре Linux
  • Семафоры на чтение и запись
  • Взаимоблокировки
  • Пример драйвера, использующего семафоры

Модуль 9 — Данные

  • Типы данных и структуры ядра
  • Специфика использования стандартных типов данных
  • Назначение типам данных явного размера
  • Специфичные типы данных
  • Аспекты, связанные с совместимостью
  • Измерение временных интервалов
  • Размер страницы
  • Порядок следования байт в словах
  • Выравнивание данных
  • Размер указателя

Отзывы по курсу