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

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

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

Lines Club

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

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

Проект Yocto

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

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

23.2. Архитектура BitBake

Перед тем, как мы перейдем к подробному рассмотрению части архитектурных решений, примененных в системе BitBake, полезно будет понять то, как BitBake собственно работает. Для того, чтобы в полной мере оценить прогресс развития системы BitBake, мы рассмотрим ее начальную версию, BitBake 1.0. В рамках этого первого релиза BitBake цепочка зависимостей для сборки формировалась на основе зависимостей рецептов. В случае какой-либо ошибки в процессе сборки образа, система BitBake должна была перейти к выполнению следующей задачи и позднее повторить ранее неудачную попытку сборки программного компонента. Очевидно, это означало то, что сборка занимала слишком много времени. Другая особенность работы системы BitBake заключалась в том, что каждая из переменных, используемых рецептами, хранилась в одном очень большом словаре. Учитывая количество рецептов, а также количество переменных и задач, необходимых для завершения сборки образа, можно сделать вывод, что система BitBake 1.0 требовала большого объема памяти для работы. В то время, когда оперативная память была достаточно дорогой и системы работали с меньшим ее объемом, сборки могли заканчиваться неудачами. Ситуация с исчерпанием оперативной памяти (и записью данных в раздел подкачки!) была неприемлема для системы, так как процесс сборки является длительным. В своем первозданном виде система хотя и выполняла поставленные перед ней задачи (иногда), но делала это очень медленно, потребляя чрезмерно большие количества ресурсов. Хуже того, в рамках версии 1.0 системы BitBake не было представлено концепции долговременного кэша данных или разделения данных состояния, а также не было возможности осуществлять инкрементальные сборки, поэтому в случае неудачи при сборке приходилось повторять ее с самого начала.

Краткий обзор различий между актуальной версией 1.13.3 системы BitBake, используемой в рамках системы сборки Poky "edison" и версией 1.0 указывает на появление реализации клиент-серверной архитектуры BitBake, долговременного кэша данных, хранилища данных, а также применение оптимизации путем использования техники копирования при записи данных в хранилище, реализации системы разделения данных состояния и значительных улучшений в алгоритмах формирования цепочек зависимостей для задач и пакетов. Данный эволюционный процесс привел к повышению стабильности, производительности и динамичности функционирования системы. Большая часть этих функций была продиктована необходимостью выполнения более быстрых и надежных процессов сборок с затратами меньшего количества ресурсов. Тремя усовершенствованиями системы BitBake, которые мы будем рассматривать, являются: реализация клиент-серверной архитектуры, оптимизации хранилища данных BitBake и работа по улучшению методов формирования цепочек зависимостей для сборок и задач в рамках BitBake.


Далее: Механизм межпроцессного взаимодействия системы BitBake


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

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