Курс "Разработка драйверов под 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
Подтвердить полученные знания можно, сдав сертификационные экзамены. Учебный центр "Интерфейс" является авторизованным центром тестирования Pearson VUE
Учебный центр "Интерфейс" оказывает консалтинговые услуги по построению моделей бизнес-процессов, проектированию информационных систем, разработке структуры баз данных и т.д.
Возможна корректировка программ курсов по желанию заказчиков! Мы расскажем Вам о том, что интересует именно Вас, а не только о том, что жестко зафиксировано в программе курса.
Где Вам удобнее учиться? В Москве? Санкт-Петербурге? Подмосковье? В вашем собственном офисе? Позвоните нам по тел.:+7 (495) 925-0049 и мы обсудим удобный для Вас вариант обучения.