Научитесь создавать драйвера, управлять памятью на уровне ядра, писать многопоточные и синхронизированные модули, а также разбираться в архитектуре и механизмах ядра Linux. Курс рассчитан на программистов, системных администраторов и embedded-разработчиков. Вы изучите архитектуру ядра Linux и особенности разработки драйверов, включая создание и взаимодействие модулей ядра с прикладными программами Для кого и чем этот курс будет полезен? Для разработчиков До курса. Разработчик не знает, как взаимодействовать с ядром Linux для создания новых драйверов, что ограничивает возможности расширения функциональности аппаратного обеспечения. После курса. Разработчик умеет создавать и настраивать модули ядра, что позволяет легко интегрировать новое оборудование и расширять функциональность системы. Для системных администраторов До курса. Недостаток знаний о внутренних механизмах ядра Linux ограничивает возможности по оптимизации и настройке системы для специфических задач. После курса. Знания о внутренних механизмах ядра и управлении памятью помогают более точно настраивать и оптимизировать систему под конкретные задачи, улучшая общую эффективность работы. Для мобильных разработчиков До курса. Трудности в интеграции и управлении аппаратными функциями, такими как камеры, датчики и т.д., из-за недостаточных знаний о разработке драйверов. После курса. Навыки разработки драйверов и взаимодействия с аппаратными устройствами позволяют легко интегрировать аппаратные функции и управлять ими, что расширяет функциональность мобильных приложений. Спойлер: Программа курса: Архитектура ядра Linux, особенности разработки драйверов Создание простейшего модуля ядра, использование printk(), сборка и макроопределения __init и __exit Связь модулей ядра с прикладными программами, адресное пространство и номера устройств Работа с файлами символьных устройств, структура file_operations и регистрация/отключение устройства Создание драйверов для файловой системы /proc и блокировка процессов при конкурентном доступе Управление памятью в ядре Linux и преобразование адресов Разработка и регистрация блочных устройств, а также обработка запросов к ним Конкуренция, семафоры, мьютексы и пример драйвера с их использованием Типы данных в ядре, их использование, совместимость и аспекты выравнивания Спойлер: Преподаватель курса: Седых Игорь (Старший преподаватель, Институт интеллектуальных кибернетических систем НИЯУ МИФИ) Профессионально преподает с 2010 года. Имеет большой опыт коммерческой разработки инженерного программного обеспечения в области нанотехнологий, включая проекты для корпорации LSI. Автор множества специализированных программ для работы с компьютерной графикой и базами данных. Преподает разработку и направления, связанные с Linux, и обучил более 6000 студентов. Среди его выпускников – сотрудники таких известных организаций, как ОАО «Концерн ПВО «Алмаз – Антей», ОАО «Московский вертолетный завод им. М. Л. Миля», Департамент культурного наследия города Москвы, ОАО «Компания «Сухой» и других. Автор методических пособий, включая курс «Основы программирования и баз данных».