Вторая
международная конференция
разработчиков свободных программ
на Протве
Тезисы докладов
Обнинск
25-27 июля 2005
Оформление и дизайн: Илья Кравец
Верстка: Илья Машкин
В сборнике представлены тезисы докладов,
одобренных Программным комитетом Второй
международной конференции разработчиков
свободных программ на Протве. Другие материалы
конференции можно найти по http://conf.altlinux.ru © Коллектив авторов, 2005 © ALT Linux, 2005 Программа конференции 24 июля 18.00 – 22.00: Регистрация в холле гостиницы......7 25 июля 10.00 – 12.30: Регистрация в холле гостиницы.
12.00 – 12.30: Кофе Дневное заседание 12.30 – 14. 12:30-13:00: Открытие конференции 13.00 – 13.45: Дмитрий Тараканов Программа Intel Software Network и инструменты компании для разработки программного обеспечения.
13.45 – 14.30: Вартан Хачатуров Linux в компании Siemens: история успеха............ Вечернее заседание (15.30 - 19.00) 15.30 – 16.15: Станислав Иевлев Alterator как платформа разработки.
16.15 – 17.00: Дмитрий Тараканов Оптимизация производительности сервера MySQL*
17.30 – 18.15: Федор Зуев "GNU GPL как юридический вездеход".
18.15 – 19.00: Александр Боковой Samba 4 - состояние, перспективы, реальность.
Практическая демистификация.
26 июля.
Утреннее заседание (9.30 – 14.00) 9.55 – 10.20: Александр Ковтушенко Инструмент для визуализации трассы выполнения параллельной программы - TV 2.0
10.20 – 10.45: Сергей Гонтарев Необитаемый аппарат для подводных исследований
10.45 – 11.10:Вадим Житников Портирование свободного программного обеспечения на платформу Windows CE
11.10 – 11.35: Антон Качалов Многоплатформенность в ALT Linux Sisyphus......... 11.50 – 12.15: Алексей Гладков Новые технологии в проекте Sisyphus
12.15 – 12.40: Петр Савельев "GNU RAD/Linux как пример разработки дистрибутива на базе ALT Linux Sisyphus"............... 12.40 – 13.05: Анатолий Якушин, Раиль Алиев OpenOffice.org 2.0 - новая версия, новые возможности
13.05 – 13.30: Михаил Пожидаев Обзор систем для работы в среде GNU/Linux без зрительного контроля
13.30 – 13.55: Георгий Курячий Средства разработки "типовых решений": утопия и реальность
14.45 – 15.10: Алексей Федосеев Использование и модификация проекта User Mode Linux для организации хостинга на основе виртуальных выделенных серверов
15.10 – 15.35: Андрей Столяров Библиотека InteLib - инструмент мультипарадигмального программирования............. 15.35 – 16.00: Дмитрий Левин Hasher: технология безопасного выполнения приложений
16.00 – 16.25:Алфекс Кейнокенн, Иван Тарасов Разработка opensource ПО для распознавания языков, частых ошибок на базе AI-like алгоритмов............... 16.25 – 16.50: Денис Овсиенко Конфигурация современных сетей в среде Linux..... 17.10 – 19.30: Круглый стол "Сообщество и корпорации". Ведущий Александр Боковой (IBM LTC, Samba project).
9.30 – 9.55: Вадим Машков Рекомендации по миграции на СПО Проект migration.osdn.org.ua
9.55 – 10.20: Виталий Липатов
10.20 – 10.45: Петр Новодворский Компонентная сборочная система Samba 4.0............ 10.45 – 11.10: Георгий Курячий Компьютерная грамотность в школе: научение или дрессура?
11.10 – 11.35: Михаил Якшин Система автоматизированного тестирования и контроля качества оборудования "Inquisitor".......... 12.00 – 12.25: Дмитрий Белявский, Виктор Вагнер, Артем Чуприна Криптографическая русификация OpenSSL: решения, проблемы, перспективы
12.25 – 12.50: Игорь Головин, Андрей Столяров Мультипарадигмальный подход к преподаванию программирования и роль свободного ПО............. 12.50 – 13.15: Григорий Панов Интеграция автоматизированных систем учета системами управления взаимоотношений с клиентами
13.15 – 13.40: Александр Сенько, Михаил Якшин Подходы к организации распределенных систем учета (ввод и каталогизация информации).............. 14.30 – 14.55: Юрий Седунов, Андрей Паскаль Кроссплатформеная модельная реализация учетной системы для нужд электронного государства.......... 14.55 – 15.20: Андрей Стрельников Применение бизнес правил в системах разграничения доступа
15.20 – 17.00: Круглый стол "Свободное программное обеспечение в электронном государстве" Ведущие Анатолий Якушин, Алексей Новодворский............ 17.00 – 18.30: Продолжение круглого стола 18.30 – 19.00: Закрытие конференции.
Дополнительное выступление 27 июля, 9:00 Лепихов К.А. Новые технологии и проекты сообщества Mozilla.org
Тезисы присланные на конференцию Бартунов О.С., Сигаев Ф.Г. Написание расширений для PostgreSQL с использованием GiST
24 июля 18.00 – 22.00: Регистрация в холле гостиницы 25 июля 10.00 – 12.30: Регистрация в холле гостиницы.
12.00 – 12.30: Кофе 12.30 – 13.00: Открытие конференции.
13.00 - 13. Дмитрий Тараканов Москва, Intel Программа Intel Software Network и инструменты компании для разработки программного обеспечения.
В докладе представлен краткий обзор новой программы для разработчиков Intel Software Network и инструментов для разработки программного рассказывается о возможностях новых версий инструментов Интел.
13.45 – 14. Вартан Хачатуров Siemens Linux в компании Siemens: история успеха.
Доклад посвящён истории внедрения операционной системы Linux в качестве перспективной платформы для разработки встраиваемых устройств. Будут освещены задачи, которые требовалось решить созданному центру компетенции Embedded Linux, политика руководства компании по отношению к Linux, приведены некоторые примеры успешных продуктов на основе Linux.
Во второй логической части доклада будут представлены технологические особенности Linux и FOSS community, которые помогают компании Siemens в создании новых продуктов, и те аспекты, которые часто являются камнем преткновения для заказчиков.
14.30 – 15.30: Обеденный перерыв 15.30 – 16. Станислав Иевлев Москва, ALT Linux Проект: Sisyphus Alterator как платформа разработки.
Alterator - это платформа для разработки приложений, связанных с организацией интерфейса управления типовым решением на основе Unixподобной ОС и её служб. Задача проекта - упростить процедуру разработки таких решений, а также последующее их сопровождение и эксплуатацию.
С момента прошлогоднего доклада alterator сильно изменился, появилась и "отболела детскими болезнями" первая реализация, были уточнены многие моменты, появились новые наработки и идеи.
Alterator существенно отличается от других имеющихся проектов создания архитектур для построения конфигуратора.
Во-первых, они имеет не классическую двузвенную модель интерфейс-бакенд, а трёхзвенную:
интерфейс-модель-бакенд. Наличие ещё одного промежуточного слоя позволяет быстро создавать новые решения из готовых компонентов и не закладываться в низкоуровневой части (бакенд) на особенности того или иного создаваемого решения.
Во-вторых, имеется принципиальная возможность адаптации любой степени сложности уже готового, поставляемого решения без модификации компонент, поставляемых из коробки, что позволяет избежать проблем при проведении экстренных обновлений системы.
В-третьих, при решении той или иной задачи вы пишете тот или иной компонент на произвольном, наиболее подходящем для решения задачи языке программировании без каких-либо биндигов (привязок) к несущей среде.
Единственное исключение (которое исчезнет в будущем), это единый, регулярный язык описания интерфейсов. В качестве базового языка был выбран Scheme. Его размеры (это один из самых маленьких универсальных языков программирования), а также особенности синтаксиса позволяют сделать описания интерфейсов легко читаемыми и одновременно избежать изучения дополнительных языков разметки.
При традиционном подходе (XUL) вам надо изучать отдельно: язык разметки (в данном случае xml), который зачастую обладает собственным достаточно нерегулярным синтаксисом, язык описания динамики виджетов (javascript). Также, ещё часто требуется некий вариант препроцессора, для создания первоначального заполнения виджетов данными, взятыми у backend. В случае alterator - для всего этого надо будет изучить минимум одного единственного языка - Scheme.
Вот небольшой пример описания интерфейса:
(hbox (id 'my-label (label "Some Label")) (button "Some Button" Как видно он совершенно не уступает по читаемости своему XML-аналогу и имеет регулярный синтаксис.
Данный конкретный пример к тому же не использует не одну из конструкций языка Scheme, хотя производит достаточно сложные действия.
Хорошей демонстрацией использования alterator является реализации системы установки и конфигурирования дистрибутива ALT Linux 3.0.
Инсталлятор системы состоит из трёх стадий, где две последних являются приложениями Alterator (в текущем ALT Linux 3.0 Compact вторая стадия ещё является самостоятельной программой). Интересно, программирования для описания интерфейса позволило максимально использовать одни и те же диалоги конфигурования в трёх вариантах: как один из шагов инсталлятора, как один из модулей в Control Center, и как отдельное самостоятельно приложение.
16.15 – 17. Дмитрий Тараканов Москва, Intel Оптимизация производительности Рассказ о том, как инженеры компании Интел и MySQL* AB работают над увеличением производительность сервера MySQL*. Приводится анализ производительности сервера MySQL*, рассказывается о применении инструментов Интел для увеличения производительности, приводятся результаты работы.
17.00 – 17.30: Кофе 17.30 - 18. Федор Зуев.
GNU GPL как юридический вездеход 1) GNU GPL - жемчужина хакерского искусства hacker, n. [originally, someone who makes 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum 6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
( Jargon File (4.4.4, 14 Aug 2003) ) GNU GPL важна для сообщества свободного софта во многих отношениях. И как “конституция свободного софта”, и как талантливый пропагандистский памфлет, и как юридическая защита разработчиков свободных программ.
И пример того, как хакерская культура и традиция порождают значительные результаты и за пределами собственно программирования. Можно сказать, что GNU GPL - программа, исполняемая на человеческом обществе. Успех GPL породил серию попыток использовать дозированную передачу прав как инструмент социального конструирования. С весьма скромными успехами.
В особенности это заметно в делах международных.
GPL успешно функционирует в десятках стран с самыми различными юридическими системами. В от время как проект Сreative Commons плодит тучи несовместимых между собой лицензий для каждой страны.
Поучительно поэтому изучить используемые GPL приемы. Не для создания собственных публичных лицензий - эта требуется нечасто, и чем реже, тем лучше - но чтобы уметь оценить качество многочисленных подражаний.
GPL избегает указаний на конкретные законы и юридические термины. Законы меняются от страны к стране и от эпохе к эпохе, а GPL рассчитывает действовать везде и всегда. Поэтому все специфически юридические термины оттуда исключены, кроме единственного упоминания “derivative work under copyright law”. Вместо этого GPL излагает волю лицензиара в возможно более простых и общеупотребительных словах.
GPL щепетильно точно следует духу закона.
Никакие попытки обойти закон, воспользоваться неясностью или крючкотворством, чтобы настоять на своем, здесь неприемлемы. Лицензия строится на основе фундаментальных и неизменны принципов права, ограничиваясь требованиями, которые можно привязать к таким принципам.
GPL по возможности избегает создания чисто договорных отношений между лицензиатом и лицензиаром. Каждое требование к лицензиату по возможности основывается не только на желании лицензиара, но и подкрепляется нормой закона.
2) GPL в контексте российского законодательства В англосаксонских странах периодически вспыхивают жаркие дискуссии о том, является GPL “контрактом” или “лицензией” - различные правовые англо-американские формы. На самом деле GPL интерпретироваться как тем, так и другим образом.
В российском праве нет ничего похожего на американскую “лицензию”, так что GPL несомненно является договором. Точнее, офертой, предложением заключить договор, которое принимается пользователем в момент, когда он станет производить действия, причисленные законом к исключительным авторским правам.
В интерпретации GPL по российским законам есть и ряд тонкостей. Например: каким образом приобретает силу “подпись” лицензиара? В отношении компьютерных программ здесь существует специальная норма относительно права на “особый порядок заключения договоров путем изложения типовых условий договора передаваемых экземплярах программ”. Однако для общего случая приходится пользоваться более общей нормой ГК о публичной оферте. Получается, что не-программы, распространяющиеся не-публично выпадают из обоих норм и вынуждены полагаться только на аналогию закона, то есть зависит от усмотрения и настроения судей.
При этом изготовители отдельных экземпляров свободных программ выступают в роли представителей лицензиара при заключении такого договора.
3) Надуманные и реальные проблемы GPL в России Существует ряд расхожих мифов относительно проблем, возникающих у GPL под российской юрисдикцией. Большинство из них не имеют под собой реальных оснований.
“Российский закон о правах потребителей запрещает отказ от гарантийных обязательств”.
Или еще какие-либо утверждения со ссылками на этот закон. На самом деле предметом регулирования являются “ возникающие между потребителями и изготовителями, исполнителями, продавцами при продаже товаров (выполнении работ, оказании услуг)”. Передача авторских прав, которая является предметом GPL, не принадлежит ни к одной из этих категорий.
“Договор в России должен быть на русском языке”.
На самом деле российское законодательство не говорит ничего о языке договора и вообще не требует использования естественного языка. Кассовый чек в магазине содержит строчки маловразумительных цифровых сокращений - но тем не менее является наиболее распространенной формой письменного договора.
С другой стороны, в российском законодательстве существует ряд действительных, скажем осторожно, шероховатостей в отношении GPL.
Закон РФ об авторском праве не предусматривает безвозмездную передачу прав. Согласно букве закона любая передача авторских прав предполагает вознаграждение автора, причем иногда для вознаграждения установлен нижний предел.
Сочетание авторского договора с договором дарения осложняется тем, что право дарения между коммерческими организациями весьма ограничено.
Выглядит внушительно, но на самом деле от безвозмездных авторских договоров зависит настолько широкий сложившейся практике (Интернет, научная и периодическая печать, реклама) что фактическое запрещение их маловероятно.
Закон РФ требует явного перечисления каждого способа использования, права на которое передаются и запрещает передачу прав на способы использования, неизвестные при заключении договора. Это значит, что спустя длительное время после опубликования произведения, распространение его через новые, неизвестные на момент публикации каналы может быть поставлено под сомнение.
Цели GPL вступают в конфликт с существованием и деятельностью “обществ по коллективному управлению авторскими правами”. Правда, касается это пока в основном музыкальных произведений и фонограмм, которые под GPL лицензируются редко.
18.15 – 19. Александр Боковой Москва, IBM LTC Samba 4 - состояние, перспективы, реальность. Практическая В 2003 году Samba Team начала работу над амбициозным проектом создания свободной полноценной реализации технологий Active Directory. Каково состояние проекта? Что следует ожидать в краткосрочной и долгосрочной перспективах?
Доклад представляет собой демонстрацию развертывания Samba 4 в качестве сервера ADS и интеграцию Windows XP в свободную реализацию Active Directory.
26 июля.
Утреннее заседание (9.30 - 14.00) 9.55 – 10. Александр Ковтушенко МГТУ Инструмент для визуализации трассы выполнения параллельной программы TV 2. Оправданием затрат, понесенных при разработке параллельной программы, является достигнутое повышение скорости счета нашей задачи. При разработке параллельной программы используются методики предварительной оценки скорости «многофакторность» поведения проектируемого объекта ограничивают точность предсказания.
Средством для нахождения узких мест, «доводки»
параллельной программы является получение и анализ профиля выполнения параллельной программы. Одним из ценных средств компонент инструментальной среды, применяемых для этой цели, является связка: библиотека для автоматической (точнее - «почти автоматической») фиксации событий времени выполнения параллельной программы + диалоговая среда для просмотра/анализа накопленных данных.
инструментальной среды для разработки параллельной программы. Критериями являются:
Доступность инструментального программного обеспечения Предварительная оценка эффективности счета на доступном параллельном вычислителе нашей прикладной задачи в данной инструментальной Трудоемкость кодирования и отладки Архитектура параллельной ЭВМ определяет доступный набор инструментальных средств.
Архитектура кластерных мульти-ЭВМ в настоящее время доминирует: раз в полгода публикуется отчет о 500 наиболее производительных ЭВМ (http://www.top500.org/), на данный момент последний 25-ый релиз состоит из кластеров на 60,8%. Важнейшим достоинством кластеров является их относительная дешевизна (на единицу пиковой производительности). В нашем Отчестве они представляют почти весь парк параллельных ЭВМ.
Кластер как правило содержит два уровня для организации параллельных вычислений:
Коммутатор, объединяющий вычислительные узлы, каждый из которых является серийно выпускаемым компьютером, В каждом вычислительном узле работают несколько (как правило- два) процессора. Каким программным обеспечением поддерживается работа кластера и разработка прикладного программного обеспечения?
Основными инструментальными средами являются MPI и OpenMP.
Среда MPI (Message Passing Interface) основывается на открытом стандарте, разработанным открытым образом (общедоступен не только сам стандарт, комментарии-рекомендации к нему, но и рабочие документы MPI-Форума, протоколы постатейного голосования, обсуждавшиеся замечания, возражения). MPI предоставляет средство взаимодействия задач, т. е. вычислений выполняющихся в разных адресных пространствах.
Стандарт исключает какое-либо скрытое, не включенное в предоставленный программисту API взаимодействие ветви параллельного процесса со средой MPI. Это позволяет эффективно переносить программы с одной реализации MPI на другую.
Базовой реализацией MPI является MPICH, опубликованная под своей собственной открытой лицензией (не накладывается никаких ограничений).
При этом широко распространены коммерческие продукты, ориентированные на аппаратные особенности коммутаторов. Например:
• шведская компания SCALI является интегратором, т. е. поставляет доработанную среду MPI, а также средства администрирования кластера.
• американская компания Myricom поставляет аппаратную часть (коммутатор) и адаптированную реализацию MPI.
Коммерческие продукты являются, как правило необходимым дополнением специализированного коммутатора, управляемого непосредственно (без слоя TCP/IP).
Среда OpenMP основывается на открытом стандарте, разрабатываемом OpenMP Architecture Review Board.
Разработка стандарта продолжается – версия OpenMP 2.5 от мая 2005 г. При этом OpenMP предоставляется средство выполнения параллельной работы над данными в общей памяти. В текст программы обрабатываемые компилятором. Получаемый таким образом результат может быть заменен ручным кодированием параллельных нитей/легковесных аппаратнозависимых оптимизаций). Обработка OpenMP является как правило одной из опций компилятора, поддерживается последними компиляторами Intell, HP, SGI, IBM, Fujitsu, однако к университетских проектов доступны открытые решения:
- http://www.odinmp.com/ - http://phase.hpcc.jp/Omni/home.html Разрабатываемый нами визуализатор является частью инструментальной среды MPI. Он позволяет выявить недостатки проектируемого параллельного алгоритма, выявить особенности функционирования коммутатора. Полученный опыт показывает, что латентность коммутатора существенно зависит от предшествовавших пересылок. Основным функциональным расширением TV 2.0 (текущая альфа версия) является сетевой режим, т. е.
возможность удаленного просмотра трассы параллельной программы. Интеграция его со свободными средствами среды OpenMP является нашей следующей задачей.
10.20 – 10. Сергей Гонтарев Институт океанологии РАН Необитаемый аппарат для подводных При разработке морских исследовательских приборов в силу неполной определенности среды исследований невозможно заранее описать весь комплекс необходимых функций. В большинстве случаев набор функций, выполняемых прибором, уточняется и дорабатывается в процессе эксплуатации прибора. Требования к набору функций подводного аппарата могут существенно изменяться при работе на различных типах объектов. Ввиду сложности имитации полного набора факторов, воздействующих на подводный аппарат окончательная отладка должна проводиться только в реальной среде.
Один из вариантов построения комплекса для проведения подводных исследований необитаемым подводным аппаратом представлен в докладе.
Отличительной особенностью данного аппарата является его специализация на проведении исследований. При проведении измерений для получения максимального количества информации необходимо иметь возможность изменять условия проведения эксперимента, как в процессе отдельного эксперимента, так и при переходе от эксперимента к эксперименту. При этом каждый исследователь должен иметь возможность индивидуально настраивать свой комплекс приборов. Возможен режим совместного использования отдельных приборов. Повышение эффективности проведения исследований также может быть получено введением интеллектуального режима работы приборов.
Система также должна позволять проводить быстрый экспресс анализ полученных данных, с целью своевременной коррекции условий проведения измерений. Для исследователя методы работы в системе не должны сильно отличаться от привычных.
Подводные аппараты используются, как правило, в двух конфигурациях. Первая для небольших глубин и малых скоростей течений. Вторая для глубин и течений, на которых становиться существенной парусность питающего кабеля. В первом варианте кабель опускается непосредственно с борта судна. Во втором варианте используется промежуточный бокс для спуска и подъема подводного аппарата. Бортовая часть, располагающаяся на судне, состоит системы питания, системы диагностики и тестирования, системы управления и системы сбора и отображения информации. При использовании промежуточного бокса в нем могут находиться часть систем питания и располагающееся на подводном аппарате, состоит из системы питания (вторичные источники питания), системы управления приводами движителей, системы подсветки, системы видеокамер, системы внутренних датчиков аппарата и системы исследовательских датчиков. Такой набор функций требует для своей реализации организации параллельного одновременной синхронизацией режимов их работы.
Возможны несколько подходов в построении аппаратной части подводного аппарата. Аппарат может быть построен с использованием микропроцессорной реализации отдельных функций с последующим объединением каналов управления в единый канал передачи данных. Его недостатком является необходимость написания значительного объема сервисных программ и сложность объединения такой системы со средствами получения и отображения данных. Построение на базе закрытых коммерческих продуктов, как правило, имеет ограниченную функциональность и сложности с изменением продукта под конкретный набор требований. Минимальная стоимость проекта получается при построении аппаратная части на широко используемом сетевом оборудовании.
Систему управления подводным аппаратом проектируется как локальная сеть с соответствующей аппаратурой и программным обеспечением.
Программная реализация системы управления построена на программном обеспечении с открытым кодом. Функции, не изменяющиеся в процессе эксплуатации, могут быть написаны в виде отдельно запускаемых процессов. Интерфейс работы с часто изменяемыми датчиками может быть реализован как в виде отдельного процесса, так и в виде WWW приложений. Открытость кода в данном случае позволяет проводить доработку, отладку и модернизацию функций непосредственно на месте эксплуатации, что значительно сокращает сроки работ, повышает качество и информативность исследований за счет более удобной эксплуатации прибора.
Подводный аппарат поставляет исследователю (группе исследователей) значительный объем информации. Наиболее удобным представляется использование привычных для исследователя средств первичной обработки информации. Как правило, в силу сложившихся привычек такие средства первичной обработки используются в среде Windows.
Система управления, построенная на основе стандартных сетевых средств и программного обеспечения, обеспечивает возможность подключения в качестве рабочих мест машин, работающих под управлением Windows или Unix.
Подводный аппарат может быть оборудован датчиками для проведения нескольких экспериментов в одном погружении. Для удобства работы с информацией система должна обеспечивать возможность независимого получения данных и индивидуальной организации их обработки и отображения каждым исследователем, что требует возможности организации нескольких рабочих мест.
Использование реализации в виде WWW приложений позволяет организовать просмотр их содержимого стандартными средствами просмотра, организовывать произвольное количество рабочих мест и изменять информацию, отображаемую на рабочем месте в соответствии с потребностями оператора. Средства отображения информации также как и датчики должны допускать легкую трансформацию в зависимости от выполняемых задач.
Поддержка системой управления аппарата сетевых архитектур обеспечивает совместимость приборов и возможность их использования в составе информационных систем верхнего уровня. Например, возможно подключение к корабельной информационной сети или объединение через канал связи с береговой сетью.
10.45 – 11. Вадим Житников ООО "Компания Скид" Портирование свободного программного обеспечения на платформу Windows CE распространённых ОС на КПК, и такая ситуация, повидимому, сохранится в обозримом будущем.
Поэтому проблема портирования свободного программного обеспечения на эту платформу является актуальной.
Программирование для платформы Windows CE весьма похоже на программирование для Win32 доступно подмножество MFC, сквозная поддержка unicode. Вместе с тем имеются определенные ограничения:
Не полная стандартная C run-time библиотека Отсутствует понятие текущей директории и переменных окружения Отсутствует командная строка Отсутствует терминальный ввод-вывод с возможностью перенаправления Эти ограничения серьезным образом усложняют перенос на Windows CE свободных программ, большинство из которых изначально предназначены для UNIX. Требуется создание дополнительных библиотек и консольных API.
Среди проектов портирования свободного программного обеспечения обеспечения на Windows CE в первую очередь следует отметить работу Rainer Keuchel (http://www.wince-devel.org). Проект основан на библиотеке собственной разработки celib.dll и консольной программы w32console. Переменные окружения эмулируются с помощью реестра.
Используется cross-компилятор gcc 3.0.3 c целевыми архитектурами аrm, mips и sh3, и binutils 2.11.2. В рамках данного проекта осуществлен успешный порт многих программ:
Vim, Emacs, Perl, Tcl/Tk, GCL, Maxima, gnuplot, rsync, Apache, XFree86 и др. Несмотря на то, что самые поздние сборки были выполнены в 2001-02 гг. для Windows CE 2.11 и 3.0 большинство программ вполне работоспособны даже в среде Windows Mobile 2003 SE (Windows CE 4.2). Существует активный форум http://groups.yahoo.com/group/wince-devel/ посвященный данному проекту и смежным вопросам.
В более поздних проектах широко используются библиотека newlib (http://sourceware.org/newlib/) и консольная программа PocketConsole/PocketCMD (http://www.symbolictools.de/public/pocketconsole/).
Newlib C библиотека, ориентированная на PocketConsole предоставляет API для терминальных програм, а PocketCMD реализованная на этой основе командная оболочка, близкая по возможностям к Windows NT cmd.exe.
Проект Voxware (http://wince.voxware.com:28575/Development% 20Tools/gnuwince.html) включает Linux crossкомпилятор gcc 3.3, binutils 2.13.91, newlib 1.11, имеется bash-подобная командная оболочка и набор утилит ps, kill, mkdir, cp, mv и т.д. Сервер rlogind позволяет удалённо использовать ush c любого rlogin клиента, если КПК подключен к сети.
(http://pocketgcc.sourceforge.net/) является nativeкомпилятором gcc 3.2 и binutils 2.13. Другой проект данного автора Pocket C# - порт C# компилятора DotGNU (http://pocketgcc.sourceforge.net/pcsharp/).
(http://mamaich.kasone.com/fr_pocket.htm) включает cygwin cross-компилятор gcc 3.3.3 и native-compiler, binutils 2.13.2.1, gdb, newlib 1.9, pthereads, SDL.
Используется PocketConsole.
Source Forge проект GNUDE (GNU Development Environment, http://gnude.sourceforge.net/) ставит целью создание полного набора GCC/binutils, сопутствующих утилит для разработки приложений для архитектуры ARM. В данный момент доступны Windows (cygwin) и Mac OS X cross-компиляторы.
предоставляют сборки своих программ для платформы Windows CE. Например: Perl CE (http://perlce.sourceforge.net/), TclKit Mobile (http://wiki.tcl.tk/TclkitMobile), wxWidgets (http://www.koansoftware.com/it/prd_svil_wxwince.htm) Несмотря на видимое обилие проектов, ситуацию с портированием свободного программного обеспечения на платформу Windows CE нельзя признать удовлетворительной. Некоторые проекты оставлены разработчиками, статус других не вполне ясен, общее число разработчиков невелико.
11.10 – 11. Антон Качалов Москва, ALT Linux Многоплатформенность в ALT Sisyphus Многие Linux-ориентированные компании и дистрибутиво-строители осуществляют выпуск и поддержку решений и дистрибутивов под платформы, отличные от ix86. До недавнего времени, Сизиф и его производные могли функционировать только на платформах семейства Pentium и старше.
Ситуация переломилась с появлением платформы x86_64. Это 64-х битная платформа, имеющая обратную совместимость с 32-х битной Intelархитектурой. То есть перед нами представитель так называемой BiArch-архитектуры.
Этапы внедрения новой платформы.
Первым этапом рождения новой платформы - это формирование минимального инструментария для сборки ядра и системных библиотек. Для этого необходимо собрать программы для кросскомпиляции. Традиционно, сюда входят: binutils, gcc, glibc. Это так называемый Toolchain. Причём, gcc собирается несколько раз - сначала только с поддержкой C, а потом, после сборки glibc, с поддержкой C++. Предпочтительнее всего собрать минимум, необходимый для загрузки системы, а дальше расширять набор программ в нативном окружении, если это позволяет конечная платформа.
Вторым этапом идёт сборка RPM, а далее минимального списка пакетов, необходимых для дальнейшей сборки в hasher'е.
Третий этап - этап добавления патчей, налаживание автоматизированной пересборки новых пакетов и синхронизация по отставшим пакетам с Сизифом.
Проблемы и их решения.
С BiArch-архитектурами возникает больше проблем в виду того, что необходимо поддерживать работу как и 64-х битных программ, так и 32-х битных в одной системе. Первый шаг по разрешению данной проблемы был добавление семейства директорий для 64-х битных библиотек и архитектурно-зависимых файлов. Как правило, это: /lib64, /usr/lib64, /usr/X11R6/lib64 и т. д. Данное решение сопряжено со множеством проблем, возникающих при пересборке пакетов под данную архитектуру, так как многие библиотеки и программы не расчитаны на использование lib64. Во многом это решается небольшими исправлениями в Makefile'ах и configureскриптах. Реже требуется исправление исходного кода программ.
Кросс-компиляция несёт в себе множество неприятных сюрпризов. Проблемы с кроссом в случае x86_64 начинали возникать ещё на этапе сборки полноценного toolchain, что только ещё больше подталкивало на перенос всей сборки в нативную среду.
Сборка RPM-пакетов несёт в себе массу проблем по сборочным зависимостям. Многие пакеты имеют кольцевую зависимость. И зачастую приходится собирать пакеты нечестным образом, отключая те или иные части пакета, или вмешиваясь в сам процесс сборки, подменяя или редактируя что-либо.
Но эти проблемы существуют ровно до тех пор, пока не будет создана минимальная самодостаточная пакетная база.
11.35 – 11.50: Кофе 11.50 – 12. Алексей Гладков Москва, ALT Linux Новые технологии в проекте Sisyphus В докладе рассказывается об изменениях произошедших за прошедший год,а также о дальнейших планах по автоматизации работы.
Проект incominger Год назад на этой же конференции была анонсирована автоматическая система проверки пакетов направляемых в репозиторий сизифа. За этот год система пережила несколько перерождений.
Были изменены основные алгоритмы, расширен функционал.
Проект sisyphus растёт и увеличивается количество пакетов каждый день приходящих в incoming.
Последовательная проверка такого пакетов занимает очень много времени. Чтобы решить эту проблему incominger был перепроектирован так, чтобы все независимые операции производились параллельно на нескольких серверах.
Для того чтобы иметь возможность проверять пересобираемость пакетов был написан новый алгоритм для создания очереди пересборки. Этот алгоритм основывается на сборочных зависимостях исходных пакетов. Также учитываются пакеты находящиеся в incoming, но еще не попавшие в репозиторий.
Основная задача этого алгоритма - это формирование списка пакетов из числа не пересобранных пакетов, которые можно попытаться собрать и они не зависят друг от друга.
сформулировать несколько условий, которые накладывает rpm:
До момента сборки невозможно узнать (очень трудно, если хотите) какие бинарные пакеты получатся из данного исходного.
Для сборки исходного пакета в сборочной системе должны быть все бинарные пакеты, указанные в сборочных зависимостях (BuildRequires).
Исходя их этих условий становится ясно, что построить граф зависимостей по исходным пакетам нельзя.
Такая ситуация очень печальна, но из нее есть выход.
Если нам не удастся определить порядок заранее, можно решать проблемы по мере их поступления.
Основная идея в том, чтобы определять какие исходные пакеты можно пересобрать в данных момент времени. Для этого помимо репозитория sisyphus, нам понадобится еще один (внутренний) репозиторий. В нем будут находится пересобранные пакеты.
Алгоритм вычисления очереди выполняется в цикле после каждой очередной сборки пакетов до тех пор, пока на очередной итерации не соберется ни один пакет. Это означает, что мы достигли "стабильного" состояния и оставшиеся пакеты нельзя собрать для этих репозиториев (внутреннего и внешнего).
Минус такого алгоритма состоит в том, что мы не можем предвидеть ход сборки более чем на один шаг вперед. Это затрудняет отслеживание циклических зависимостей.
Начиная с версии 0.0.8 в incominger добавлена возможность параллельной проверки пакетов под несколько платформ одновременно.
Для удобства разработчиков проекта sisyphus incominger хранит и публикует все логи проверок.
Логи от пакетов разделены на две группы:
Логи от пакетов, прошедших все проверки и добавленные в репозиторий;
Логи от пакетов, не прошедших в сизиф.
Планы Планируется добавить проверку пакетов на создание неудовлетворенностей в репозитории. Также планируется добавить алгоритмы направленные на автоматическое устранение неудовлетворенностей. К сожалению не всегда можно установить виновника создания неудовлетворенностей и тем более автоматически устранить проблему.
Планируется добавить возможность создания веток (branch) репозитория sisyphus. Это позволит формировать срезы проекта основывающиеся на определенном критерии. Как частный случай можно рассматривать создание дистрибутива.
Также планируется создание интеграция incominger с системой отслеживания ошибок. К сожалению, эта интеграция требует принятия некоторых соглашений среди членов команды.
Проект incominger-dude Этот проект находится в стадии разработки и предназначен для облегчения и ускорения работы членов команды разработчиков.
Основная цель этого проекта - это предоставление простого и удобного интерфейса к incominger. На данный момент планируется создание только mailинтерфейса.
Через этот интерфейс мантейнеры могут вносить изменения в свои пакеты на стороне сервера (incoming). Например, будут доступны следующие команды для incominger:
Пересобрать пакет;
Изменить версию, релиз и changelog и пересобрать Собрать пакет Х и если он соберется, то пересобрать все пакеты кому он нужен.
Таким образом, будет возможность задавать некоторую простую логику действий.
12.15 – 12. Петр Савельев JSC Eltel GNU RAD/Linux как пример разработки дистрибутива на базе ALT Sisyphus 1. Введение Разнообразие оборудования и программных средств, с которыми приходится иметь дело системным и сетевым администраторам Internet-провайдеров часто создаёт сложности в работе. Одним из возможных решений является использование сетевых устройств одного производителя. Другим решением может быть создание решений с однотипным интерфейсом.
Данная работа является иллюстрацией второго подхода. Решение должно предоставлять базовые возможности маршрутизации, фильтрации и учёта трафика, а также авторизованного доступа клиентов к сети. Также планируется использовать решение для организации виртуального хостинга.
2. Решения и поддержка В качестве операционной системы была выбрана ОС GNU/Linux, как из-за лицензирования так и из-за удобства разработки специализированных решений на её базе. Значительную роль в выборе сыграли также возможности ОС GNU/Linux в области маршрутизации и коммутации трафика.
Разработка и поддержка такого рода решения подразумевает использование широкого круга ПО, которое, будучи доступным по условиям лицензии GPL, тем не менее, требует усилий по отслеживанию новых версий и исправлений. Возможным вариантом является сборка с опробованными версиями программ и отказ от модернизации решения. Такой вариант хорош тем, что работоспособность решения протестирована, решение является типовым и никаких неожиданностей в его работе в штатных ситуациях не предвидится. Минусом является потенциальное наличие в ПО уязвимостей и ошибок, неизвестных на момент сборки. Позднейшее появление информации по таким уязвимостям поставит под удар все инсталляции решения, а приём «security by obscurity» в данном случае неприемлем как из-за использования открытого ПО, так и в силу небольшой эффективности данного подхода.
Другой вариант – самостоятельная сборка новых версий и тестирование их на совместимость с уже используемым ПО. Однако, такие задачи и решаются мантейнерами дистрибутивов и сообществами пользователей GNU/Linux, обычно в рамках политики того или иного дистрибутива. Было бы неразумно не воспользоваться результатами их работы и их опытом. И это создаёт предпосылки для третьего варианта. То есть, для разработки «дочерних дистрибутивов» на базе уже собранных и протестированных пакетов.
Использование разнообразного ПО в рамках одного зависимостей между отдельными программными пакетами. Среди инструментов по отслеживанию подобных зависимостей одним из старейших и удачных является apt (Advanced Package Tool), разработанный командой Debian.
Работа apt требует наличия репозитариев (хранилищ) собранных пакетов, и на данный момент такие репозитарии есть для многих крупных дистрибутивов GNU/Linux.
3. Коротко о самом проекте На данный момент RAD GNU/Linux представляет собой небольшое монолитное решение. Большинство базовых утилит предоставляет пакет Busybox. Шелл (rt-shell) написан с использованием GNU awk и пакета rlwrap, в качестве примера был принят удачный подход с контекстной помощью при автодополнении, используемый в устройствах Cisco (r) и Juniper (r). Настройка RAD GNU/Linux осуществляется утилитой rt-networkс помощью файла (ов) конфигурации, также имеющем Cisco-like формат. Обе утилиты написаны в рамках проекта RAD GNU/Linux, однако могут использоваться и вне его.
Одним из нечасто встречающихся решений является использование vserver для управления штатными сервисами. Для каждого сервиса (ntpd, httpd, dhcpd и так далее) создаётся свой контекст выполнения. Это является дополнительным фактором в обеспечении безопасности, так как с помощью vserver можно ограничивать очень многие параметры, начиная от привилегий и кончая квотами на дисковое пространство и вычислительные ресурсы для каждого контекста. Также это сильно облегчает управление сервисами. Например, для остановки сервиса не нужно иметь корректный pid-файл и не нужно вычислять всех его потомков. Достаточно остановить все процессы заданного контекста.
4. Заключение В качестве базы для сборки решения был выбран ALT Sisyphus. Основными доводами стали большой выбор, большая оперативность по обновлению пакетов и довольно высокое качество тестирования.
Особое внимание команда ALT уделяет безопасности ПО, что также часто является плюсом.
Однако существуют ситуации, когда представленного в Sisyphus ПО недостаточно, что требует создания собственного репозитария. И такой репозитарий в рамках ALT сделать также легко, а специфика сборки rpm-пакетов делает создание собственных пакетов не сильно обременительным. Сборка решения осуществляется скриптом на базе проекта separator Антона Фарыгина.
В заключение хочется отметить, что на данный момент решения ALT могут служить удобной базой для создания собственных решений, предоставляя всё необходимое для сборки и облегчая задачи по обновлению ПО.
5. Ссылки ALT Sisyphus – http://www.altlinux.ru/index.php?module=sisyphus Busybox – http://www.busybox.net/ Cisco (r) – http://www.cisco.com/ Juniper (r) – http://www.juniper.net/ 12.40 – 13. АнатолийЯкушин Раиль Алиев Инфраресурс Проект: OpenOffice.ru OpenOffice.org 2.0 - новая версия, новые Доклад посвящен особенностям новой версии свободного офисного пакета OpenOffice.org и новому свободному формату электронного документа.
13.05 – 13. Михаил Пожидаев Томский Госуниверситет Обзор систем для работы в среде GNU/Linux без зрительного контроля Доклад является обзором средств для работы в системе GNU/Linux людей с ослабленным зрением. Рассматривается применение подобного программного обеспечения зарубежом, а также состояние дел и существующие проблемы для пользователей России. Большое внимание уделено синтезаторам речи, пригодных для использования в среде GNU/Linux.
Всё программное обеспечение, которое может понадобиться человеку с ослабленным зрением, пригодное для использования в среде GNU/Linux, делится на 3 группы, каждая из которых заслуживает отдельного рассмотрения:
1. пакеты для снятия экранной информации, так называемые, screen reader'ы;
2. речевые синтезаторы;
3. пакеты для взаимодействия screen reader'ов и речевых синтезаторов.
Ветераном среди пакетов для снятия экранной информации является пакет emacspeak. Он на сегодняшний день - самая развитая среда для использования незрячим пользователем. По своей сути это дополнение в оболочке GNU Emacs, написанное на языке lisp. В некоторой мере его популярность объясняется универсальностью среды GNU Emacs.
В последнее время появилось два проекта, предназначенных для перехвата всей информации, выводимой на экран в терминальном режиме.
Это пакеты Speak Up и YАSR. Пакет Speak Up выполнен в виде патча к ядру Linux. Он статически встраивается в операционную систему и перенаправляет текстовую информацию в специально зарегистрированное устройство для дальнейшей обработки.
Пакет YАSR (Yet Another Screen Reader) сделан как маленькая, хорошо переносимая программа, порождающая виртуальный терминал и посылающая весь появляющийся в нем текст в речевой синтезатор.
Такие программы удобны для работы с командной строкой, но совершенно непригодны, например, для редактирования текста.
Долгое время работе пользователя в графических средах без зрительного контроля не уделялось внимания. Но недавно был открыт проект Gnopernicus, предназначенный для работы в среде GNOME, и уже достигший заметных результатов.
Поддержка среды KDE пока не выходит за рамки общих рассуждений о потенциальной возможности работы незрячего пользователя.
Речевых синтезаторов, предназначенных для функционирования в среде GNU/Linux, и способных генерировать англоязычную речь не так мало, как это может показаться на первый взгляд. Здесь ситуация осложняется тем, что что их применение ограничено условиями распространения и использования. Среди синтезаторов, распространяемых на условиях GPL, нужно отметить системы Festival и Flite. Речевой синтезатор Festival изначально разрабатывался группой программистов из университета в Эдинбурге. Помимо самого синтезатора, ими был разработан целый пакет для работы с речью, но приложение получилось довольно неповоротливым и неудобным для практического использования. В настоящее время разработка заброшена. Другой, свободно распространяемый синтезатор Flite, значительно гибче предыдущего, но к его недостаткам относится плохое качество генерируемой речи.
Самым крупным и удачным пакетом для синтеза речи является синтезатор Via Voice компании IBM. Долгое время этот синтезатор был свободен для использования, но два года назад компания IBM запретила его открытое распространение и использование.
Одним из средств, подающим большие надежды конечному российскому пользователю, является связка FreeSpeech + Mbrola. По своей сути это два проекта. FreeSpeech занимается разложением текста на фонетические составляющие, а пакет Mbrola производит связывание звуков речи. FreeSpeech полностью открыт, и его использование ничем не ограничено, но у Mbrola нет исходных текстов, и вопрос об его распространении в составе дистрибутивов нужно оговаривать отдельно с разработчиками. В общем же случае, он свободно может быть скачан с сайта разработчиков.
Такое не очень утешительное положение вещей в мире синтеза речи имеет свои причины. В западных странах и США широко распространены аппаратные синтезаторы речи, которые представляют собой отдельное устройство, соединённое с компьютером через внешний порт. Зачастую у зарубежных пользователей нет никакой потребности в программном синтезаторе.
Пакеты YASR, Speak Up перенаправляют речевую информацию напрямую в порт синтезатора.
Пакет Emacspeak подразумевает наличие отдельного компонента для обработки речи – речевого сервера, в который передаётся текстовая информация. Сам пакет Emacspeak обработкой речи не занимается.
Для российских пользователей встаёт вопрос о разработке специального речевого сервера, поскольку необходимо различать обработку английской и русской речи. Единственным примером синтезатора для обработки русской речи является синтезатор ru_tts, который существует в варианте “как есть”, т. е.
без наличия исходных текстов и каких-либо распространения.
В начале 2001 года был распространён диск Slackspeak, автором которого был Игорь Порецкий.
Этот диск представлял собой вариант дистрибутива Slackware 7.0 с подготовленными для работы пакетами Emacspeak, FreeSpeech, Mbrola и ru_tts, но также без комментариев относительно легальности распространения синтезатора ru_tts и возможности его дальнейшего использования.
13.30 – 13. Георгий Курячий Москва, ALT Linux Средства разработки "типовых решений":
Конфигуратор - это средство быстрой (типовой, автоматической, непрофессиональной и т. п.) настройки операционной системы. Подобные средства есть во всех ОС, однако способ организации дистрибутивов Linux предъявляет к конфигуратору особенные требования. Полнофункциональные конфигураторы появились в Linux не сразу, а только после того, как настройка системы и служб перестала быть разовой высокопрофессиональной работой и перешла в руки операторов, а не администраторов системы.
Первыми возникли установщики - программы, позволяющие установить и первоначально настроить систему (такая работа всегда была кропотливой, а кроме того, большинство параметров настройки можно вычислить автоматически). После того, как в работе информационных систем начали складываться стереотипы - "типовые" службы, решающие "типовые" задачи, понадобились и конфигураторы, понимаемые, с одной стороны, как готовые решения этих задач, а с другой стороны - как инструмент разработки таких решений. Наконец, с увеличением компьютерного парка возникла необходимость масштабирования действие по настройке системы (например, однократная настройка и перенастройка профиля всех рабочих станций машинного зала).
В то время, как UNIX-системы, развивающиеся по модели ПО ЗК (программное обеспечение с закрытым кодом), легко решали задачу обновления установщика с каждым выпуском дистрибутива, Linux-системы и подобные им, основанные на ПО ОК (программное обеспечение с открытым кодом), столкнулись с трудностями: работа по постоянному воссозданию конфигуратора силами одной рабочей группы очень трудоёмка. Такая работа требует усилий сразу многих специалистов: системного аналитика, системного администратора, программиста (в том числе, знакомого с программированием пользовательского интерфейса), дизайнера и т. д. Сложность конфигуратора пропорциональна сложности дистрибутива.
Следовательно, конфигуратор Linux-системы должен создаваться с активным привлечением всего сообщества, причём самостоятельное расширение функциональности должно быть доступно в первую очередь членам сообщества, системным администраторам на местах. Коротко говоря, конфигуратор будет эффективен только тогда, когда, доверя некоторую обязанность пользователю (обычному оператору), обычный системный администратор предпочтёт воспользоваться не shell/Perl, а средствами имеющегося конфигуратора, так как с их помощью задачу решить будет легче и быстрее.
Какие требования предъявляются к идеальному конфигуратору ПО ОК?
Возможность создания пользовательской объектной модели. Пользователь не обязан знать тонкости реализации системы, но само решение его задачи должно быть описано в пользовательских терминах.
Это самое сложное требование. Несоблюдение его ведёт либо к просачиванию в пользовательский интерфейс узкопрофессиональных терминов (при этом пользователь может отказаться решать задачу вообще), либо к потере гибкости (одна кнопка - один результат). Кроме того, внутри конфигуратора необходимо постоянно отслеживать соответствие состояния системы в терминах объектной модели действительному положению дел в системе, производить синхронизацию, избегать "тупиков" и невосстановимых потерь данных.
Основные типовые задачи должны быть либо уже решены с помощью конфигуратора, либо решаемы в два-три приёма. Задачи более сложные или нестандартные также должны быть решаемы, причём сложность решения не должна нарастать лавинообразно при линейном росте сложности задачи. Подступая с таким требованем к неидеальному конфигуратору, следует прежде всего определить, какой класс задач с его помощью не решается или решается слишком большими усилиями.
Основное требование к конфигуратору ПО ОК возможность привлечения сообщества к его разработке. Оно распадается на три:
Простота доработки. Следует учитывать, что основные потребители конфигуратора как администраторы. Их рабочее время ограничено, и, вдобавок, от них нельзя требовать умения помногу и безошибочно программировать на различных языках.
функциональности в конфигуратор хотелось бы не писать слишком много программного кода, особенно если он не относится непосредственно к решению задачи. Во-вторых, для этого должно быть достаточно знаний системного администратора плюс вменяемого по размерам руководства.
Конфигуратор должен быть продуманно и внятно документирован. Это общее для любого ПО требование имеет здесь особую важность:
необходимо доходчиво изложить "идеологию" и архитектуру конфигуратора, так как от этого зависит, насколько модуль, написанный сторонним человеком из сообщества, окажется пригоден к общему использованию. Важно также создать ряд методичек и примеров написания таких модулей.
Конфигуратор должен чётко делиться на модули, как отвечающие разным функциональностям системы (горизонтальное деление), так и реализующие различные по уровню объектные модели (системную, пользовательскую и интерфейсную). Первое требование позволит свободно добавлять новые функциональности, а второе - разделять (возможно, между различными членами сообщества), работу по написанию пользовательского интерфейса, логики решения пользовательской задачи и по конкретной настройке системы.
Нами было рассмотрено три с половиной дистрибутива Linux и их конфигураторы: SuSE Linux 9.1 и YaST2, Debian Sarge и DebConf, Red Hat Enterprise Linux 4 AS и system-config, а также находящийся ко времени исследования на стадии разработки ALT Linux 3.0 Compact и ALTerator.
Вкратце результаты исследования по приведённым выше критериям выглядят так.
YaST2 Наиболее "далеко ушедший" в плане возможностей конфигуратор. Многие из "готовых решений" и в самом деле уже готовы. В SuSE разработан специальный язык программирования (YCL), позволяющий быстро описать и интерфейс и логику работы отдельного модуля. Системные ресурсы, с точки зрения YCL, унифицированы, так что никакими операциями по настройке, кроме read, write и execute, программисту пользоваться не надо.
Системный уровень не только отделён от пользовательского, но и соединён с ним специальным "трубопроводом" (SCR), что позволяет запускать YaST2 на одной машине, а настраивать любую другую! YaST2 и YCL прекрасно документированы. Однако написание модуля для YaST2 остаётся делом довольно трудоёмким, так как требует одновременно всех упомянутых нами в начале знаний. Все авторы модулей YaST2 сотрудники SuSE.
DebConf Наиболее "многообещающий" конфигуратор, возможности которого до конца не осознаны. Произошёл от естественного стремления не задавать пользователю одни и те же вопросы повторно, раз уж его уже спрашивали (например, при установке системы). DebConf предоставляет кеш таких вопросов/ответов и другие возможности манипуляции ими, несколько видов автоматически оформляемого интерфейса и очень простой текстовый протокол обмена данными. В результате DebConf-ом пользуются все сопровождающие пакеты в Debian (наличие конфигурационного сценария, работающего через DebConf - часть дисциплины Debian). На самом деле это означает и горизонтальное (вопро-ответ - пользовательская модель, результат работы сценария - системная),и тем более - вертикальное модульное деление. Очень остроумно решается проблема масштабирования и автоматической настройки: используется "никакой" интерфейс, то есть настройка системы идёт только на основании данных из кеша ответов. Документация и примеры по DebConf весьма толковы. Разработка логики на верхнем, пользовательском, уровне в DebConf пока находится в зачаточном состоянии (Debian - сообщество профессионалов), но единственным "родовым" недостатком DebConf можно назвать только невозможность сочинять сложные интерфейсные модели. В этом направлении сообщество просто ещё не думало...
system-config Конфигуратор в "старом стиле" - не рассчитанный на сообщество, с множеством недостатков на нестандартных задачах и в нестандартных условиях, совершенно не документированный технически. Единственное достоинство: основные "операторские" задачи в самом деле решены, так что дыра залатана.
ALTerator На время исследования находился в состоянии разработки. Использует изначально модульную технологию и разделение интерфейсной, пользовательской и системной моделей. Связь между модулями может осуществляться с помощью простого текстового протокола, а сами модули можно писать на каком угодно языке программирования (в YaST2 это верно только для модулей нижнего программирования Scheme, что, с одной стороны администраторам, но, с другой стороны, упрощает написание интерфейсных модулей, что, учитывая администраторам делать (может быть) и не придётся.
"Тёмная лошадка" среди конфигураторов: при надлежащем развитии из него может выйти почти идеальный (правда, не такой простой, как DebConf), при ненадлежащем - что угодно.
14.00 – 14.45: Обеденный перерыв Дневное заседание (14.45 - 17.00) 14.45 – 15. Алексей Федосеев ООО "Айя" Использование и модификация проекта User Mode Linux для организации хостинга на основе виртуальных выделенных серверов Основанием для данной работы явилась необходимость организации набора виртуальных серверов на одной машине. Такая задача возникает, например, в случае организации виртуального выделенного хостинга — пользователю выделяется собственный полноценный сервер, в рамках которого он обладает правами суперпользователя; для операционной системы же этот сервер является отдельным процессом или набором процессов.
К системе организации виртуальных серверов в этом случае предъявляются следующие требования:
• изолированность виртуальных серверов друг от друга;
• встроенный механизм ограничения использования ресурсов одним сервером;
• поддержка виртуальных сетевых интерфейсов;
• наличие средств администрирования.
Одним из решений, удовлетворяющих данным требованиям, является проект User Mode Linux (UML). Целью проекта, по сути представляющего собой модификацию ядра Linux, является запуск ядра операционной системы в качестве отдельного пользовательского процесса.
Запуск виртуальной машины с привилегиями простого пользователя позволяет настроить доступ виртуальной машины только к необходимым ресурсам системы. Виртуальные диски представлены в виде файлов, возможно создание Copy-on-Write образов дисков и проецирование директорий главного сервера в структуру каталогов виртуального. Виртуальные сетевые интерфейсы можно организовать несколькими способами, в том числе через TUN/TAP. Виртуальные консоли запускаемой системы могут быть связаны с файлами, файлами устройств терминалов и даже на TCPпортами.
Данная работа не претендует на роль сравнительного обзора существующих средств организации виртуальных выделенных серверов1. Однако, было бы интересно сравнить возможности UML с некоторыми широко распространенными аналогами, среди которых были выделены два: FreeBSD Jail и vserver linux.
1А таких систем, начиная от простых разработок и заканчивая серьезными коммерческими, например Virtuozzo, достаточно много.
Критерий оценки Операцион система Виртуальн ые сетевые интерфейс Уровень прав суперпольз ователя Возможнос перезагруз Возможнос ть смены Специальн хостсистемы Доступ к файловой системе хоста Права суперпольз ователя для запуска В таблице представлены результаты сравнения функциональности рассматриваемых решений.
Видно, что проект UML не уступает аналогичным существующим решениям.
Для администрирования виртуальным выделенным сервером на базе UML, а также для расширения его функциональности применяется набор дополнительных патчей:
• консоль управления — специализированная программа, взаимодействующая с виртуальным сервером и способная управлять им посредством набора команд (таких как start, stop, pause, proc — посмотреть содержимое файла в директории /proc, sysrq — отправить прерывание и т. п.);
• токены ввода-вывода — дополнительное средство подсчитывается число запросов к дискам, которое не должно привысить определенной в секунду величины.
• вывод ошибок ядра в поток stderr.
В рамках представляемого проекта эти и другие средства управления виртуальным сервером были структурированы и объединены в общий интерфейс администрирования. Этот интерфейс представляет собой комплекс утилит для управления и получения статистической информации о работе набора виртуальных серверов. В его состав входят программы, реализующие следующие функции:
• добавление новых и удаление существующих виртуальных серверов;
• запуск, останов и временное прерывание работы виртуального сервера;
• мониторинг состояния исполнения и уровня загрузки системы;
• простейшая система балансировки нагрузки (nice scheduler);
• комплексный файервол (организованный на базе iptables), задающий параметры доступа к виртуальным серверам по виртуальным сетевым интерфейсам;
• система централизованного бэкапа;
• программа для входа в виртуальную систему через одну из консолей.
Комплекс скриптов написан на языке Ruby.
Разработанное решение на основе проекта User Mode Linux позволяет построить достаточно гибкую систему виртуального выделенного хостинга и успешно применяется в работе нашей компании.
документации для администратора в настоящий момент готовятся к публикации под лицензией GPL в сентябре этого года.
15.10 – 15. Андрей Столяров МГУ им. Ломоносова, ВМК Библиотека InteLib - инструмент мультипарадигмального различной природы в рамках одного проекта. Дается краткая классификация существующих подходов и указываются их недостатки. В качестве решения позволяющая, не выходя за рамки языка синтаксически близкие конструкциям языка Lisp (а в перспективе – и других языков, таких как Рефал, Prolog, Datalog и Все многообразие существующих в настоящее время языков программирования можно при желании классифицировать по признаку господствующих традиций осмысления программы, принятых в сообществе программистов, пишущих на данном языке. Так, традиционные императивные языки стимулируют осмысление программы как набора приказов по изменению тех или иных данных;
объектно-ориентированные языки позволяют представлять программу как набор абстрактных объектов, обменивающихся сообщениями; при работе на языках логического программирования программа представляется как система фактов и аксиом, а исполнение программы состоит в попытке опровержения заданного утверждения; наконец, функциональные языки программирования описывают программу как набор функций, вычисляющих значение по заданным аргументам, а выполнение программы представляется вычислением значения некоторого выражения.
Менее фундаментальные особенности языков программирования также накладывают определенный отпечаток на мышление программиста; прекрасный пример этого приводит Тимоти Бадд в книге [1].