27 октября фонд Linux Foundation (LF) и его младший партнер Consumer Electronics Linux Forum (CELF), специализирующийся на встраиваемой Linux, объявили о слиянии, в результате которого CELF становится технической рабочей группой при LF. Одновременно LF запустил новый проект в области встраиваемой Linux — Yocto Project.

Открытый проект Yocto начинает работу с версии 0.9, содержащей первоначальные варианты широко используемых инструментов формирования сборок ПО. Рабочая группа открыта для всех без каких-либо ограничений, и LF приглашает новых участников.

Название проекта Yocto соответствует наименованию приставки в метрической системе, обозначающей 10-24 (одна септильонная) и используемой при измерении субатомной массы. Проект нацелен на создание полноценной среды разработки и сборки Linux, включая инструменты, метаданные и документацию. Эта платформа содержит среды эмуляции, отладчики и механизм создания набора инструментов разработчика.

В отличие от других систем формирования версий, использующих основные сценарии (shell scripts) или такой инструмент как makefile, Yocto автоматизирует извлечение программного кода из источников (upstream sources) или локальных репозиториев, сообщают участники проекта. Архитектура платформы позволяет варьировать размеры сборки в широких пределах и управлять включением в них или исключением таких компонентов как графические подсистемы, ПО промежуточного слоя для обеспечения виртуализации и сервисы.

Yocto разрабатывается на основе Poky Linux, деривата GNOME, — хорошо зарекомендовавшей себя, независящей от используемой платформы и компилятора системы формирования сборок, имеющей такую же архитектуру, как система подготовки версий OpenEmbedded. В настоящее время Poky входит в состав Poky Linux 3.31.


Архитектура Yocto, демонстрирующая рабочий процесс Poky

В августе 2008 г. Intel, которая, похоже, является движущей силой проекта Yocto (подробности см. ниже), приобрела разработавшую Poky Linux компанию OpenedHand, которая помимо прочего занималась реализацией таких проектов как Matchbox и Clutter. Matchbox представляет собой облегченный менеджер окон для X11 (X Window), а Clutter — среду анимации.


Процесс формирования сборки с помощью Yocto

Intel сохранила оба эти открытых проекта, использовав технологию Poky и опыт OpenedHand в проекте Moblin. В результате слияния последнего с Maemo появился дистрибутив MeeGo, который разрабатывается под эгидой фонда Linux Foundation, как и проект Yocto. 

Poky Linux подобно Moblin, Maemo и MeeGo предназначается для разработчиков мобильных устройств и базируется на технологиях X11, GTK+, Clutter и Matchbox. Однако вместо графического интерфейса пользователя Hildon в Poky использовано приложение Sato и соответствующее тематическое оформление.

Поток работ и эмуляция в Yocto с использованием предварительно собранного образа

Проект Yocto сейчас содержит указатели на примеры кода, собранного с помощью Poky при создании демонстрационной версии приложения UPnP Media Network. Сообщество разработчиков протестировало различные образы, включая образ ядра Yocto Project. Существуют образы четырех типов сборки (Minimal, Sato, SDK, LSB) при разработке UPnP (Universal Plug and Play) для различных архитектур, включая ARM, PPC, MIPS, x86 и x86-64. 

Разработан стандартный формат пакета для поддержки материнской платы (board support package, BSP). В настоящее время Yocto может работать на следующих эталонных аппаратных платформах: · 

ARM — BeagleBoard ·

PowerPC — FreeScale MPC8315e-rdb (PowerQUICC II Pro) ·

MIPS — Ubiquiti Networks Router Station Pro (MIPS Linux Starter Kit) ·

x86 — Intel Atom Black Sand, WEBS-2120

Компоненты Yocto могут использоваться для проектирования, разработки, формирования сборки, отладки, моделирования и тестирования всего комплекта ПО с использованием сред приложений на базе Linux, X Window (X11), GNOME Mobile и среды Nokia Qt, сообщают участники проекта.

Среди других доступных компонентов можно назвать Matchbox, GTK+, Pimlico, Clutter и GuPNP. Для всех поддерживаемых архитектур проект использует эмуляцию файловой системы QEMU, а также специфическое оборудование, такое как материнская плата Intel Desktop Board DH55TC.

Для написания приложений можно создать средства разработки и объединить их с плагинами среды разработки (в настоящее время используются Eclipse или Anjuta). Плагин Anjuta объединяет Yocto SDK Generator и toolchain со средой разработки Anjuta, сообщают участники проекта.

В Poky включен также эталонный интерфейс пользователя Sato. Этот опциональный интерфейс на базе GNOME Mobile предназначен для устройств с небольшим размером экрана, поясняют участники проекта.

Yocto базируется на Intel и Wind River

Несмотря на поддержку проектом различных платформ, Yocto Steering Group целиком состоит из сотрудников корпорации Intel или ее дочерней компании Wind River. Это третий крупный проект фонда Linux Foundation после Moblin и MeeGo, который в основном продвигает Intel.

Представитель Intel Ричард Пёрди является архитектором проекта, а главными технологами —Дик Хондел (Intel) и Алекс деФриз (Wind River). Технические руководители и все эксплуатационники тоже являются сотрудниками Intel или Wind River.

Хондел — это главный технолог Intel по Linux и ПО с открытым кодом, ранее занимавший в Novell должность главного технолога по SuSE. Он руководит Центром открытых технологий Intel (Open Source Technology Center), где теперь работают бывшие сотрудники компании OpenedHand, и поддерживает связь с такими проектами как MeeGo.

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

Благодаря поддержке со стороны Intel проект Yocto может стать во всех отношениях альтернативой имеющему с ним определенное сходство проекту Linaro, который анонсировали в июне ARM Holdings и пять производителей микросхем. Цель Linaro заключается в разработке стандартных Linux-инструментов с открытым исходным кодом, ядра и ПО промежуточного слоя для потребительской электроники.

Правда, Linaro — это компания, а не разрабатываемый сообществом проект. И в отличие от кросс-платформенного Yocto она ориентируется исключительно на платформы ARM. Ее учредителями являются ARM, Freescale, IBM, Samsung, ST-Ericsson и Texas Instruments. Linaro начнет с поддержки инструментов ARM Cortex на таких платформах как Android, LiMo, MeeGo, Ubuntu и WebOS.