Автоматизированный анализ совместимости Linux приложений с различными дистрибутивами Владимир Рубанов, Константин Власов, Андрей Смачев Институт системного программирования РАН Центр верификации ОС Linux Software Engineering Conference (Russia) 2008, 24 октября 2008 года, г. Москва
2 Дистрибутив Linux Набор определенных версий связанных компонентов от различных производителей: –Ядро –Библиотеки –Системные программы –Приложения С точки зрения стороннего приложения дистрибутив Linux есть платформа, предоставляющая приложению набор программных интерфейсов (API / ABI)
Linux как платформа для приложений
4 Приложение Linux Набор взаимозависимых программных модулей, опирающихся на предоставляемые дистрибутивом внешние функции.
5 Внешние зависимости приложений Набор внешних библиотек (список soname и ABI_Tag) –Объединение DT_NEEDED записей секций.dynamic ELF модулей приложения (исключая межмодульные связи). Набор внешних интерфейсов (имена ELF-символов) –Фильтрация списка символов из.dynsym и.symtab секций ELF модулей приложения (исключая межмодульные связи).
6 Дистрибутивы Linux И еще более 500 наименований…
7 1.На каких дистрибутивах будет работать мое приложение? Заботы разработчика Linux приложений 2.Из-за чего именно приложение не будет работать на конкретном целевом дистрибутиве? 3.Что можно сделать, чтобы оно работало на как можно большем числе дистрибутивов?
Международный консорциум ( Образован в результате слияния Free Standards Group (FSG) и Open Source Development Lab (OSDL) Platinum члены Linux Foundation:
Российский Центр верификации ОС Linux Центр создан в 2005 году при поддержке Федерального агентства по науке и инновациям (Роснаука) и действует на базе ИСП РАН. –Развитие и продвижение открытых стандартов Linux –Разработка технологий и конкретных систем тестирования Linux –Консультации по разработке переносимых приложений –Помощь в миграции с других платформ на Linux
10 База знаний Linux Foundation Часть главной базы данных LSB Содержит сведения о: –составе 60 различных дистрибутивов (30 для архитектуры x86): Предоставляемые версии библиотек. Состав интерфейсов в этих библиотеках. –внешних зависимостях более 1000 приложений. Данные постоянно пополняются
11 Бесплатный и свободный инструмент для: –Анализа бинарной совместимости приложений с различными дистрибутивами из базы знаний LF. Соотнесение внешних зависимостей приложения с предоставляемыми дистрибутивами возможностями: –соответствие состава и версий библиотек; –соответствие состава и версий интерфейсов (функций и глобальных данных). –Анализа совместимости со стандартом LSB.
12 Общий вид интерфейса App Checker
13 Совместимость с дистрибутивами
14 Компоненты приложения
15 Внешние библиотеки
16 Внешние интерфейсы
17 Сертификация на соответствие LSB
18 Контакты Центр верификации ОС Linux Институт системного программирования РАН Владимир Рубанов Моб