Спонсоры: IBM и Sun Microsystems
Место и время: Москва, ВШЭ (Мясницкая, 20), 28.11.01
Debian (www.debian.org) -- это операционная система, основанная на свободном
программном обеспечении (ПО) и использующая ядро Linux. Основными преимуществами
Debian перед другими дистрибутивами, с нашей точки зрения, являются:
Ясно, что разработка такого масштабного проекта ставит ряд проблем. Некоторые из них типичны для любых крупных проектов по разработке ПО, некоторые специфичны для свободного ПО:
Все перечисленные проблемы (за исключением технической поддержки пользователей и управления оборудованием) в ``обычных'' проектах принято решать путем образования руководящих органов, отвечающих за каждое из направлений. То есть мы имеем на руководящих постах руководителей, прямое занятие которых -- руководить. Не стоит рассказывать, ``как узок их круг, и как далеки они от подчиненных'', и к чему это чаще всего приводит. Опять-таки, сосредоточение власти в руках одного-двух человек ведет к тому, что недостатки каждого из них становятся недостатками всего проекта.
Плюс ко всему стоит отметить, что подобный метод не сработает в сообществе свободного ПО, поскольку там нет разделения на ``начальников и подчиненных''. Каждый -- ``волонтер'', и все изначально обладают одинаковыми правами.
В сообществе Debian найден путь решения всех этих проблем, не ущемляющий ничьих прав и при этом помогающий созданию стройной, стабильной системы. Имя этому решению -- регулирующие документы (policies). Практически каждая часть деятельности разработчика и функционирования всего проекта в целом регулируется соответствующим документом.
Вот список некоторых из наших документов:
Каким же образом происходит работа собственно разработчика? То есть как организован сам процесс?
Подготовку пакета и загрузку его в архив можно разбить на следующие стадии:
Одно из важнейших качеств операционной системы -- ее целостность. В Debian на сегодня включены 4754 программ и библиотек, они должны взаимодействовать и не мешать работе друг друга. Об этом заботится специальный набор правил, описывающих общее устройство системы, ее внутренний дизайн. Есть правила разработки: как включать новые программы в ОС и как соединять это все воедино системой управления пакетами.
В качестве свода ``правил'' выступает Debian policy. Интересно то, что Debian policy продумана настолько, что это позволяет создавать даже автоматизированные средства проверки пакетов на соответствие ей.
Все пакеты, включенные в главную часть Debian, удовлетворяют Критериям свободного программного обеспечения Debian. Эти критерии и определяют, что мы понимаем под термином ``free software''. Это отлично работает тогда, когда нужно решить -- подходит ли очередная лицензия от очередного коммерческого гиганта для Debian, или не подходит. Учитываются следующие требования: свободное модифицирование, свободное распространение и свободное использование {Критерии Debian послужили основой для определения ``программного обеспечения с открытыми исходными текстами'' (см. www.opensource.org). -- Ред.} .
Также важно, чтобы лицензия не было создана специально для Debian. Если лицензия не проходит, то мы не отвергаем пакет, и если кто-то хочет, чтобы он присутствовал в архиве Debian (и лицензия продукта разрешает подобное его распространение), пакет может быть помещен в секцию non-free. Для пакетов из этой секции Debian предоставляет всю свою инфраструктуру, но они не включаются в официальные компакт-диски и не являются частью дистрибутива.
Критерии ``free software'' и правила помещения пакета в Debian обязательны к выполнению. Если какая-то часть системы не отвечает требованиям, она может быть не включена в следующую версию ОС. Каждый разработчик обязан при вступлении в Debian знать и понимать все эти правила.
Работа с пользователями и техническая поддержка
Система отслеживания ошибок -- главное средство общения между пользователями и разработчиками. С помощью этой системы пользователи сообщают сопровождающему программы о найденных ошибках, выставляют им приоритет. Самый высокий приоритет ошибки -- release critical, то есть ``критичная для релиза'', сохранение которой недопустимо при выпуске новой версии.
Управление выпусками новой версии ОС в данном случае просто, и не требует активного участия человека. Новая версия дистрибутива выпускается, когда в программах избавляются от всех release critical ошибок. В принципе, выпускать новую версию может не человек, а программа. Однако, в Debian этой программой управляет разработчик, чья должность называется Менеджер релиза.
Управление оборудованием
У Debian имеется набор серверов под все архитектуры, на которые он портируется. Из них 17 доступны всем разработчикам. Эти Машины Debian или куплены на деньги, пожертвованные проекту Debian спонсорами, или подарены ими же (cреди спонсоров -- IBM, Sun, Hewlett-Packard). Машины подключены к сети благодаря VA Systems, Brainfood и университетам, поддерживающим разработку Debian.
Чтобы поддерживать такое количество разработчиков требуется немалое количество ответственных людей -- Администраторов Debian. Они следят за состоянием серверов удаленно и в экстренных случаях едут на место -- к провайдеру. Часто эти люди оплачиваются фирмой, которая предоставляет хостинг, иногда это -- добровольцы. Это одна из важнейших ролей в проекте Debian.
Для разработчиков есть специальный набор правил пользования Машинами Debian. Из правил следует, что они могут использоваться для разработки пакетов, чтения почты и занятия другими проектами, связанными со свободным ПО. При использовании машин в незаконных целях или коммерческих целях разработчик может быть даже исключен из проекта.
Конституция Debian -- основной закон для сообщества разработчиков. Он определяет права разработчиков различных должностей. У Лидера проекта очень небольшие права, он практически не управляет проектом. Он может принимать решения в вопросах, за которые никто не отвечает, предлагать на принятие новые законы, использовать решающий голос.
Технический комитет имеет право по голосованию вносить изменение в технические законы, блокировать предложение разработчика о голосовании. Однако разработчики могут проголосовать за отмену решения технического комитета, а сам ТК не может заблокировать такое голосование.
В Конституции есть отдельная глава об организации SPI (Software For Public Interests, Inc.) Это зарегистрированная в США организация обслуживает финансовые нужды проекта Debian. Например, пожертвования Debian идут на счета SPI, Inc.
Следует отметить, что Конституция не дает никому никаких привилегий над другими, и таким образом не вносит никакой дискриминации. Абсолютной властью в Debian обладает только абсолютное большинство разработчиков.
Процесс принятия в разработчики
Особенный интерес заслуживает процесс принятия в официальные разработчики.
Каждый претендент на место официального разработчика проходит несколько тестов.
Для начала претенденту надо провести некоторую работу для Debian. Этим он показывает свою заинтересованность в проекте.
Затем претендент должен получить от официального разработчика подпись своего GnuPG ключа. На этом основано доверие между разработчиками в проекте Debian.
Далее претендент проходит тест на умение собирать пакеты Debian, а так же на знание технических и ``философских'' документов.
И, самое важное, претендент обязан согласиться с Социальным контрактом Debian. Этим он обязуется:
Изложенная модель проекта доказала и продолжает доказывать свою успешность -- подтверждением этому может служить огромное количество пользователей, которые выбрали Debian (в их числе даже одна космическая станция, чем мы особенно гордимся). Как нам кажется, эту модель можно будет с успехом применять и в компаниях-разработчиках коммерческого программного обеспечения. Мы по себе знаем, насколько приятно работать в подобной атмосфере и с такими людьми -- а чем приятнее и интереснее работать разработчикам-тем выше доходы компании. Мы также надеялись показать, что в мире свободного ПО, иногда воспринимаемом компьютерной индустрией как ``небольшое развлечение'' могут и будут существовать проекты, дающие отличный стабильный и динамично развивающийся продукт.