Свържете се с нас

Съдържание и теми, включени в курса

1. Въведение в Linux ядрото

  • Преглед на вградения Linux
  • Архитектура на Linux ядрото
  • Потребителско пространство срещу пространство на ядрото
  • Отговорности на ядрото
  • Работен процес при разработка на ядрото
  • Преглед на поддържаните вградени платформи

2. Настройка на средата за разработка

  • Подготовка на работната станция за разработка
  • Концепции за кръстосано компилиране
  • Инсталиране на необходимите инструменти за разработка
  • Настройка на развойната платка BeagleBone Black
  • Конфигуриране на серийна конзола
  • Стартиране на целевото устройство

3. Получаване и разбиране на изходния код на ядрото

  • Дърво на изходния код на Linux ядрото
  • Стабилни ядра срещу ядра с дългосрочна поддръжка
  • Изтегляне на изходния код на ядрото
  • Изследване на структурата на изходния код
  • Документация на ядрото
  • Управление на версиите на ядрото

4. Конфигуриране, компилиране и стартиране на ядрото

  • Конфигуриране на ядрото чрез menuconfig
  • Избор на функции на ядрото
  • Кръстосано компилиране на ядрото
  • Изграждане на образи на ядрото
  • Инсталиране на модули на ядрото
  • Преглед на зареждащия механизъм (bootloader)
  • Стартиране на персонализирано ядро

5. Основи на дървото на устройствата (Device Tree)

  • Предназначение на дървото на устройствата
  • Файлове с изходен код на дървото на устройствата (DTS)
  • Двоичен обект на дървото на устройствата (DTB)
  • Концепции за описание на хардуера
  • Промяна на файловете на дървото на устройствата
  • Изграждане и внедряване на дървета на устройствата

6. Модули на Linux ядрото

  • Архитектура на модулите на ядрото
  • Изграждане на зареждаеми модули на ядрото
  • Зареждане и премахване на модули
  • Параметри на модулите
  • Зависимости на модулите
  • Взаимодействие с модулите на ядрото
  • Техники за дебъгване на модули

7. Дебъгване на Linux ядрото

  • Логове на ядрото с printk()
  • Използване на dmesg
  • Динамично дебъгване
  • Анализ на паника на ядрото (kernel panic)
  • Съобщения Oops
  • Дебъгване с GDB
  • Основни инструменти за проследяване на производителността

8. Драйвери за символни устройства

  • Модел на драйверите на устройства в Linux
  • Символни устройства
  • Регистриране на драйвери
  • Файлови операции
  • Операции за четене и запис
  • IOCTL интерфейс
  • Управление на паметта
  • Почистване на драйвера

9. Интегриране на драйвери и достъп до хардуера

  • Платформени устройства и драйвери
  • GPIO програмиране
  • Обработка на прекъсвания
  • Таймери и отложена работа
  • Достъп до хардуерните регистри
  • Работа с входно-изходни операции чрез картографирана памет (memory-mapped I/O)

10. Контрол на версиите с Git

  • Основи на Git
  • Управление на изходния код на ядрото
  • Разклоняване и сливане
  • Създаване на пачове
  • Преглед на промените
  • Сътрудничество при разработка на ядрото

11. Практически лабораторни упражнения за разработка на ядро

  • Конфигуриране на персонализирано ядро
  • Изграждане и внедряване на ядрото
  • Създаване на прост модул на ядрото
  • Разработка на основен драйвер за символно устройство
  • Промяна на файловете на дървото на устройствата
  • Дебъгване на проблеми с ядрото на BeagleBone Black

12. Добри практики и обобщение

  • Стил на кодиране на ядрото
  • Писане на поддържаеми драйвери
  • Често срещани капани в разработката
  • Ресурси за документация на ядрото
  • Работен процес за принос към отворения код
  • Преглед на ключовите концепции
  • Въпроси и отговори
  • Следващи стъпки в разработката на Linux ядро

Изисквания

Основна компютърна грамотност при работа със системи GNU/Linux

 14 Часа

Брой участници


Цена за участник

Отзиви от участници (2)

Предстоящи Курсове

Свързани Kатегории