Разработка драйверов устройств в Linux
Linux device drivers development
09.02.07 Информационные системы и программирование
Цель курса: — дать знания и навыки, необходимые для разработки драйверов устройств для ОС Linux. Окончив данный курс, вы получите опыт, достаточный, чтобы начать работать в качестве системного программиста Linux.
Ближайший курс
ежедневно
18:30 — 21:30
29 990 ₽ ₽
Преподаватели
Седых Игорь Вячеславович
Описание курса
Цель курса: — дать знания и навыки, необходимые для разработки драйверов устройств для ОС Linux.
Ядро Linux используется в большинстве современных смартфонов за счет применения в популярной платформе Android. Кроме того, не следует забывать и про лидирующее положение Linux в сегменте суперкомпьютеров (469 из топ 500 суперкомпьютеров под данным www.top500.org), второе место в сегменте интернет-серверов и высокую популярность в корпоративном сегменте. GNU Compilers Collection является лидером в списке аналогичного программного обеспечения по популярности среди средств разработки решений с открытым исходным кодом.
Курс рассчитан на программистов, окончивших курс «Linux (Ubuntu). Уровень 2. Программирование в Linux на C» или имеющих эквивалентную подготовку.
Окончив данный курс, вы получите опыт, достаточный, чтобы начать работать в качестве системного программиста Linux.
Программа курса соответствует требованиям профессионального стандарта «Программист».
Вы научитесь
- понимать отличия драйверов устройств от прикладного ПО;
- знать специфику и ограничения, присущие драйверам устройств;
- понимать влияние ошибок в драйверах устройств на безопасность всей системы в целом;
- понимать отличия в реализации символьных драйверов устройств от блочных;
- знать особенности файловой системы /proc и специфику работы с ней;
- понимать конкуренцию и ситуацию гонок в ядре, проблемы и их решения;
- знать аспекты, связанные с совместимостью, специфику использования стандартных типов данных.
Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы.
Большинство выпускников наших курсов делают успешную карьеру и пользуются уважением работодателей.
Предварительная подготовка
Требуемая подготовка: Успешное окончание курса Linux (Ubuntu). Уровень 2. Программирование в Linux на C или эквивалентная подготовка.
Программа курса
- Архитектура ядра linux
- Отличия разработки драйверов от прикладного ПО
- Потенциальные проблемы с безопасностью
- Лицензирование модулей ядра
- Простейший модуль ядра
- Знакомство с printk()
- Сборка модулей ядра
- Макроопределения __init и __exit
- Вопросы документирования модулей
- Передача модулю параметров командной строки
- Модули, состоящие из нескольких файлов
- Модули ядра и прикладные программы
- Функции, которые доступны из модулей
- Пространство пользователя и пространство ядра
- Пространство имен
- Адресное пространство
- Старший и младший номер устройства
- Типы данных и структуры ядра
- Специфика использования стандартных типов данных
- Назначение типам данных явного размера
- Специфичные типы данных
- Аспекты, связанные с совместимостью
- Размер страницы
- Порядок следования байт в словах
- Выравнивание данных
- Размер указателя
- Файлы символьных устройств
- Структура file_operations
- Структура file
- Регистрация устройства
- Отключение устройства
- Пример драйвера символьного устройства c доступом только на чтение
- Специфика поддержки записи для символьных устройств
- Пример драйвера символьного устройства c доступом на чтение и запись
- Особенность файловой системы /proc
- Пример драйвера, создающего файл в /proc c доступом на чтение
- Блокировка процессов при конкурентном доступе к устройству
- Пример драйвера, приостанавливающего работу процессов
- Специфика управления памятью в ядре Linux
- Преобразование адреса в ядре
- Динамическое распределение памяти в ядре
- Блочные устройства
- Регистрация блочного устройства
- Особенности реализации блочного устройства
- Конкуренция и ситуация гонок
- Семафоры и мьютексы
- Реализация семафора в ядре Linux
- Семафоры на чтение и запись
- Взаимоблокировки
- Пример драйвера, использующего семафоры
- Измерение временных интервалов
Аудиторная нагрузка в классе с преподавателем: 40 ак. ч. + 20 ак. ч. бесплатно
По окончании обучения на курсе проводится итоговая аттестация. Аттестация проводится в виде теста на последнем занятии или на основании оценок практических работ, выполняемых во время обучения на курсе.
Преподаватели
Седых Игорь Вячеславович
Отзывы выпускников
Габец Тимур Георгиевич
Тема достаточно сложная, и если бы я не записался на этот курс, сам я бы вряд ли разобрался в данной теме.
Габец Тимур Георгиевич
Да, я бы посоветовал Linux-курсы своим коллегам на работе.
Габец Тимур Георгиевич
Курс хорош, хотелось бы больше уделить внимания написанию кода модулей ядра «с нуля», потому что переделывание «чужого» кода не позволяет в полной мере всё понять, и некоторые важные аспекты теряются. Моё пожелание — больше самостоятельного кода. Вероятно, правда, это потребует больше времени уделять на домашнее задание.
Шумов Антон Викторович
Очень радуют полученные практические навыки разработки
Туник Елена Николаевна
Все достаточно понятно и хорошо структурировано. Спасибо.
Расписание групп обучения
Данный курс вы можете пройти как в очном формате, так и дистанционно в режиме онлайн . Чтобы записаться на онлайн-обучение, в корзине измените тип обучения на «онлайн» и выберите удобную для вас группу.
Сортировать:
21.09.2020
02.10.2020
ежедневно вечер
18:30 — 21:30
СедыхИгорь
Вячеславович
м.Пролетарская
м.Крестьянская застава
29 990 ₽
23.11.2020
27.11.2020
ежедневно утро-день
10:00 — 17:10
СедыхИгорь
Вячеславович
м.Пролетарская
м.Крестьянская застава
29 990 ₽
08.02.2021
12.02.2021
ежедневно утро-день
10:00 — 17:10
СедыхИгорь
Вячеславович
м.Пролетарская
м.Крестьянская застава
29 990 ₽
28.06.2021
02.07.2021
ежедневно утро-день
10:00 — 17:10
СедыхИгорь
Вячеславович
м.Бауманская
29 990 ₽
29.11.2021
03.12.2021
ежедневно утро-день
10:00 — 17:10
СедыхИгорь
Вячеславович
м.Бауманская
29 990 ₽
* Данная скидка действительна при заказе и оплате онлайн обучения только сегодня. Запишитесь прямо сейчас со скидкой!
Стоимость обучения
Частным лицам
29 990 ₽
26 990 ₽ (-10%)
От 1 600 руб./месяц
Организациям
34 490 ₽
31 040 ₽ (-10%)
Указана минимальная цена за индивидуальное обучение. Число часов работы с преподавателем в 2 раза меньше, чем при обучении в группе. Если Вам для полного усвоения материала курса потребуется больше часов работы с преподавателем, то они оплачиваются дополнительно. В случае занятий по индивидуальной программе расчёт стоимости обучения и количества необходимых часов производится отдельно.
Длительность индивидуального обучения — минимум 4 академических часа. Стоимость обучения в Москве уточняйте у менеджера. При выездном индивидуальном обучении устанавливается надбавка: +40% от стоимости заказанных часов при выезде в пределах МКАД, +40% от стоимости заказанных часов и + 1% от стоимости заказанных часов за каждый километр удаления от МКАД при выезде в пределах Московской области. Стоимость выезда за пределы Московской области рассчитывается индивидуально менеджерами по работе с корпоративными клиентами.
Для юридических лиц (организаций) указана цена, действующая при полной предоплате.
Документы об окончании
В зависимости от программы обучения выдаются следующие документы:
Свидетельство
Удостоверение *
Cертификат международного образца
* Для получения удостоверения вам необходимо предоставить копию диплома о высшем или среднем профессиональном образовании.
Сертификаты международного образца выводятся после окончания курса в личном кабинете слушателя.
Комплексное обучение со скидкой
Разработка драйверов устройств в Linux
Android — разработчик. Уровень 1. Работающее мобильное приложение.
58 440 ₽ * 63 480 ₽
Ваша выгода 5 040 рублей
Данное предложение действует только для частных лиц.