Вебинар: модули ядра Linux
Sep. 9th, 2016 09:11 amУважаемые коллеги, меня много раз просили провести вебинар по теме создания драйверов и написания модулей ядра 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. Специфика программирования в ядре.
5. Драйверы: блочные устройства
6. Интерфейс /proc
7. Интерфейс /sys
8. Сетевой стек
9. Обработка прерываний
10. Периферийные устройства в модулях ядра

Требуемый начальный уровень
Вебинар рассчитан на опытных разработчиков системного программного обеспечения. Предполагается некоторый минимальный опыт в программировании для ядра Linux (модули, драйвера), на уровне компиляции, сборки, и использования таких модулей в системе.
Совершенно естественно, что от участника требуется квалифицированное знание языка C — единственного необходимого и достаточного языка системного программирования (из числа компилирующих) в Linux (хоть в пространстве ядра, хоть в пользовательском пространстве).
Естественно, предполагается, что вы «на дружеской ноге» с основными UNIX/POSIX консольными утилитами, такими, как: ls, rm, grep, tar и другие. Это необходимо для тестирования и организации работы с проектируемыми компонентами.
Дата и время проведения данного вебинара: с 19 по 23 сентября, с 11:00 по 17:00 (время Московское!), с перерывами (даты и время ориентировочные, может пройдём быстрее, может быт дольше, тема сложная). Стоимость вебинара 3000 российских рублей. Для прошлых участников моих вебинаров делается скидка и стоимость составляет 2500 рублей. География участников не имеет значения. Видеозапись будет обязательно!!! Для тех кто пропустил или не может быть, запись будет!
Запись ведётся по электронной почте dlinyj@gmail.com (. Для записи необходимо ваше имя (ф.и.о. по желанию) и контактные данные (номер телефона и почта). Желательно описать цели посещения этого вебинара, уровень подготовки и род занятий.
Пример формата мероприятия вы можете посмотреть в моей статье "Создание собственных драйверов под Linux"
Для примера как будет проходить, видео одной из тем с прошлого вебинара " Linux разработка на языке си. Изучаем основное API.":
Обращаю внимание, что материалы прошлого вебинара (настроенная виртуальная машина, методические указания и видео) доступны и их возможно приобрести для повышения своего уровня!
Программа вебинара:
1. Специфика программирования в ядре.
- Различия в техниках программирования
- Создание среды разработки
- Монолитное ядро Linux
- Расширение функциональности кода ядр
- Траектория системного вызова
- Сборка модуля
- Загрузка и исполнение
- Точки входа и завершения
- Внутренний формат модуля
- Вывод диагностики модуля
- Основные ошибки модуля
- Интерфейсы модуля
- Варианты загрузки модулей
- Параметры загрузки модуля
- Сигнатура верификации модуля
- Конфигурационные параметры ядра
- Подсчёт ссылок использования
- В деталях о сборке (пишем Makefile)
- Инсталляция модуля
5. Драйверы: блочные устройства
6. Интерфейс /proc
7. Интерфейс /sys
8. Сетевой стек
9. Обработка прерываний
10. Периферийные устройства в модулях ядра
- Анализ оборудования
- Устройства на шине PCI
- Устройства USB
- Операции I/O пространства пользователя
- Механизмы управление памятью
- Служба времени
- Параллелизм и синхронизация
- Операции с файлами данных
- Запуск новых процессов из ядра
- Сигналы UNIX
- Вокруг экспорта символов ядра
- Динамическая загрузка модулей