Открыто

Разработка драйверов устройств в Linux [Специалист] [Игорь Седых] [2020]

Тема в разделе "Курсы по программированию", создана пользователем bizonnnnn, 15 ноя 2020.

Основной список: 18 участников

Резервный список: 11 участников

  1. 15 ноя 2020
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба
    Разработка драйверов устройств в Linux. Игорь Седых

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

    Вы научитесь:
    • понимать отличия драйверов устройств от прикладного ПО;
    • знать специфику и ограничения, присущие драйверам устройств;
    • понимать влияние ошибок в драйверах устройств на безопасность всей системы в целом;
    • понимать отличия в реализации символьных драйверов устройств от блочных;
    • знать особенности файловой системы /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. Реализация доступа к периферийному устройству
    • Практическая работа

    Скрытая ссылка

    P.S. Не повтор складчины
    Скрытая ссылка
    Здесь большая расчасовка учебной программы.
     
    Последнее редактирование модератором: 3 июн 2021
  2. Последние события

    1. Linda111
      Linda111 не участвует в складчине.
      26 янв 2026
    2. mshulika
      mshulika не участвует в складчине.
      21 ноя 2025
    3. mrJoh
      mrJoh участвует в складчине.
      16 сен 2025
    4. ms1980
      ms1980 участвует в складчине.
      8 сен 2025

    Последние важные события

    1. skladchik.com
      Взнос в складчине составляет 0р.
      12 июн 2021
    2. skladchik.com
      Нужен организатор складчины.
      12 июн 2021
    3. skladchik.com
      Складчина открыта.
      12 июн 2021
    4. skladchik.com
      Взнос в складчине составляет 1 241р.
      7 июн 2021