Разработка драйверов под Linux
Feb. 5th, 2013 10:55 pmДорогие друзья, набирается группа по обучению "Разработка драйверов под Линукс". Вести будет Сергей Боронин http://sboronin.ru/ . Могу сказать, что я проходил у него курсы программирования под Linux на си, и остался невероятно доволен стилем преподавания и программой курса.
Разумеется, аксакалам разработчикам вряд ли будет это интересно, но это прекрасная вводная для погружения в мир программирования ядра.
Модуль 1
Модуль 2
Модуль 3
Модуль 4
Модуль 5
Модуль 6
Модуль 7
Модуль 8
Модуль 9
Дата и время проведения: 25-28 февраля 2013 года. Время с 9:00 до 17:00 + 45 минут перерыв на обед. Место проведения Хаксейс нейрон: Лужнецкая набережная 2/4, строение 17, офис 444 (мансарда) http://neuronspace.ru/ http://maps.yandex.ru/org/1004097707/ . Стоимость всего удовольствия 10 000 рублей (десять тысяч рублей).
Для участия: нужно безмерное желание, 10000 рублей, написать мне, оставив своё ФИО, номер телефона и е-майл. По всем интересующим вопросам готов ответить. Торопитесь, количество мест строго ограничено.
З.Ы. Лично я являюсь организатором, но не лектором, этого курса.
Разумеется, аксакалам разработчикам вряд ли будет это интересно, но это прекрасная вводная для погружения в мир программирования ядра.
Модуль 1
- Архитектура ядра linux
- Отличия разработки драйверов от прикладного ПО
- Потенциальные проблемы с безопасностью
- Лицензирование модулей ядра
Модуль 2
- Простейший модуль ядра
- Знакомство с printk()
- Сборка модулей ядра
- Макроопределения __init и __exit
- Вопросы документирования модулей
- Передача модулю параметров командной строки
- Модули, состоящие из нескольких файлов
- Сборка модулей под существующее ядро
Модуль 3
- Модули ядра и прикладные программы
- Функции, которые доступны из модулей
- Пространство пользователя и пространство ядра
- Пространство имен
- Адресное пространство
- Старший и младший номер устройства
Модуль 4
- Файлы символьных устройств
- Структура file_operations
- Структура file
- Регистрация устройства
- Отключение устройства
- Пример драйвера символьного устройства c доступом только на чтение
- Специфика поддержки записи для символьных устройств
- Пример драйвера символьного устройства c доступом на чтение и запись
Модуль 5
- Особенность файловой системы /proc
- Пример драйвера, создающего файл в /proc c доступом на чтение
- Блокировка процессов при конкурентном доступе к устройству
- Пример драйвера, приостанавливающего работу процессов
Модуль 6
- Специфика управления памятью в ядре Linux
- Преобразование адреса в ядре
- Отображение файла в память ядра
- Управление отображением в память
Модуль 7
- Блочные устройства
- Регистрация блочного устройства
- Операции, поддерживаемые для блочных устройств
- Обработка запросов к блочному устройству
- Детали реализации блочного устройства
- Пример драйвера блочного устройства
Модуль 8
- Конкуренция и ситуация гонок
- Семафоры и мьютексы
- Реализация семафора в ядре Linux
- Семафоры на чтение и запись
- Взаимоблокировки
- Пример драйвера, использующего семафоры
Модуль 9
- Типы данных и структуры ядра
- Специфика использования стандартных типов данных
- Назначение типам данных явного размера
- Специфичные типы данных
- Аспекты, связанные с совместимостью
- Измерение временных интервалов
- Размер страницы
- Порядок следования байт в словах
- Выравнивание данных
- Размер указателя
Дата и время проведения: 25-28 февраля 2013 года. Время с 9:00 до 17:00 + 45 минут перерыв на обед. Место проведения Хаксейс нейрон: Лужнецкая набережная 2/4, строение 17, офис 444 (мансарда) http://neuronspace.ru/ http://maps.yandex.ru/org/1004097707/ . Стоимость всего удовольствия 10 000 рублей (десять тысяч рублей).
Для участия: нужно безмерное желание, 10000 рублей, написать мне, оставив своё ФИО, номер телефона и е-майл. По всем интересующим вопросам готов ответить. Торопитесь, количество мест строго ограничено.
З.Ы. Лично я являюсь организатором, но не лектором, этого курса.