Курс "Разработка драйверов под Linux и Android"
Код: EDU-LIN-A2
Специализация: Авторские курсы: Программирование
Продолжительность - 3 дня
Производится набор группы
Курс "Разработка драйверов под Linux и Android"дает знания и навыки, необходимые для разработки драйверов устройств для ОС Linux.
Ядро Linux используется в большинстве современных смартфонов за счет применения в популярной платформе Android. Кроме того, не следует забывать и про лидирующее положение Linux в сегменте суперкомпьютеров (494 из топ 500 суперкомпьютеров под данным www.top500.org), второе место в сегменте интернет-серверов и высокую популярность в корпоративном сегменте. GNU Compilers Collection является лидером в списке аналогичного программного обеспечения по популярности среди средств разработки решений с открытым исходным кодом.
Аудитория: Курс ориентирован на программистов, окончивших курс «Программирование в Linux на C/C+» или имеющих эквивалентную подготовку.
После обучения слушатели научатся:
- Понимать отличия драйверов устройств от прикладного ПО;
- Понимать специфику и ограничения, присущие драйверам устройств;
- Понимать влияние ошибок в драйверах устройств на безопасность всей системы в целом;
- Понимать отличия в реализации символьных драйверов устройств от блочных;
- Использовать особенности файловой системы /proc и специфику работы с ней;
- Понимать конкуренцию и ситуацию гонок в ядре, проблемы и их решения;
- Понимать аспекты, связанные с совместимостью, специфику использования стандартных типов данных;
- Получат опыт, достаточный, чтобы начать работать в качестве системного программиста Linux.
Программа курса
Модуль 1
- Архитектура ядра linux
- Отличия разработки драйверов от прикладного ПО
- Потенциальные проблемы с безопасностью
- Лицензирование модулей ядра
Модуль 2
- Простейший модуль ядра
- Знакомство с printk()
- Сборка модулей ядра
- Макроопределения __init и __exit
- Вопросы документирования модулей
- Передача модулю параметров командной строки
- Модули, состоящие из нескольких файлов
- Сборка модулей под существующее ядро
Модуль 3
- Модули ядра и прикладные программы
- Функции, которые доступны из модулей
- Пространство пользователя и пространство ядра
- Пространство имен
- Адресное пространство
- Старший и младший номер устройства
Модуль 4
- Файлы символьных устройств
- Структура file_operations
- Структура file
- Регистрация устройства
- Отключение устройства
- Пример драйвера символьного устройства c доступом только на чтение
- Специфика поддержки записи для символьных устройств
- Пример драйвера символьного устройства c доступом на чтение и запись
Модуль 5
- Особенность файловой системы /proc
- Пример драйвера, создающего файл в /proc c доступом на чтение
- Пример драйвера, создающего файл в /proc c доступом на чтение
- Блокировка процессов при конкурентном доступе к устройству
- Пример драйвера, приостанавливающего работу процессов
Модуль 6
- Специфика управления памятью в ядре Linux
- Преобразование адреса в ядре
- Отображение файла в память ядра
- Управление отображением в память
Модуль 7
- Блочные устройства
- Регистрация блочного устройства
- Операции, поддерживаемые для блочных устройств
- Обработка запросов к блочному устройству
- Детали реализации блочного устройства
- Пример драйвера блочного устройства
Модуль 8
- Конкуренция и ситуация гонок
- Семафоры и мьютексы
- Реализация семафора в ядре Linux
- Семафоры на чтение и запись
- Взаимоблокировки
- Пример драйвера, использующего семафоры
Модуль 9
- Типы данных и структуры ядра
- Специфика использования стандартных типов данных
- Назначение типам данных явного размера
- Специфичные типы данных
- Аспекты, связанные с совместимостью
- Измерение временных интервалов
- Размер страницы
- Порядок следования байт в словах
- Выравнивание данных
- Размер указателя
В конце обучения на курсе проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненных в процессе обучения.
Программирование - это процесс создания инструкций для обработки информации центральным процессором.
Рынок IT – весь мир. Вы можете работать над иностранными проектами в аутсорсинговых российских компаниях, уехать работать в иностранную компанию или же трудиться на фрилансе из любой точки мира с заказчиками из разных стран. Профессия программиста открывает самые широкие возможности.
Учебный центр « Интерфейс» представляет авторские курсы для начинающих и опытных программистов, администраторов и разработчиков баз данных.
Практические занятия, преподаватели-эксперты и система посттренинговой поддержки — залог того, что Вы получите качественные и актуальные знания!
Наши курсы дают знания и навыки, необходимые для разработки программного обеспечения, драйверов устройств, современных web-приложений, информационных систем.
Учебный центр "Интерфейс" оказывает консалтинговые услуги по построению моделей бизнес-процессов, проектированию информационных систем, разработке структуры баз данных и т.д.
- Нужна помощь в поиске курса?
Наша цель заключается в обеспечении подготовки специалистов, когда и где им это необходимо. Возможна корректировка программ курсов по желанию заказчиков! Мы расскажем Вам о том, что интересует именно Вас, а не только о том, что жестко зафиксировано в программе курса. Если вам нужен курс, который вы не видите на графике или у нас на сайте, или если Вы хотите пройти курс в другое время и в другом месте, пожалуйста, сообщите нам, по адресу mail@interface.ru или shopadmin@itshop.ru
- Поговорите со своим личным тренинг-менеджером!
Мы предоставляет Вам индивидуальное обслуживание. Если у вас есть потребность обсудить, все вопросы касательно обучения, свяжитесь, пожалуйста c нами по телефонам: +7 (495) 925-0049, + 7 (495) 229-0436. Или любым другим удобным для Вас средствами связи, которые Вы можете найти на сайтах www.interface.ru или www.itshop.ru
|