Разработка системы портирования Debian 7 Wheezy на архитектуры e2k и sparc с применением технологии multi-arch



Скачать 35.27 Kb.
Pdf просмотр
Дата09.11.2016
Размер35.27 Kb.
Просмотров186
Скачиваний0

Разработка системы портирования Debian 7
Wheezy на архитектуры e2k и sparc с
применением технологии multi-arch
Выпускная квалификационная работа
(магистерская диссертация)
Выполнил: студент 913 группы
Научный руководитель:
д.ф.-м.н., профессор
Козлов А.Е.
Семенихин С.В.
Московский физико-технический институт
(государственный университет)
Москва 2015


К моменту начала работ дистрибутив Debian 5 Lenny находится в стадии отладки (м.д. Куян А.C.)

Завершена разработка:
-
Ядро версии 3.10
-
Библиотека libc версии 2.19
-
Компилятор совместимый с gcc-4.4
Цель работы

Используя новые программные компоненты, подготовить систему сборки (СС), позволяющую дополнять Debian 5 обновленными версиями пакетов из следующего дистрибутива Debian 7 Wheezy.

Устранить недостатки предыдущей СС.
Исходные данные

1) Расширить дистрибутив Debian 5 Lenny новыми программными компонентами и начать сборку на нем, с последующим его итеративным обновлением.
2) Создать новую систему кросс-сборки, с применением технологии multi-arch (стандарт создания пакетов), а затем наполнить ее недостающими пакетами из Debian
5 Lenny.
Подходы к реализации

Подходы к реализации
Расширение Debian 5 Lenny
+ Проверенный метод
+ Возможность запуска тестов нового ПО в процессе сборки
- Долгое время сборки
- Наличие циклических зависимостей
- Значительная разница в версиях между 5 и 7 Debian

Подходы к реализации
Кросс-сборка с применением технологии multi-arch
+ Значительное ускорение сборки
+ Необходимость в разрешении только run-time зависимостей, автоматическое избавление от циклических зависимостей
+ Возможность быстрого перехода на сборку под другие архитектуры и различные версии компилятора
- Невозможность проводить тестирование во время сборки для целевой архитектуры
- Необходимость делать новую систему с нуля
- Не все исходные коды поддерживают новую технологию

Стандарт multi-arch
Исходный код
Foreign платформонезависимые компоненты: некоторые заголовочные файлы, скрипты, инструменты сборки, исполняемые файлы
Same платформозависимые компоненты: статические и динамические библиотеки, некоторые заголовочные файлы

Программные компоненты разделяются на два типа same и foreign

Сборка пакетов с использованием утилит поддерживающих формат multi-arch

Получаются пакеты -dev с библиотеками, которыми наполняется cross-root и пакеты -bin содержащие исполняемый код под целевую архитектуру

Пакеты помещаются в репозиторий, используемый для формирования дистрибутива
Инструменты сборки поддерживающие формат multi-arch дистрибутив
Пакеты -bin
Пакеты -dev

Подготовка пакетов системы программирования (СП)
Окружение сборки (Debian 7
Wheezy x86)
Исходный текст СП
1.
Кросс-компилятор оформляется в виде deb- пакеты для ахитектуры х86 2.
Native часть СП разбивается на пакеты соответствующие аналогичным в Debian (такие как libc6, libc-bin, libstdc++, binutils, gdb)
3.
Same используютяся для наполнения cross-root и отправляются вместе с foreign в репозиторий
В итоге написаны скрипты генерирующие пакеты в соответствии с требованиями технологии сборки.
Кросс-компилятор в формате x86.deb
Foreign в формате e2k.deb
Same в формате e2k.deb
Скрипты для генерации пакетов cross-root e2k-repo

Процесс портирования
Debian Project source code
SVN
Окружение сборки cross-root e2k-repo e2k.deb same e2k.deb x86-repo foreign x86.deb
Обнаружены 2 группы проблем:

Отсутствие поддержки пакетами Debian формата multi-arch

Отсутствие поддержки кросс-сборки пакетов

Проблема поддержки multi-arch
Отсутствуют:
1. Разделения на библиотечные и исполняемые файлы
2. Новых путей вида /lib/-linux-gnu
3. Маркировок same и foreign
Решением данных проблем является внесение изменений в правила сборки deb-пакетов.

Отсутствие поддержки кросс-сборки
1.
Невозможность полноценного запуска утилиты configure.
Решение:
поддержка актуального состояния файла config.cache
2.
Запуск тестов во время сборки пакета
3.
Отсутствие определения целевой архитектуры
4.
Некорректный вызов кросс-компилятора
Решение 2-4:
автоматическое определение режима кросс-сборки
5.
Проблема “компиляция-исполнение” - стандартного решения нет, необходимо компилировать файлы одновременно под host и target архитектуры

Автоматизация сборки и тестирования
SVN
x86-repo e2k-repo
Автоматизированная система сборки checkout foreign deps same deps upload e2k-host debootstrap

Разработана система автоматизированной пересборки и наполнения репозитория целевой архитектуры

Наполнение cross-root осуществляется автоматически с помощью инструментов управления зависимостями debian, непосредственно в процессе сборки пакетов

Тестирования проводится в полуавтоматическом режиме на целевых машинах debootstrap - средство автоматического формирования корневой файловой системы linux

Результаты

Применение кросс-сборки позволило увеличить скорость сборки пакетов и автоматически избавляет от циклических зависимостей

Добавление поддержки формата multi-arch во все пакеты позволило осуществлять наполнение cross-root непосредственно в процессе сборки

Разработана автоматическая система пересборки и наполнения репозитория

Написаны скрипты для автоматической генерации пакетов с системой программирования и удовлетворяющие требованиям новой системы сборки
На данный момент внесены соответствующие изменения и собраны пакеты из базовой системы Debian 7 Wheezy (107 пакетов) с применением описанной технологии. Всего в репозитории для e2k находятся 289 пакетов.

Каталог: files
files -> Основная часть 1 История создания школы
files -> Методические рекомендации по проведению Дня Знаний, посвященного Году кино в РФ
files -> Подросток и компьютерные игры
files -> Программа духовно-нравственного развития и воспитания обучающихся на уровне среднего общего образования
files -> Правила закаливания… Выпуск №1. Чтоб улыбка сияла. Мама первый стоматолог
files -> О существовании значения игры преследования
files -> Учебное пособие по нейрохирургии. Часть I. Краткая история нейрохирургии. Черепно-мозговая травма санкт-Петербург 2015


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал