Свежий номер №46 (423) / Конституционная анархия Debian Дата публикации: 04.12.2001 Петр Новодворский, nidd@cs.msu.su Варан Хачатуров, wart@softhome.net Статья основана на тезисах, подготовленных к Рабочей встрече «Свободное программное обеспечение: бизнес-модели и корпоративные инициативы», которая состоялась 28 ноября. Встреча организована Государственным университетом «Высшая школа экономики» и издательским домом «Компьютерра» при спонсорской поддержке IBM (www.ibm.com) и Sun Microsystems (www.sun.com). Debian - это операционная система, основанная на свободном программном обеспечении и использующая ядро Linux. Ее основными преимуществами перед другими дистрибутивами, с нашей точки зрения, являются:
Проблемы Разумеется, такой масштабный проект ставит ряд проблем. Некоторые из них типичны для любых крупных проектов по разработке ПО, некоторые специфичны для свободного ПО:
Решение проблем Все перечисленные проблемы (за исключением технической поддержки пользователей и управления оборудованием) в «обычных» проектах принято решать путем образования руководящих органов, отвечающих за каждое из направлений. То есть на ключевых постах мы имеем лиц, основное занятие которых - руководить. Не стоит рассказывать, «как узок их круг и как далеки они от подчиненных» и к чему это чаще всего приводит. Опять-таки, сосредоточение власти в руках одного-двух человек ведет к тому, что недостатки каждого из них становятся недостатками всего проекта. К тому же подобный метод не сработает в сообществе свободного ПО, поскольку там нет разделения на «начальников и подчиненных». Каждый - «волонтер», и все обладают одинаковыми правами. В сообществе Debian найден путь решения всех этих проблем, не ущемляющий ничьих прав и при этом помогающий созданию стройной, стабильной системы. Имя этому решению - регулирующие документы (policies). Практически каждый этап деятельности разработчика и функционирования проекта в целом регулируется соответствующим документом. Вот некоторые из них.
Работа члена команды Что же делает собственно разработчик? То есть как организован сам процесс? Подготовку пакета и его загрузку в архив можно разбить на следующие стадии:
Пакетная политика Одно из важнейших качеств операционной системы - ее целостность. В Debian на сегодня включены 4754 программы и библиотеки, они должны взаимодействовать и не мешать работе друг друга. Об этом заботится специальный набор правил, описывающих общее устройство системы, ее внутренний дизайн. Есть правила разработки: как включать новые программы в ОС и как соединять это все системой управления пакетами. В качестве свода «правил» выступает Debian policy. Интересно, что Debian policy продумана настолько, что позволяет создавать даже автоматизированные средства проверки пакетов на соответствие ей. Все пакеты, включенные в главную часть Debian, удовлетворяют критериям свободного программного обеспечения Debian, которые и определяют, что мы понимаем под термином free software. Это отлично работает тогда, когда нужно решить, подходит очередная лицензия от очередного коммерческого гиганта для Debian или нет. Учитываются следующие требования: свободное модифицирование, свободное распространение и свободное использование 1. Также важно, чтобы лицензия не была создана специально для Debian. Если лицензия не проходит, мы не отвергаем пакет, и если кто-то хочет, чтобы он присутствовал в архиве Debian (и лицензия продукта разрешает подобное его распространение), пакет может быть помещен в секцию non-free. Для пакетов из этой секции Debian предоставляет всю свою инфраструктуру, но они не включаются в официальные компакт-диски и не являются частью дистрибутива. Критерии free software и правила помещения пакета в Debian обязательны к выполнению. Если какая-то часть системы не отвечает требованиям, она может быть не включена в следующую версию ОС. Каждый разработчик обязан при вступлении в Debian знать и понимать все эти правила. Работа с пользователями и техническая поддержка Система отслеживания ошибок - главное средство общения между пользователями и разработчиками. С помощью этой системы пользователи сообщают сопровождающему программы о найденных ошибках, выставляют им приоритет. Самый высокий приоритет ошибки - release critical, то есть «критичная для релиза», которая недопустима в новой версии. Управление выпуском версий ОС в данном случае просто и не требует активного участия человека. Новая версия дистрибутива выпускается, когда в программах избавляются от всех ошибок release critical. В принципе, выпускать новую версию может не человек, а программа. Однако в Debian этой программой управляет разработчик, чья должность называется менеджер релиза. Управление оборудованием У Debian имеется набор серверов под все архитектуры, на которые он портируется. Из них 17 доступны всем разработчикам. Эти машины Debian или куплены на деньги, пожертвованные проекту Debian спонсорами, или подарены ими же (среди спонсоров - IBM, Sun, Hewlett-Packard). Машины подключены к сети благодаря VA Systems, Brainfood и университетам, поддерживающим разработку Debian. Чтобы поддерживать такое количество разработчиков, требуется немало ответственных людей - администраторов Debian. Они следят за состоянием серверов удаленно и в экстренных случаях едут на место - к провайдеру. Часто этим людям платит фирма, предоставляющая хостинг, а иногда это - добровольцы. Администраторы - одна из важнейших ролей в проекте Debian. Для разработчиков есть специальный набор правил пользования машинами Debian. Из правил следует, что они могут использоваться для разработки пакетов, чтения почты и занятия другими проектами, связанными со свободным ПО. При использовании машин в незаконных или коммерческих целях разработчик может быть исключен из проекта. Чуть-чуть о политике Основной закон для сообщества разработчиков - конституция Debian. Она определяет права разработчиков различных должностей. У лидера проекта очень небольшие права, он практически не управляет проектом. Лидер может принимать решения по вопросам, за которые никто не отвечает, предлагать к принятию новые законы, использовать решающий голос. Технический комитет имеет право по результатам голосования вносить изменение в технические законы, блокировать предложение разработчика о голосовании. Однако разработчики могут проголосовать за отмену решения технического комитета, а сам ТК не может заблокировать такое голосование. В конституции есть отдельная глава об организации SPI (Software For Public Interests). Эта зарегистрированная в США организация обслуживает финансовые нужды проекта Debian. Например, пожертвования Debian идут на счета SPI. Следует отметить, что конституция никому не дает привилегий над другими и, таким образом, не вносит никакой дискриминации. Абсолютной властью в Debian обладает только абсолютное большинство разработчиков. Процесс принятия в разработчики Особого интереса заслуживает процесс принятия в официальные разработчики. Каждый претендент на место официального разработчика проходит несколько тестов. Для начала претенденту надо проделать некоторую работу для Debian и тем самым показать заинтересованность в проекте. Затем он должен получить от официального разработчика подпись своего GnuPG ключа. На этом основано доверие между разработчиками в проекте Debian. Далее претендент проходит тест на умение собирать пакеты Debian, а так же на знание технических и «философских» документов. И, самое важное, претендент обязан согласиться с Социальным контрактом Debian. Этим он обязуется:
После прохождения всех тестов претендент обычно становится официальным разработчиком. Изложенная модель проекта доказала и продолжает доказывать свою успешность. Подтверждением этому может служить огромное количество пользователей, которые выбрали Debian (в их числе даже одна космическая станция, чем мы особенно гордимся). Как нам кажется, эту модель можно с успехом применять и в компаниях-разработчиках коммерческого программного обеспечения. Мы по себе знаем, как приятно работать в подобной атмосфере и с такими людьми, - а чем приятнее и интереснее работать разработчикам, тем выше доходы компании. Мы также хотели показать, что в мире свободного ПО, иногда воспринимаемом компьютерной индустрией как «небольшое развлечение», могут и будут существовать проекты, дающие отличный, динамично развивающийся продукт. [i42346] 1 (обратно к тексту) - Критерии Debian послужили основой для определения «программного обеспечения с открытыми исходными текстами» (см. www.opensource.org). - Ред.
|