Умная толпа - Рейнгольд Говард. Страница 35
В 1969 AT amp; T Bell Labs вышла из проекта управления АКРА по созданию операционной системы Multics , и некоторые программисты Bell Labs , которым недоставало чувства товарищества, приступили к работе над собственным неофициальным проектом по созданию ОС. Программист Кен Томпсон на небольшой ЭВМ, попавшей к нему в руки, создал игру в ходе написания «ядра», в итоге ставшего ОС, названной в 1970 году Брайаном Керниганом Unix (обыгрывается название проекта Multics ) [47]. Создатели Unix предоставили свой исходный код другим программистам, пригласив их к сотрудничеству по созданию программного обеспечения, которое сделало бы Unix более удобной, и это решение породило совершенно новый подход к разработке программного обеспечения. Программы для ЭВМ поставляются в виде «объектного кода», перевода (трансляции) изначальной («исходной») программы в неудобочитаемый для человека, но понятный машине набор нулей и единиц. Предоставлением в свободный доступ исходного кода создатели Unix позволили остальным программистам уяснить работу программного обеспечения и вносить свои собственные изменения — своего рода возвращение к временам, когда перфолента в ящике стола была доступной для всех. Кен Томпсон стал записывать исходный код Unix и вспомогательные программы (утилиты) на магнитную пленку и в сопровождении надписи «С любовью, Кен» рассылать приятелям [48].
Unix стала ОС всемирной Сети. В свою очередь Интернет предоставил программистам Unix благодатную среду для построения одного из первых глобальных виртуальных сообществ. Деннис Ритчи, один из создателей Unix , писал: «Мы хотели сохранить не просто благоприятную для программирования среду, а систему, вокруг которой могло бы образоваться некое содружество. Мы на собственном опыте убедились, что сама суть совместных вычислений, обусловленных работой на машинах с удаленным доступом и разделением времени, заключается вовсе не в клавиатурном вводе программ через терминал вместо клавишного перфоратора, а в завязывании тесных взаимоотношений» [49].
Однако в 1976 году АТ amp; Т прекратила печатание исходного кода Unix ; в итоге «первые, запрещенные к изданию, книги стали трудами, с которых снято более всего фотокопий» [50]. Примерно в одно время с началом образования сообщества Unix научно-исследовательская лаборатория Искусственного интеллекта (ИИ) Массачусетского технологического института ( MIT ) изменила вид используемых там ЭВМ. Это был удар по хакерской культуре MIT , так как их программные орудия оказались бесполезными. Тогда же многие первые исследователи ИИ перешли на работу в частный сектор, захваченные техническим бумом того времени, вызванным ажиотажем вокруг ИИ и закончившимся крахом. Одним из тех, кто остался в MIT , кого лишили привычного для разработки ПО окружения и кто был не согласен с коммерциализацией AT amp;T и Microsoft того, что он считал общественной собственностью, был Ричард Сталлман.
Сталлман поклялся создать ОС, машинно независимую и открытую, подобно Unix , но которая при любом лицензировании сохраняла бы статус общественного блага. Сталлман, основатель Фонда бесплатного ПО ( Free Software Foundation — FSF ), приступил к созданию GNU — anmuUnix . Сталлман, домом которому служит его рабочий кабинет, посвятил себя тому, что он сам назвал свободным ПО (подчеркнув, что подразумевает здесь «свободу, подобно свободе слова, а вовсе не бесплатность, вроде бесплатного пива») [51].
Сталлман не только оспорил правомерность системы авторского права (копирайта), но и создал первый исходник свободно распространяемой ОС. Он распространял создаваемое им программное обеспечение в соответствии с общей открытой лицензией, известной как GPL ( General Public License ). GNU GPL разрешает всем копировать, распространять и изменять программное обеспечение при условии, что они не станут препятствовать остальным делать то же самое. Новый вид лицензирования Сталлман назвал копилефтом (copyleft) [52]. Подобно перфоленте в ящике стола MIT , программное обеспечение GPL доступно для свободного пользования, и каждый свободен работать над ним, но при условии, что исходный код полученного программного продукта будет открыт всем остальным для использования и внесения изменений.
Создание операционной системы — дело нелегкое. В 1991 году GNU представляла полную ОС, которой недоставало главного — ядра. Линус Торвальдс, учащийся Хельсинкского университета, приступил к написанию собственного ядра. Основанный на GNU , код Торвальдса был открытым в соответствии с GPL , так что он решился на судьбоносный шаг, выложив свое детище в Сети с просьбой о помощи в работе над ним. Ядро, известное под названием Linux , привлекло внимание сотен, а затем тысяч молодых программистов. В 1990-е годы неприятие единовластия Microsoft на рынке операционных систем во многом побудило возмущенных молодых программистов подхватить эстафету хакерской этики.
«Открытый исходник» означает не только программное обеспечение, но и способ его разработки и понимание того, как надо поддерживать общественные блага. Вот что писал Эрик Рэймонд насчет различия в «соборном и базарном» подходе к разработке сложного программного обеспечения:
«Наиболее существенная особенность Linux относилась, однако, не к технической, а к социальной стороне. До появления Linux считалось, что создание такого сложного программного обеспечения, как операционная система, возможно лишь согласованными усилиями относительно небольшой, сплоченной группы людей. Эта модель была и остается типичной как для коммерческого, так и для свободного ПО, возводимого в обоих случаях подобно тому, как строились соборы… Развитие Linux шло по совершенно иному пути. С самого начала она создавалась случайными усилиями большого числа добровольцев, координируемыми сугубо через Интернет. Качество разработки достигалось не жесткими стандартами или единоначалием (autocracy), а крайне простым подходом: еженедельно выкладывать исходники и в течение нескольких дней получать отклики от сотен пользователей. Такой подход позволил создать нечто вроде ускоренного дарвиновского отбора посредством мутаций, вносимых разработчиками» [53].