Торвальдс приступил к работе над Linux в 1991 году, когда учился в Университете Хельсинки
[111]. Заинтересовавшись проблемами операционных систем, Торвальдс портировал на свой домашний компьютер UNIX-подобную ОС Minix, написанную голландским профессором информатики Эндрю Таненбаумом. Minix стал учебным пособием и прототипом для собственной ОС Линуса
[112]. Важной особенностью работы Торвальдса стало участие в ней с самого начала других людей. 25 августа 1991 года он разместил в Сети сообщение, озаглавленное «Чего вам больше всего не хватает в Minix?», в котором объявил о начале работы над «бесплатной операционной системой»
[113]. В ответ ему прислали несколько идей и даже пообещали помочь с тестированием программы. Первая версия новой ОС появилась в Сети в виде общедоступного исходного кода в сентябре того же года
[114]. Следующая, улучшенная, версия вышла уже в начале октября.
После этого Торвальдс прямо предложил всем желающим присоединиться к нему в разработке новой системы
[115]. В сообщении в Сети он попросил поделиться источниками информации. Их прислали, и дело пошло. В течение месяца в проект пришли новые программисты. С тех пор сетевое сообщество Linux набрало потрясающий творческий темп. Тысячи программистов приняли участие в разработке ОС, и их число постоянно растет – как и число пользователей Linux, уже достигшее миллионов. Любой желающий может принять участие в разработке системы, и каждый может бесплатно ею пользоваться
[116].
Для координации процесса разработки Linux хакеры используют весь инструментарий Сети: электронную почту, списки рассылки, новостные группы, файловые серверы и веб-страницы
[117]. Разработка поделена на отдельные модули, и группы хакеров создают конкурирующие версии этих модулей. Затем группа, куда входят Торвальдс и несколько главных разработчиков, решает, какая из версий войдет в улучшенную версию Linux (разумеется, структура модулей также постепенно развивается). У группы Торвальдса нет никакой формальной власти, она принимает решения только до тех пор, пока ее выбор совпадает с мнением хакерского сообщества. Если выбор группы покажется сообществу предвзятым, оно поведет проект в собственном направлении, в обход вчерашних лидеров.
Чтобы упорядочить продолжающееся развитие Linux, его версии обозначают согласно определенному стандарту. Номера версий имеют стандарт номера x. y.z, и в стабильных версиях, которые уже можно доверить среднему пользователю, y всегда либо 0, либо четное число (например, версия 1.0.0). А в разрабатываемых версиях, которые выпускаются для программистов, к значению y предыдущей стабильной версии прибавляют единицу (улучшенная, но еще не полностью протестированная версия 1.0.0 получит обозначение 1.1.0). Х увеличивается только при внесении фундаментальных изменений (на момент написания книги последняя доступная версия имела номер 2.4.0
[118]).
Этот простой стандарт на удивление хорошо работает при управлении разработкой Linux. В широко известном эссе The Cathedral and the Bazaar («Собор и базар»), впервые опубликованном в Сети, Эрик Рэймонд описывает разницу между открытой моделью Linux и предпочитаемой большинством других компаний закрытой моделью, сравнивая их с базаром и собором соответственно. Будучи техническим специалистом, Рэймонд признает тем не менее, что главная инновация Linux имеет не технический, а социальный характер: это новая, полностью открытая процедура разработки. Говоря словами Рэймонда, произошел сдвиг от собора к базару.
По Рэймонду, соборная модель – это когда один человек или очень небольшая группа заранее составляет план и реализует его под собственным контролем. Разработка ведется за закрытыми дверями, общественность видит лишь готовый результат. Базарная же модель позволяет каждому выдвигать идеи, которые тут же проверяются на прочность другими участниками. Очень важно, чтобы в обсуждении идеи приняло участие большое количество людей: тогда она сможет вобрать конструктивные замечания и дополнения на раннем этапе, в то время как после открытия построенного собора исправить недостатки его фундамента невозможно. На базаре пробуют разные подходы, и, если кого-то осеняет удачная мысль, ее перенимают и берут за основу другие.
В общем, модель с открытым исходным кодом можно описать так: все начинается с проблемы или цели, важной для кого-то лично. Этот кто-то может просто описать проблему или поставить цель, но, как правило, у него (или нее) уже есть Решение – версии 0.1.1, если следовать системе нумерации Linux. Адресаты сообщения имеют право свободно использовать, тестировать и дорабатывать Решение, что возможно, только если вся использовавшаяся при разработке Решения информация (исходный код) передана вместе с ним. В открытой модели передача указанных прав влечет два условия: во-первых, при дальнейшем распространении Решения или его улучшенной версии (0.1.2) должны передаваться те же права, а во-вторых, независимо от передаваемой версии, обязательно надо указывать предыдущих разработчиков. В рамках такого совместного процесса разработчики постепенно (а иногда и стремительно, скажем от 0.y.z сразу к 1.y.z) переходят к улучшенным версиям. Конечно, в действительности эта идеальная модель соблюдается лишь до известной степени.
Академия и монастырь
Модель с открытым кодом также можно сравнить опять-таки с системой академической науки, которую она напоминает даже больше, чем базар. Ученые также предоставляют свои работы другим для использования, тестирования и доработки. Исследования строятся на принципах открытости и саморегулирования. Идею саморегулирования особенно подчеркивал Роберт Мертон, называя ее, наряду с открытостью, краеугольным камнем научной этики
[119]
[120]. Мертон назвал такой подход организованным скептицизмом – понятие, ставшее историческим преемником платоновской синузии, также включавшей идею приближения к истине посредством критического диалога
[121].