Организационно книга устроена так же, как жизненный цикл типичного проекта встраиваемой Linux-системы. Автор рассказывает о подготовке проекта и устройстве системы на базе Linux, о наборах инструментов, начальных загрузчиках, ядре Linux и конфигурировании корневой файловой системы. Вы узнаете, как выбрать подходящую систему сборки Linux и научитесь работать с двумя наиболее популярными системами сборки: Buildroot и Yocto Project, позволяющими ускорить и упростить процесс разработки. Рассмотрена архитектура флэш-памяти типа NAND, NOR и eMMC, а также драйвера устройств и система инициализации. Показаны механизмы увеличения срока службы устройств и надежного обновления в месте эксплуатаци. Описаны потоки POSIX, которые могут оказать заметное влияние на время отклика и производительность готового устройства. Не обделены вниманием вопросы отладки и оптимизации платформы, а также выполнение приложений реального времени. Заключительные главы посвящены технике профилирования и трассировки приложений и ядра с помощью программ perf и Ftrace.
Эта книга рассчитана на разработчиков программного обеспечения на платформе Linux и системных программистов, уже знакомых со встраиваемыми системами и желающих больше узнать о создании устройств, лучших в своем классе. Предполагается знание основ языка C и опыт системного программирования.
Краткое содержание книги:
• роль ядра Linux и выбор подходящего ядра для приложения; • применение Buildroot и Yocto Project для быстрого и эффективного создания встраиваемой Linux-системы; • создание специальных загрузчиков на основе U-Boot; • применение perf и Ftrace для поиска узких мест; • деревья устройств и отражение в них нового оборудования; • написание приложений, взаимодействующих с драйверами устройств; • проектирование и кодирование многопоточных приложений с потоками POSIX; • измерение задержек в режиме реального времени и настройка ядра Linux с целью их минимизации.