Курс "Разработка драйверов под Linux и Android"

Код: EDU-LIN-A2
Специализация: Авторские курсы: Программирование

Продолжительность - 3 дня

Производится набор группы

Стоимость:  25 500 руб.  

Курс "Разработка драйверов под 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

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/iservices/training.asp?iId=364818