Программа интенсива
Тема 1. Linux Kernel
Принципы разработки ядра:
•Жизненный цикл Linux Kernel
•Подготовка патчей к публикации
•Best practices работы с Linux Kernel Community
•Опционально: модуль ядра + LAB: пример сборки
Тема 2. Исходный код
Работа с исходным кодом мобильных и встраиваемых ОС
•Системы сборки (Ninja, Autotools, CMake)
•Структура хранения сборников в ОС:
• Yocto: LAB: Пример сборки образов, добавления рецепта для пользовательского приложения (с Makefile и CMake), рецепта для модуля ядра
• Buildroot
• AOSP
Тема 3. Kernel Configuration
Сборка ядра, окружение, адаптация под платформу
•Работа с kconfig & defconfig
•Типы образов ядра
•LAB: добавление своего модуля с запуском в qemu
•Работа с cmdline: все варианты генерации, основные параметры
Тема 4. Загрузка ОС
Брингап платформы
•Типы запуска и загрузки, nfs, tftpboot; LAB: сборка uboot и загрузка в qemu, по сети
•Передача управления в userspace, initd, system; LAB: добавление systemd сервиса
•LAB: основы отладки kgdb, earlyprintk, dynamic debugfs
Тема 5. Безопасность и уязвимости
Необходимые условия для аттестации ОС
•Основные типы уязвимостей
•Источники данных о CVE
•Верификация, SBOM
•Поиск и исправление уязвимостей. LAB: Сканер уязвимостей
Продолжительность: 2 дня
Программа интенсива
Тема 1. Работа с загрузчиками
Аттестация при старте ОС:
•TF-A, SLE, TEE
•Uboot, UEFI, Barebox
Тема 2. Ядро Linux для мобильных устройств
Разработка Linux Kernel для мобильных устройств
•Портирование и разработка драйверов мобильных устройств
•Параметры загрузки и конфигурация оборудования (DTS, калибровка)
•AuroraOS HAL/ AOSP
•Работа с blobs
Тема 3. Жизненный цикл дистрибутива
Создание и обслуживание образа системы
•CI/CD
•Доработка и обновления
Тема 4. Разработка системного ПО
Работа с окружением и платформами
•Инициализация системы, оптимизация времени загрузки
•Мультимедиа
•Сетевой стек
Тема 5. Безопасность
Дополнительные условия для аттестации ОС
•Контейнеризация приложений
•LSTM
•ФСТЭК: требования, инициативы, перспективные направления
Продолжительность: 3 дня
Программа интенсива
Тема 1. Обзор архитектуры Linux, Yocto и модулей ядра Linux
•Обзор процесса построения открытых систем
•Исходный код и компиляция ядра Linux
•Модули ядра Linux, обзор программирования на уровне ядра
Тема 2. Типы драйверов. Символьный драйвер
•Использование символьного драйвера из пользовательских программ. Приватные данные в символьных драйверах.
•Модель драйверов Linux
•Ioctl. Назначение ioctl.
Тема 3. Файловая система proc. Реализация операций
• Файловая система sysfs. Использование proc в драйверах. Разработка модуля ядра использующего интерфейс /proc.
• Реализация блокирующих операций. Очереди ожидания. Операции ввода-вывода.
• Обработка прерываний в Linux.
Тема 4. Особенности драйверов для систем реального времени
•PCI драйвер. Связь PCI-драйвера с моделью драйверов Linux.
• Сетевая подсистема Linux. Сетевой драйвер. Ключевые структуры данных. Разработка сетевого драйвера.
• Особенности разработки драйверов для работы с rtpatch. Подсистема USB и драйверы USB.
Тема 5. Работа с GPIO, SPI, I2C, DMA
•Подсистема GPIO. Шина SPI. Шина I2C.
•Работа с DMA
Тема 6. Потоки и методы синхронизации ядра
• Потоки и методы синхронизации ядра. Включение драйверов в ядро и драйверы для не x86 архитектур. Разработка переносимых драйверов. Шина platform. Встраивание драйверов в ядро.
• Обработка прерываний в Linux.
Продолжительность: 5 дней
Программа интенсива
Тема 1. Обзор архитектуры AOSP
Тема 2. Работа с загрузчиками
Тема 3. Особенности ядра Linux для AOSP
Тема 4. Жизненный цикл дистрибутива
Тема 5. Разработка системного ПО. Процесс загрузки и отладки. Оптимизация времени загрузки, мультимедиа, сетевой стек.
Тема 6. Безопасность и уязвимости
Продолжительность: 3 дня
Программа интенсива
Продолжительность:
Программа интенсива
Тренинг в разработке
Продолжительность:
Обучение проводится в Центре Программных Разработок РТСофт по адресу ул. Верхняя Первомайская, стр. 51, Москва, 105264