Разработка драйверов под Linux и Android

Linux and Android drivers development



Разработка драйверов под Linux и Android
Код: LINDR
Направление обучения: Свободное программное обеспечение
Продолжительность: 5 дней/ 40 часов
Цена для физ. лиц: 21600 руб.
Цена для юр. лиц: 24000 руб.

Скачать прайс-лист (PDF)

Описание образовательной программы

По окончанию обучения слушатели будут:

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

Цель курса

Дать знания и навыки, необходимые для разработки драйверов устройств для ОС Linux

Целевая аудитория

Курс рассчитан на программистов окончивших курс «Программирование на языке C (Си)» или имеющих эквивалентную подготовку.

Необходимая подготовка

«Программирование на языке C (Си)» или эквивалентная подготовка.

Содержание

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

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

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

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

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

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

  Модуль 7
       
  •  блочные устройства
  •  регистрация блочного устройства
  •  операции, поддерживаемые для блочных устройств
  •  обработка запросов к блочному устройству
  •  детали реализации блочного устройства
  •  пример драйвера блочного устройства

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

  Модуль 9
       
  • типы данных и структуры ядра
  • специфика использования стандартных типов данных
  • назначение типам данных явного размера
  • специфичные типы данных
  • аспекты, связанные с совместимостью
  • измерение временных интервалов
  • размер страницы
  • порядок следования байт в словах
  • выравнивание данных
  • размер указателя

Получаемый документ

Сертификат.jpg


Оставить отзыв
Об этом курсе отзывов пока нет. Будьте первым.

Расписание


К сожалению, в этом курсе нет ближайших дат для бронирования, но вы можете запросить информацию.

Курс доступен в следующих пакетах: