Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite купить дешевый 
компьютер родом из Dhgate.com

Lines Club

Ищем достойных соперников.

Библиотека сайта или "Мой Linux Documentation Project"

Проект Yocto

Глава 23 из книги "Архитектура приложений с открытым исходным кодом", том 2.

Оригинал: The Yocto Project
Автор: Elizabeth Flanagan
Перевод: А.Панин

23.1. Введение в систему сборки Poky Build System

Система сборки Poky является основой проекта Yocto. В рамках стандартной конфигурации Poky может предоставлять начальный образ системы, настраиваемый в диапазоне от минимального образа, предоставляющего возможность доступа с использованием командной оболочки, до совместимого со стандартом Linux Standard Base образа, использующего прототип пользовательского интерфейса с названием Sato на основе GNOME Mobile and Embedded (GMAE). При использовании этих основных типов образов, уровни метаданных могут быть добавлены для расширения функций; уровни позволяют создать дополнительный стек программного обеспечения для заданного типа образа, добавить в него пакеты для поддержки аппаратного обеспечения (board support packages - BSP) для беспроблемной работы с дополнительным аппаратным обеспечением или даже создать новый тип образа. Используя версию 1.1 системы Poky с кодовым названием "edison", мы покажем то, как BitBake использует рецепты и файлы конфигурации в ходе генерации образа для встраиваемой системы.

При высокоуровневом анализе видно, что процесс сборки начинается с установки параметров окружения оболочки для последующей сборки. Для выполнения этой операции используются исходные данные из файла oe-init-build-env, который находится в корневой директории дерева исходного кода системы Poky. С помощью этого файла настраивается окружение оболочки, создается начальный изменяемый набор файлов конфигурации и осуществляется взаимодействие с окружением выполнения системы BitBake путем использования файла сценария, позволяющего Poky установить, выполняются ли минимальные системные требования.

Например, одним из наблюдаемых с помощью данного сценария параметров является наличие инструмента Pseudo, являющегося заменой fakeroot, переданной проекту Yocto компанией Wind River Systems. В этот момент сценарий bitbake-core-image-minimal, например, должен иметь возможность создать полнофункциональное окружение для кросскомпиляции, после чего сформировать образ Linux-системы на основе описания образа, соответствующего сценарию core-image-minimal, из исходного кода таким образом, как это описано на уровне метаданных проекта Yocto.

Высокоуровневый обзор процесса выполнения задачи Poky
Рисунок 23.1: Высокоуровневый обзор процесса выполнения задачи Poky

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

После этого BitBake осуществляет выполнение задач из цепочки, создавая программные потоки (количество которых ограничивается переменной BB_NUMBER_THREADS в файле conf/local.conf) для выполнения этих задач в предварительно заданном порядке. Выполняемые в ходе процесса сборки пакета задачи могут быть изменены, вставлены в начало или конец очереди с помощью соответствующих рецептов. Основной, стандартный порядок выполнения задач сборки пакета начинается с получения и распаковки исходных кодов пакета, конфигурации и кросскомпиляции распакованного исходного кода. После этого скомпилированный исходный код разделяется на пакеты и над результатами компиляции проводятся различные действия, такие, как сбор отладочной информации для пакета. После этого разделенные пакеты упаковываются в пакеты поддерживаемого формата; поддерживаются форматы пакетов RPM, ipk и deb. После этого Bitbake будет использовать эти пакеты для создания корневой файловой системы.


Далее: Концепции системы сборки Poky


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют