Yocto Project — проект Linux Foundation с открытым исходным кодом, целью которого является создание инструментов позволяющих создавать дистрибутивы Linux для встроенного программного обеспечения и IoT, которые не зависят от базовой архитектуры встроенного оборудования. Проект был анонсирован Linux Foundation в 2010 году и запущен в марте 2011 года в сотрудничестве с 22 организациями, включая OpenEmbedded.

Целью Yocto Project является улучшение процесса разработки программного обеспечения для встраиваемых дистрибутивов Linux. Yocto Project предоставляет инструменты функциональной совместимости, метаданные и процессы, которые обеспечивают быстро воспроизводимую разработку встраиваемых систем на базе Linux, в которых можно настроить каждый аспект процесса разработки.

В октябре 2018 года Arm Holdings заключила партнёрское соглашение с Intel, чтобы обмениваться кодом для встраиваемых систем в рамках проекта Yocto.

Цель проекта

Целью Yocto Project является упрощение жизни разработчикам специализированных систем Linux, поддерживающих архитектуры ARM, MIPS, PowerPC и x86/x86-64. Значимой частью этого проекта является система сборки OpenEmbedded, которая позволяет разработчикам создавать свой собственный дистрибутив Linux, специфичный для их среды. Yocto Project и OpenEmbedded Project совместно поддерживают основные части системы сборки OpenEmbedded: механизм сборки BitBake и основные метаданные OpenEmbedded-Core. Проект Yocto предоставляет эталонную реализацию (тестовый дистрибутив) под названием Poky, которая содержит систему сборки OpenEmbedded, а также большой набор рецептов, организованных в виде иерархической системы слоёв, которые можно использовать в качестве полнофункционального шаблона для настраиваемой встроенной операционной системы.

В рамках проекта есть несколько других подпроектов, которые включают CROPS, matchbox и многие другие. Одной из основных целей проекта является совместимость этих инструментов.

Проект предлагает решения разного размера от крошечных до полнофункциональных, которые конфигурируются и кастомизируются конечным пользователем. Yocto Project поощряет взаимодействие с вышестоящими проектами и внес большой вклад в OpenEmbedded-Core и BitBake, также как и в прочие проекты, включая ядро Linux. Полученные образы обычно полезны в системах, где будет использоваться встроенный Linux, обычно это системы, ориентированные на одноразовое использование, или системы без обычных экранов / устройств ввода.

Помимо создания систем Linux, существует также возможность создания набора инструментов для кросс-компиляции и комплекта разработки программного обеспечения (SDK), адаптированного к их собственному дистрибутиву. Проект старается быть независимым от программного обеспечения и поставщиков. Так, например, можно выбрать, какой формат менеджера пакетов использовать (deb, rpm или ipk).

В сборках есть варианты различных тестов работоспособности во время сборки, регрессионных тестов, а также возможность загрузки и тестирования определённых образов в QEMU для проверки сборки.

Проект известен тем, что уделяет значительное внимание хорошей документации и старается обновлять документацию для каждого релиза, сохраняя все документы для текущих и архивных выпусков на веб-сайте, поскольку документация может значительно меняться с каждым релизом.

Управление проектом

Проект Yocto — один из многих совместных проектов, организованных Linux Foundation.

Управление проектом разделено на административное и техническое подразделения, хотя многие участники участвуют в обоих.

За техническим подразделением наблюдает архитектор проекта Ричард Перди (член Linux Foundation), который имеет долгую историю участия во многих компонентах и технологиях проекта. Архитектор поддерживает иерархию специалистов по сопровождению различных компонентов системы, подобно тому, как поддерживается ядро Linux.

Административное подразделение состоит из консультативного совета, состоящего из представителей организаций-участников проекта, в том числе нескольких крупных поставщиков микросхем, поставщиков коммерческих операционных систем, использующих Yocto Project в качестве инструмента сборки, корпоративных пользователей, а также представителей таких групп, как консультанты по программному обеспечению и члены сообщества. Организации-члены этого совета предоставляют ресурсы для проекта. Есть также несколько рабочих групп консультативного совета, которые выполняют административные функции проекта, такие как финансы, инфраструктура, защита интересов и работа с общественностью, а также управление сообществом.

Версии Основные выпуски происходят примерно каждые 6 месяцев (апрель и октябрь).

Версия 3.1 была первой LTS версией, первоначально поддерживаемым в течение двух лет. С тех пор каждые два года добавляется новая LTS версия.

В 2021 году поддержка версии 3.1 была продлена ещё на два года до 2024 года. Это было сделано в качестве эксперимента, чтобы дать пользователям время для перехода на более новую версию LTS, но это не будет делаться для всех LTS релизов.

ВерсияКодовое имяДата релизаПоддержка доWalnascar04/202511/20255.1Styhead10/202405/2025Scarthgap04/202404/20284.3Nanbield11/202305/20244.2Mickledore 05/202311/2023Langdale10/2022EOLKirkstone05/202204/20243.4Honister11/2021EOL3.3Hardknott04/2021EOL3.2Gatesgarth11/2020EOLDunfell04/202004/20243.0Zeus10/2019EOL2.7Warrior04/2019EOL2.6Thud11/2018EOL2.5Sumo04/2018EOL2.4Rocko10/2017EOL2.3Pyro04/2017EOL2.2Morty10/2016EOL2.1Krogoth04/2016EOL2.0Jethro10/2015EOL1.8Fido04/2015EOL1.7Dizzy10/2014EOL1.6Daisy04/2014EOL1.5Dora10/2013EOL1.4Dylan04/2013EOL1.3Danny10/2012EOL1.2Denzil04/2012EOL1.1Edison10/2011EOL1.0Bernard2011EOL0.9Laverne2010EOL

См. также Buildroot

Примечания

Ссылки

Deciding between Buildroot and Yocto, LWN.net, April 6, 2016, by Nathan Willis