Разработка драйверов устройств в Linux / TeachMePlease

Требуется подтверждение e-mail адреса!

Требуется подтверждение e-mail адреса! Письмо с инструкцией выслано на адрес электронной почты, указанный при регистрации

Cookies

Отключены cookie-файлы!

Для корректной работы сайта необходимо разрешить использование cookie-файлов.

Cookies

Для оптимизации дизайна и быстродействия наших веб-сайтов используются cookie-файлы. Продолжая посещение веб-сайта, вы соглашаетесь на использование cookie-файлов.

Ок
Категории
Категории

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

Возраст
Любой
Уровень подготовки
Средний
Язык
Русский
Контакты организации
specialist.ru
  • Описание курса
  • Чему вы научитесь?
  • Программа
  • Требования к участникам
Описание курса

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

Ядро Linux используется в большинстве современных смартфонов за счет применения в популярной платформе Android. Кроме того, не следует забывать и про лидирующее положение Linux в сегменте суперкомпьютеров, второе место в сегменте интернет‑серверов и высокую популярность в корпоративном сегменте. GNU Compilers Collection является лидером в списке аналогичного программного обеспечения по популярности среди средств разработки решений с открытым исходным кодом. 

Курс рассчитан на программистов, окончивших курс «Linux (Ubuntu). Уровень 2. Программирование в Linux на C» или имеющих эквивалентную подготовку.

Окончив данный курс, вы получите опыт, достаточный, чтобы начать работать в качестве системного программиста Linux.

Программа курса соответствует требованиям профессионального стандарта «Программист».

Продолжительность курса - 40 ак. ч.

Чему вы научитесь?
Понимать отличия драйверов устройств от прикладного ПО
Знать специфику и ограничения, присущие драйверам устройств
Понимать влияние ошибок в драйверах устройств на безопасность всей системы в целом
Понимать отличия в реализации символьных драйверов устройств от блочных
Знать особенности файловой системы /proc и специфику работы с ней
Понимать конкуренцию и ситуацию гонок в ядре, проблемы и их решения
Знать аспекты, связанные с совместимостью, специфику использования стандартных типов данных
Программа
Модуль 1. Ядро Linux
  • Модуль
  • Онлайн
Архитектура ядра linux Отличия разработки драйверов от прикладного ПО Потенциальные проблемы с безопасностью Лицензирование модулей ядра
Модуль 2. Модули ядра Linux
  • Модуль
  • Онлайн
Простейший модуль ядра Знакомство с printk() Сборка модулей ядра Макроопределения __init и __exit Вопросы документирования модулей Передача модулю параметров командной строки Модули, состоящие из нескольких файлов
Модуль 3. Модули ядра, пространства и устройства
  • Модуль
  • Онлайн
Модули ядра и прикладные программы Функции, которые доступны из модулей Пространство пользователя и пространство ядра Пространство имен Адресное пространство Старший и младший номер устройства
Модуль 4. Данные
  • Модуль
  • Онлайн
Типы данных и структуры ядра Специфика использования стандартных типов данных Назначение типам данных явного размера Специфичные типы данных Аспекты, связанные с совместимостью Размер страницы Порядок следования байт в словах Выравнивание данных Размер указателя
Модуль 5. Символьные устройства
  • Модуль
  • Онлайн
Файлы символьных устройств Структура file_operations Структура file Регистрация устройства Отключение устройства Пример драйвера символьного устройства c доступом только на чтение Специфика поддержки записи для символьных устройств Пример драйвера символьного устройства c доступом на чтение и запись
Модуль 6. Файловая система /proc
  • Модуль
  • Онлайн
Особенность файловой системы /proc Пример драйвера, создающего файл в /proc c доступом на чтение Блокировка процессов при конкурентном доступе к устройству Пример драйвера, приостанавливающего работу процессов
Модуль 7. Управление памятью в ядре Linux
  • Модуль
  • Онлайн
Специфика управления памятью в ядре Linux Преобразование адреса в ядре Динамическое распределение памяти в ядре
Модуль 8. Блочные устройства
  • Модуль
  • Онлайн
Блочные устройства Регистрация блочного устройства Особенности реализации блочного устройства
Модуль 9. Семафоры и синхронизация
  • Модуль
  • Онлайн
Конкуренция и ситуация гонок Семафоры и мьютексы Реализация семафора в ядре Linux Семафоры на чтение и запись Взаимоблокировки Пример драйвера, использующего семафоры Измерение временных интервалов
Модуль 10. Реализация доступа к периферийному устройству
  • Модуль
  • Онлайн
Практическая работа
Требования к участникам
Успешное окончание курса Linux (Ubuntu). Уровень 2. Программирование в Linux на C или эквивалентная подготовка.

Дипломы, сертификаты

Организация