Dlinyj (dlinyj) wrote,
Dlinyj
dlinyj

Вебинар: модули ядра Linux

Уважаемые коллеги, меня много раз просили провести вебинар по теме создания драйверов и написания модулей ядра lilux. Это весьма сложная тема и более тонкие материи. Что и говорить, что подход программирования в пространстве пользователя практически не менялся со времён создания UNIX (70-е годы ХХ-го века), и старые программы по идее должны корректно работать в любой системе *nix. Тогда как, программы в пространстве ядра могут перестать работать с выходом новой версии ядра. API ядра меняется от версии к версии и дать универсальный рецепт разработки модулей невозможно, но тем не менее учиться разрабатывать модули ядра возможно.


Требуемый начальный уровень
Вебинар рассчитан на опытных разработчиков системного программного обеспечения. Предполагается некоторый минимальный опыт в программировании для ядра Linux (модули, драйвера), на уровне компиляции, сборки, и использования таких модулей в системе.
Совершенно естественно, что от участника требуется квалифицированное знание языка C — единственного необходимого и достаточного языка системного программирования (из числа компилирующих) в Linux (хоть в пространстве ядра, хоть в пользовательском пространстве).
Естественно, предполагается, что вы «на дружеской ноге» с основными UNIX/POSIX консольными утилитами, такими, как: ls, rm, grep, tar и другие. Это необходимо для тестирования и организации работы с проектируемыми компонентами.

Дата и время проведения данного вебинара: с 19 по 23 сентября, с 11:00 по 17:00 (время Московское!), с перерывами (даты и время ориентировочные, может пройдём быстрее, может быт дольше, тема сложная). Стоимость вебинара 3000 российских рублей. Для прошлых участников моих вебинаров делается скидка и стоимость составляет 2500 рублей. География участников не имеет значения. Видеозапись будет обязательно!!! Для тех кто пропустил или не может быть, запись будет!

Запись ведётся по электронной почте dlinyj@gmail.com (. Для записи необходимо ваше имя (ф.и.о. по желанию) и контактные данные (номер телефона и почта). Желательно описать цели посещения этого вебинара, уровень подготовки и род занятий.

Пример формата мероприятия вы можете посмотреть в моей статье "Создание собственных драйверов под Linux"

Для примера как будет проходить, видео одной из тем с прошлого вебинара " Linux разработка на языке си. Изучаем основное API.":



Обращаю внимание, что материалы прошлого вебинара (настроенная виртуальная машина, методические указания и видео) доступны и их возможно приобрести для повышения своего уровня!


Программа вебинара:

1. Специфика программирования в ядре.

  • Различия в техниках программирования

  • Создание среды разработки

2. Архитектура, ядро, модули.

  • Монолитное ядро Linux

  • Расширение функциональности кода ядр

  • Траектория системного вызова

3. Техника модулей ядра

  • Сборка модуля

  • Загрузка и исполнение

  • Точки входа и завершения

  • Внутренний формат модуля

  • Вывод диагностики модуля

  • Основные ошибки модуля

  • Интерфейсы модуля

  • Варианты загрузки модулей

  • Параметры загрузки модуля

  • Сигнатура верификации модуля

  • Конфигурационные параметры ядра

  • Подсчёт ссылок использования

  • В деталях о сборке (пишем Makefile)

  • Инсталляция модуля

4. Драйверы: символьные устройства
5. Драйверы: блочные устройства
6. Интерфейс /proc
7. Интерфейс /sys
8. Сетевой стек
9. Обработка прерываний
10. Периферийные устройства в модулях ядра

  • Анализ оборудования

  • Устройства на шине PCI

  • Устройства USB

  • Операции I/O пространства пользователя

11. Внутренние API ядра

  • Механизмы управление памятью

  • Служба времени

  • Параллелизм и синхронизация

12. Расширенные возможности программирования

  • Операции с файлами данных

  • Запуск новых процессов из ядра

  • Сигналы UNIX

  • Вокруг экспорта символов ядра

  • Динамическая загрузка модулей

13. Отладка в ядре
Tags: linux, мастер-класс
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments