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

Confirmation of e-mail address is required!

The letter with the instruction has been sent to the e-mail address specified at the time of registration

Cookies

Cookies are disabled!

For the correct operation of the site, you must allow the use of cookies.

Cookies

Cookies are used to optimize the design and performance of our websites. By continuing to visit the website, you agree to use cookies.

Ok
Washington, D.C.

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

Sold Out
About the event
  • Level
    Easy
  • Language
    Russian
  • Age
    Any
7%
When subscribing to the newsletter, you receive a 7% discount on the first purchase
Course diplomas and certificates
Sold Out
About the event
  • Level
    Easy
  • Language
    Russian
  • Age
    Any
7%
When subscribing to the newsletter, you receive a 7% discount on the first purchase
  • Course Description
  • What you will learn?
  • Program
  • Requirements for course participants
Course Description

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

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

Курс рассчитан на программистов окончивших курс «Программирование в Linux на C/C+» или имеющих эквивалентную подготовку.

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

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

Organization

Still have questions?

Start a chat with our support agent to get a quick response to all questions you might have