Глава 1. Открытость, свобода и халява

Введение в POSIX'ивизм
(C) Алексей Федорчук, 2005

Назад Содержание Вперед

Глава 1. Открытость, свобода и халява

Предметом всего дальнейшего изложения будут почти исключительно операционные системы, их утилиты и приложения, относимые к категориям программ открытых (Open Sources - буквально программы с открытыми исходными текстами) и свободных (Free Software, что в данном контексте имеет значение "свободно распространяемые").

Содержание

Постановка вопроса

Понятия программ открытых (Open Sources) и свободных программ (Free Software) близки как по букве, так и по духу, но не идентичны, ибо сосуществуют как бы в разных, хотя и пересекающихся, плоскостях. Кроме того, и то, и другое явление тесно соприкасается с понятием открытых систем (Open Systems).

И потому для начала следует прояснить вопрос о том, что такое открытость и свобода, каково их соотношение друг с другом. Кроме того, большинство из упоминаемых далее программ в определенном смысле бесплатны, так что стоит остановиться и на взаимоотношении открытости, свободы и той бесплатности, которая выражается этим сладким словом "халява", столь милым сердцу россиянина (да и вообще выходца с бывших рублевых пространств).

Определиться с понятиями открытости и свободы программ тем более важно, что они часто служат источником недоразумений, основанных на незнании существа вопроса и его истории, буквализме перевода соответствующих английских терминов и прочих причинах информационного характера. На чем, в свою очередь, подчас базируется прямое или косвенное передергивание, выражающихся в типичной подмене понятий, когда теплое путается (осознанно или неосознанно) с мягким.

Сразу оговорюсь, что все, описанное далее в этом разделе, основано на документах движений Open Sources и Free Software Foundation (далее FSF), а также публичных высказываниях их лидеров. Однако я излагаю свое понимание предмета, которое отнюдь не обязано совпадать ни с одним из первоисточников. Каковые, не будучи марксизмом, являются не догмой - руководством, и не столько к действию, сколько к размышлению.

Степени свободы

Начнем с понятия Open Sources Software, как наиболее, с моей точки зрения, общего. Это в первую очередь термин чисто технический, и применяется к программам, чьи исходные тексты принципиально общедоступны без дизассемблирования и прочих "хакерских" приемов. Подчеркну - принципиально, ибо форма доступа к исходникам может быть самой разной: платной или бесплатной, безусловной или с соблюдением определенных условий (например, дальнейшего нераспространения или некоммерческого использования). Смысл же общедоступности - в том, что любой человек, придя с улицы и, возможно, выполнив указанные условия (заплатив деньги, или согласившись с ограничениями на распространение), получает исходные тексты данной программы.

В этом контексте Open Sources противопоставляется программам закрытым. То есть тем, исходные тексты которых не распространяются вовсе, или распространяются среди определенного круга - коммерческих партнеров, разработчиков или, скажем,правительственных организаций. И потому, например, декларированное не так давно открытие кодов Windows - именно для правительственных организаций (в данном случае правильно было бы сказать по нашински - для компетентных органов) не делает эту систему открытой: некий произвольный индивидуум (или предприятие) все равно не может получить доступ к исходникам этой ОС по своему желанию.

Тем, кто помнит времена развитого (и всякого прочего) социализма, будет ясна аналогия: Open Sources можно уподобить материалам, опубликованным в открытой, как тогда говорили, печати (обратите внимание на совпадение терминов), закрытый же софт - материалам "Для служебного пользования" (ну и прочим "Секретным" и "Сов. секретным"). То есть для ознакомления с первыми было достаточно желания потребителя (от цены отвлечемся - даже газету "Правда" и при социализме бесплатно не раздавали), со вторыми - требовалось разрешение тех же компетентных органов. И не важно, что в качестве последних мог выступать один орган - директор предприятия, да и давалось это разрешение практически кому угодно. Главное, что об этом нужно было просить по установленной форме. А в компетенции разрешающего органа было наложить резолюцию: "Разрешить. Иван Иваныч". Или - "Не разрешить. Иван Иваныч"...

Таким образом, понятием Open Sources определяется первая степень свободы - свободы изучения исходников. Рискуя повториться, подчеркну: отрытые исходники сами по себе не подразумевают ни свободы распространения, ни бесплатности оного. Хотя с первой связаны почти неразрывно. Свидетельством тому судьба всех проектов, исходники которых открывались: либо они становились истинно свободными, либо - закрывались обратно.

Вторая степень свободы определяется понятием свободного софта - Free Software, что не следует путать ни с Freeware, ни с Free Software Foundation, о котором я скажу попозже. Это понятие - более узкое, нежели Open Sources Software, и охватывает аспекты использования и распространения программ. Оно базируется на знаменитых принципах свободного софта, сформулированных Ричардом Столлменом (Richard M. Stollman, известный в миру как RMS), основоположником движения за свободный софт вообще и FSF (Free Software Foundation - организация движения за открытые исходники) в частности: свободе использования, свободе изучения и модификации, свободе распространения.

Свобода использования подразумевает, что копия (конкретный экземпляр) любой программы из категории Free Software, приобретенная пользователем (как - пока не важно, об этом еще пойдет речь) становится, подобно любому другому товару, в соответствие с законами людскими и Божьими (которые не следует путать с государственными законами), а также - просто здравым смыслом, полной его собственностью. И может быть использована по его усмотрению - установлена на один компьютер, или на энное их количество, на локальную машину или на сетевой сервер, продана за углом, подарена и так далее. Повторяю, речь в данном тезисе идет именно о конкретном экземпляре на некоем носителе - пользователю вольно этот самый носитель засунуть себе в... ящик стола, прибить на стенку или использовать в качестве подставки под пивную кружку.

Свобода изучения и модификации подразумевает следующий шаг - пользователь вправе изучать устройство программы, выявлять в ней ошибки (а кто видел безошибочную программу?) и исправлять оные, вносить любые изменения, какие ему покажутся нужными, адаптировать под свои задачи, и так далее. Очевидно, что реализовать это право он может только при наличии непременного условия - доступа к исходным текстам. И именно поэтому Free Software - лишь частный случай понятия Open Sources.

Наконец, свобода распространения относится уже не к правам на экземпляр программы, а к условиям ее тиражирования. То есть пользователь имеет право копировать программу Free Software и распространять ее любым угодным ему способом: раздавать в переходе метро, или продавать, причем - за любые деньги, в которые он оценит свои усилия по тиражированию, амортизацию своего оборудования и прочие накладные расходы. Разумеется, в рамках действующего по сему поводу законодательства данной страны - но к программному обеспечению, как таковому, это отношения уже не имеет.

В сущности, на свободу распространения Free Software накладывается только два ограничения, также напрямую с природой предмета распространения не связанные, и вытекающие из других общепринятых в цивилизованном мире норм. Первое ограничение есть следствие авторского права в его исконном, неимущественном, понимании (как возникающего вследствие факта создания автором произведения). И оно запрещает распространителю приписать себе авторство, в данном случае - объявить себя разработчиком продаваемой (или раздаваемой) программы.

Второе же ограничение базируется на понимании свободы как таковой (не по Марксу, опять же, а по здравому смыслу) - то есть на запрете ограничивать свободу других. И потому распространитель не вправе запретить пользователю воспользоваться теми же правами, что и он сам - правом свободного использования, изучения, модификации и распространения, в том числе и за немерянные деньги.

А где же здесь бесплатность (в смысле халявы), резонно спросите вы меня? А нигде, столь же резонно отвечу я вам. Потому что ни понятие Open Sources, ни понятие Free Software к понятию халявы никакого отношения не имеют. Каким бы способом вы ни приобретали свободную программу, вам придется заплатить: за трафик при получении по Сети, за носитель, его оформление и доставку при покупке на CD, за полиграфию упаковки и печатной документации при покупке коробочной версии, и так далее. Включая оплату накладных расходов распространителя (вплоть до, возможно, даже его затрат на рекламу). Короче говоря, за все то же, за что вы платите при покупке бутылки пива или автомобиля.

Другое дело, что при покупке Free Software вы платите только за это - и ни копейкой больше. Ни о какой оплате мифической интеллектуальной собственности речи быть не может. Даже в том случае, если распространитель продает собственный (или собственноручно доработанный) продукт.

И потому часто встречающееся сравнение типа: "копия Windows стоит (всего) 100 баксов, а дистрибутив Linux можно найти и за (ажно) 5 тысяч оных" - мягко говоря, некорректно. Потому что при покупке Windows иже с ним, даже на CD из коробки, вы приобретаете не товар, а право на его использование, ограниченное теми условиями, какие заблагорассудится поставить разработчику. Конечно, ваше право - принять их или не принять (т.н. договор присоединения). Но во втором случае право на использование вами теряется.

В сущности, даже право собственности на носитель и его содержимое вами не приобретается - в большинстве случаев условия лицензионного соглашения запрещают не только продажу, аренду и т.д., но и дарение, или передачу "на попользоваться". Раньше в этих соглашениях бывали оговорки типа запрещения только одновременного использования приобретенного экземпляра программы (то есть ее можно поочередно юзать дома и на работе - лишь бы не там и там одновременно). Но в последнее время это признано, видимо, вредным либерализмом, и из обихода изъято.

Маленькое отступление: вообще мне все эти лицензии на проприетарный софт очень напоминают не "договор присоединения" (как это часто квалифицируется), а скорее перечень прав и обязанностей пассажира советского (да и российского) общественного транспорта. Где вы найдете множество фраз типа "пассажир обязан", пассажир должен", "пассажир не имеет права", и ни слова о том, что пассажир может рассчитывать хотя бы на то, что его довезут до конечной остановки ("Поезд дальше не пойдет, просьба освободить вагоны"). Хотя тоже - своего рода договор присоединения: не нравится - ходи пешком...

Понятие Free Software не имеет также непосредственной связи с таким явлением, как Freeware - этим термином обозначаются программы, которые их разработчик по каким-либо соображениям (из врожденного альтруизма или в целях саморекламы) предоставляет всем желающим безвозмездно (то есть даром - но за трафик, доставку и носитель заплатить все равно придется). В отличие от Free Software, никакой свободы, за исключением свободы использования, да и то не всегда (встречаются такие явления, как: хочешь на второй компьютер - качай заново), Freeware не подразумевает: ни тебе свободы изучения, ни свободы модификации, ни, тем более, свободы распространения. Да и изучать или модифицировать особенно нечего: подавляющее большинство Freeware-программ распространяются без исходников.

Еще одно отступление: по моим наблюдениям, статус Freeware в большинстве случаев - сугубо временный, чем-то эти программы сродни товарам, приобретенным на рекламных распродажах и тому подобных акциях. Очень мало разработчиков принципиально декларируют Freeware-статус своих произведений. Это и есть случай врожденного альтруизма; на память приходит, пожалуй, только Пауль Лютус со своей замечательной Arachnophilia. В большинстве случаев Freeware-проект либо превращается в коммерческий, либо, если коммерческий успех не светит, тихо и незаметно умирает.

Вернемся, однако, к явлению Free Software. Для его понимания очень важно уяснить себе, что принципы Ричарда Столлмена, на которых оно основывается, носят исключительно разрешительный, а не обязующий характер. То есть вы имеете право, если вам так хочется, продавать свободный софт, или распространять его даром (типа как в рекламе каких-то прокладок: "Вы, конечно, можете прыгать с парашютом, если вам так хочется"). Но никто не обязывает вас это делать - например, нарезать дистрибутивы первому встречному по его требованию. Последнее понимание идеи свободного софта подчас встречается среди лиц, отягощенных пережитками социализма в сознании...

Далее, принципы Ричарда Столлмена - отнюдь не обязательны. Никто под дулом автомата не заставляет автора программы раскрывать свои исходники. Как не возбраняется и изменение статуса распространения программы - свободный Open Sources волею разработчика (и это - следствие того же авторского права) может превратиться во вполне закрытый продукт (с ограничениями, накладываемыми свободными лицензиями, о чем - в следующем разделе).

Конечно, Ричард Столлмен - максималист по натуре, - своими высказываниями дает некоторый повод к превратному его пониманию. В частности, один из сквозных его тезисов -"Все программы должны быть свободными". Однако это - не более, чем пожелание (или, если угодно, этический императив), на самом деле не означающее, что авторов несвободных программ будут понуждать к чему-нибудь, с их точки зрения, противоестественному.

Вообще, следует отделять сами по себе принципы Столлмена (под каждым из которых я готов подписаться обеими руками) от их трактовки им же. Однако тут мы плавно переходим к третьей степени свободы.

И это - свобода в понимании Free Software Foundation и проекта GNU (GNU is not Unix - проект воспроизведения функциональности этой ОС с "чистого листа"), каковые опять же являются детищами Ричарда. Вследствие понятной аберрации Free Software часто рассматривается как эквивалент Free Software Foundation. Однако это - не так. Потому что в понимание Free Software par exсellence (то есть по FSF) к сформулированным выше принципам добавляется еще один: все свободные программы, а также все программы, хоть в какой-то степени основанные на свободном софте, должны оставаться свободными ныне, и присно, и во веки веков. Аминь...

Конечно, сам Столлмен сотоварищи в качестве Free Software рассматривает именно свободный софт в понимании FSF - все прочее, по его мнению, принадлежит миру Open Sources. Однако это - тот самый результат расширенной трактовки собственных принципов: если придерживаться буквы последних, то становится ясным, что подавляющее большинство программ из разряда Open Sources столь же свободны, как и разработки под эгидой FSF. Однако к этому вопросу мы еще вернемся.

А пока следует подчеркнуть, что свободный софт в понимании FSF - отнюдь не единственная разновидность свободного софта вообще. Более того, сам Столлмен, несмотря на приписываемый ему (и небезосновательно) экстремизм, отнюдь не настаивает на том, что его свобода - единственно возможная. Да и на сайте FSF есть целый список условий свободы, которые рассматриваются как "совместимые" со свободой в высшем понимании (FSF, разумеется - как тут не вспомнить: "Все свободы свободны одинаково, но некоторые свободнее других"). Иными словами - все свободы совместимы между собой, несовместимы они лишь с не-свободой.

Однако тут мы переходим (опять-таки плавно) к вопросу о лицензиях, что будет темой одного из следующих разделов. Перед этим же вернемся к еще одной грани открытости.

Грани открытости

Во вступлении к этой главе я упомянул о так называемых открытых системах (Open Systems) - понятии, семантически близком к термину Open Sources Software. И тем не менее, понятия эти - разные, и в принципе между собой не связаны. Потому что под открытой системой понимается просто-напросто "система, которая состоит из компонентов, взаимодействующих друг с другом через стандартные интерфейсы" (Жан-Мишель Корну, один из авторов руководства Французской ассоциации пользователей UNIX; цитировано по: С. Д. Кузнецов Операционная система UNIX).

Что же такое стандартные интерфейсы? Это некоторые соглашения, которые определяют функциональность компонентов системы. Например, стандарты на командные оболочки описывают некоторую минимальную функциональность программ этого класса, стандарты на системные вызовы ядра - то, что должны делать эти системные вызовы (например, открывать файл или читать его содержимое), и так далее. При этом на реализацию функций того или иного компонента системы никаких ограничений не накладывается.

Стандартные интерфейсы для открытых систем регламентируются набором соглашений POSIX (Portable Operating System Interface), разрабатываемые двумя организациями - IEEE (Institute of Electrical and Electronics Engineers, Inc.) и Open Group. Соглашения эти, получившие звучный титул стандартов POSIX, опирались в первую очередь на опыт разработки систем Unix. И. следовательно, все Unix-подобные системы, как проприетарные (Solaris, например, или AIX), так и свободные (Linux или FreeBSD) по определению являются POSIX-совместимыми, представляя собой конкретные реализации соответствующих стандартов.

Собственно, термины "Unix-подобная ОС" и "POSIX-совместимая ОС" можно было бы рассматривать в качестве синонимов. И на протяжении всего данного сочинения я так и делаю. Тут, однако, нужно иметь ввиду несколько обстоятельств.

Во-первых, термин "Unix" представляет собой зарегистрированную торговую марку. И продолжающееся по сей день крестоносное сутяжничество SCO против IBM (и попутно - против всего движения Open Sources и Free Software), исход которого остается неясным, в немалой степени будет способствовать его дискредитации. Имея в своем осадке лишь тот положительный момент, что очередной раз привлекло внимание к понятию Open Systems как системам, следующим открытым (то есть общедоступным) стандартам. Достаточно вспомнить попытку демонстрации "украденного" из Unix кода в Linux-ядре.

Во-вторых же, и главных, понятие POSIX-совместимости, строго говоря, выходит за рамки Unix-подобия, то есть сходства с неким первозданным Unix'ом. В той или иной мере соответствие POSIX-стандартам (хотя и неполное) признается разработчиками ОС QNX, генетически с Unix никак не связанной. Да и Linux представляет собой попытку воспроизведения функциональности Unix с "чистого листа", не только без использования ее кода, но и без доступа к нему. При этом Линус опирался не столько на устройство самой системы Unix, сколько именно на стандарты POSIX. Впрочем, подробнее об этом будет говориться в следующей главе.

Следует заметить, что и для Windows линии NT/2000/XP декларируется соответствие стандартам POSIX. Однако, как это в обычае у фирмы-разработчика этих продуктов, стандарты эти понимаются тут весьма своеобразно и трактуются весьма расширительно в плане "улучшения". А потому отнесение Windows к POSIX-совместимым системам по меньшей мере спорно.

Все стандарты POSIX (а в это семейство входит несколько групп соглашений, например, стандарты на интерфейс прикладных программ, утилит и оболочек, и т.д.) являются открытыми в понимании, близком к Open Sources. То есть они общедоступны - (почти) любой человек с "улицы" может получить к ним доступ и создать в соответствии с ними свою открытую систему (откуда и пошел термин Open Systems).

Однако открытость основополагающих стандартов ни в коей мере не подразумевает открытости созданных в соответствие с ними операционных систем. И само по себе соответствие POSIX-стандартам не влечет их свободного (тем более - бесплатного) распространения. Кратко говоря, под Open Systems, в отличие от Open Sources, можно понимать просто системы, основанные на открытых (=общедоступных) стандартах. А уж на каких условиях эти системы распространяются - определяется лицензиями, которые вольно было приписать им разработчиками.

Кое-что о лицензиях

В рамках настоящего сочинения нас будут интересовать только лицензии, относимые к классу свободных (не обязательно в понимании Free Software Foundation). И здесь нужно начать с того, что лицензий этих - немалое количество: ведь только все диктатуры похожи друг на друга, тогда как свобода реализуется каждым по своему.

Наиболее известна General Public License (сокращенно GPL) - оставим название без перевода, поскольку смысл английского оригинала интуитивно более понятен, чем любой отечественный эквивалент. Созданная в первоначальном своем варианте Столлменом (при участии профессиональных юристов), она ныне принята для Free Software, разрабатываемого в рамках проекта GNU и при участии FSF. Кроме того, по ее условиям распространяется ядро Linux и множество программ независимых разработчиков.

В двух словах суть GPL повторяет, понятное дело, общие принципы свободы Столлмена, с одним важным дополнением: любое программное обеспечение, разработанное на базе GPL-софта, может распространяться только в сопровождении открытых исходных текстов и под той же лицензией. То есть разработчик, включивший в свое творение хоть строку кода, подпадающего под GPL, не имеет права распространять его под какой-либо другой лицензией. Хотя, повторю еще раз, никаких иных ограничений - ни в плане взимания денег, ни какого-либо иного коммерческого использования, - на него не накладывается. А под сопровождением открытыми исходниками подразумевается их физическая доступность - на твердых ли носителях, на публичных ftp-серверах, и так далее.

Лицензия GPL вызывает наибольшие споры в мире Open Sources - от почитания единственно пригодной для распространения свободного софта до активного неприятия, вплоть до появления термина "вирус GPL". Однако мы в эти споры вдаваться не будем - отметим только, что она являет собой объективную реальность, и что под ней распространяется огромное количество программ - от утилит GNU-проекта до таких крупных продуктов, как ядро Linux, GIMP, GNOME, ГИС GRASS и множество других. В общем, вероятно, суммарно много большее, чем под всеми прочими свободными лицензиями, вместе взятыми.

Вследствие уже отмеченной аберрации, FSF не просто тесно ассоциируется с самим понятием Free Software, но подчас, осознанно или неосознанно, с ним отождествляется. Однако это не так, и GPL - далеко не единственная лицензия, под которой свободный софт распространяется. Ибо на другом полюсе свободы софта располагается BSD-лицензия, впервые сформулированная в Университете Беркли для распространения системы, именовавшейся в те годы BSD Unix. Ныне под этой лицензией распространяются такие ОС, как Free-, Net- и OpenBSD, все их производные (типа DragonFly), а также изрядное количество программ независимых разработчиков.

Лицензия BSD (иногда говорят о лицензиях BSD-стиля, различающихся в деталях, но единых в главном) столь же строго следуют принципам свободного софта, как и GPL (ей-богу, ничего противоречащего сути принципов Столлмена в ней не найти - впрочем, она очень короткая). То есть все подпадающие под нее программы могут свободно использоваться, модифицироваться и распространяться. Главное отличие ее от GPL - BSD-лицензия не обязывает к непременному свободному распространению продуктов, разработанных на ее основе. То есть: закрыть код свободных программ, защищаемых BSD-лицензией, не вправе никто. Однако собственные разработки, на них базирующиеся, вполне могут распространяться как любой проприетарный софт, не только за деньги, но и без исходных текстов.

Чтобы понять, как это выглядит в реальности, рассмотрим наиболее показательный пример. Как известно, MacOS X основана на микроядре Mach (разработанном в Университете Карнеги-Меллона и распространяемом под собственной лицензией BSD-стиля) и системном окружении, заимствованном из FreeBSD, что в совокупности и дает ее ядро Darwin. Поскольку и ядро Mach, и его системное окружение суть свободные программы, то и Darwin имеет тот же статус, распространяясь открыто и свободно (его можно скачать и пользовать из командной строки в свое удовольствие). Однако графический интерфейс пользователя и прочие прибамбасы, которые собственно и определяют своеобразие MacOS X, являют собой собственные разработки Apple, и об их свободном распространении речи не идет.

Из прочих свободных лицензий известны: лицензия X-консорциума, близкая к ней - Массачуссетского технологического института (MIT) и лицензия, под которой распространяется Mozilla, а также серия "университетских" лицензий. Все они, приближаясь либо к GPL, либо к BSD-стилю, в полной мере отвечают принципам Столлмена. Не случайно самые строгие пуристы от FSF именуют их GPL-совместимыми. Что на практике означает возможность использования софта под этими лицензиями в рамках единых проектов.

Таким образом, многоликость явления Free Software находит отражение в многообразии лицензий, под которыми свободный софт распространяется. Что, однако, не мешает им мирно уживаться друг с другом: так, базовый комплект FreeBSD (т.н. Distributions), подпадающий в основном под BSD-лицензию, включает в себя ряд компонентов проекта GNU, защищаемых лицензией GPL, и называемых Contributions (в их числе такой важный, как компилятор gcc). А базовая система Linux, большая часть которой представлена GPL-программами, включает, например, библиотеку zlib, распространяемую на условиях лицензии BSD-стиля.

Более того, свободные лицензии вполне могут сосуществовать и с коммерческими, ярким примером чему является интегрированная среда KDE. Она основана на библиотеке Qt, которая сама по себе является коммерческой (и стоит, надо заметить, немалых денег). Однако для некоммерческого использования она бесплатна и как бы свободна, распространяясь на условиях близкой к GPL лицензии - QPL. Не возьмусь судить о том, как это реализовано юридически, однако факт остается фактом: на библиотеке Qt разрабатываются и такие проприетарные программы, как браузер Opera (а это, не смотря на бесплатность при некоторых условиях, - все же коммерческий продукт), или Safari - штатный браузер коммерческой MacOS X, так и KDE с ее приложениями, к чистоте и свободе лицензии которой ныне не осталось претензий у самых ярых апологетов FSF.

Вернемся, однако, к свободным лицензиям. Как уже было сказано, все их многообразие укладывается на линию GPL-BSD. Первая однозначно требует,чтобы все программы, включающие в себя свободный код, оставались свободными ныне, и присно, и во веки веков. Вторая же столь же однозначно разрешает закрытое распространение собственных разработок, пусть даже и основанных на свободном коде (хотя, повторяю, легший в основу свободный код таковым все равно остается ad finem seculorum).

Я не буду вдаваться в дискуссию о том, какая из свободных лицензий больше отвечает идеалам свободы и демократии. Более интересным видится мне вопрос - а откуда вообще взялось понятие свободного софта?

Истоки Free Software

И тут можно сделать интересное наблюдение: большинство т.н. "университетских" лицензий по своей сути тяготеют к формулировкам BSD-стиля. Почему?

Ответить на этот вопрос не трудно. Дело в том, что Ричард Столлмен, формулируя (в первой половине 80-х годов прошлого века) свои принципы свободы софта, явным или неявным образом, но - изобретал велосипед. Ибо принципы его суть не что иное, как условия, на которых испокон веков распространялись результаты любых научных исследований (к слову сказать, и Ричард деятельность свою начинал как сотрудник вполне академической организации - лаборатории искусственного интеллекта MIT). Каковые, по определению, должны быть общедоступны, открыты в отношении методики и которые вольно использовать любым образом (за исключением приписывания себе их авторства и ограничения доступа к ним других).

Использовать - в том числе и для коммерческих продуктов, реализуемых через вполне закрытые технологии. Согласитесь, было бы нелепым требовать от создателей дизеля или двигателя внутреннего сгорания полной открытости их результатов на том основании, что они базируются на общедоступных законах термодинамики. А ведь именно это и констатирует BSD-лицензия, имеющая сугубо академическое происхождение (не смотря на то, что работа изначально финансировалась "мирным" американским ведомством).

Не случайно первые работы над проектом BSD, полностью вписывающиеся в идеологию Free Software, начались существенно (лет за 10) раньше того, как Столлмен сформулировал свои знаменитые принципы в 1984 году.

Аналогию между научными разработками и Free Software можно углубить. Что является неотъемлемым атрибутом профессионально выполненной научной работы? Тем самым, который безошибочно позволяет отделить всамделишнюю, скажем, геологию или историю от трудов всякого рода атлантологов, уфологов и прочей "фоменковщины"? Атрибутом этим является научный аппарат. То есть для наук экспериментальных - публикация методики измерений, позволяющих независимое воспроизведение результатов; для наук феноменологических, типа той же геологии - описания полевых наблюдений; для истории иже с нею - ссылочного аппарата (дающего читателю теоретическую возможность порыться в первоисточниках).

Именно научный аппарат делает возможным проверку и воспроизведение выводов исследователя профессионалом в той же области науки. А специалисту-"смежнику", не владеющему деталями материала по конкретной проблеме, позволяет безбоязненно ссылаться на полученные другими результаты - в небезосновательном расчете на то, что ошибки будут выявлены специалистами соответствующего профиля.

Разумеется, само по себе наличие научного аппарата не гарантирует высокого качества научной работы. Однако оно позволяет выполнить (хотя бы в первом приближении) ту самую публичную экспертизу, за позитивными примерами которой далеко ходить не нужно - имя им легион.

Опять отвлекусь: впрочем, на произведения "фоменковцев", похоже, такая экспертиза никакого влияния не оказывает - число книг означенного академика на полках магазинов не уменьшается. Видимо, это тот случай, когда требуется не экспертиза (нечего экспертировать-то), а простое игнорирование.

Ту же роль, что научный аппарат в исследованиях, в области Free Software выполняют открытые исходники. Их наличие само по себе не гарантирует высокого качества программы. И, разумеется, пользователю, далекому от программирования, исходные тексты на Си мало чего скажут. Однако, как и в науке, пользователь вправе ожидать, что ошибки в открытой программе будут выявлены людьми, разбирающимися в этом получше него. Не только выявлены, но и исправлены, а не возведены в ранг непременной особенности данной программы. А он, пользователь, вследствие открытого характера разработки об этом узнает своевременно - при наличии желания, разумеется. И, надо сказать, все эти ожидания в большинстве своем оправдываются...

Собственно говоря, именно публичная экспертиза кода (или, проще говоря, механизм обратной связи пользователей и разработчиков) - одна из причин, почему открытость исходников (то есть явление Open Sources) почти неизбежно влечет за собой свободу распространения программы в соответствие с принципами Столлмена. Действительно, какой смысл имеет выявление ошибок (свобода изучения) без возможности их исправления (свободы модификации) и предоставления доступа к скорректированной версии (свободы распространения)?

Показательно, что все успешные проекты, некогда коммерческие, но подвергшиеся процедуре открытия исходников на определенных, не вполне соответствующих GPL- или BSD-лицензиям, условиях, рано или поздно эволюционировали в сторону полной свободы в понимании Free Software. Здесь достаточно вспомнить StarOffice, Netscape или GRASS. Причем характерно, что на базе одного и того же открытого кода вполне мирно уживаются как полностью свободные программы (OpenOffice.org, Mozilla или многочисленные Gecko-клоны), так и программы, сохранившие свой проприетарный статус (первозданные StarOffice и Netscape). Программы же с открытыми исходниками, не ставшие истинно свободными (например, Solaris или True64 Unix), очень быстро потеряли и свой открытый статус, вернувшись в лоно проприетаризма.

Кто оплачивает банкет?

Мой снобизм - он как лучик путеводный,
Помогает воспринять судьбу как должно:
Мол, художник - он обязан быть голодным.
Он худой, но гордый, он - художник.
Тимур Шаов

В контексте этого раздела осталось обсудить одну тему, близко связанную с предыдущей: а кто вообще должен (и должен ли?) финансировать такие родственные области человеческой деятельности, как разработка Open Sources и фундаментальную науку? И кто их финансирует в настоящее время?

Должно, однако, для начала заметить, что родственность Open Sources и фундаментальной науки - не мое изобретение. Блестящее обоснование этого тезиса содержится в статье: Николай Безруков. Разработка программ с открытыми исходниками как особый вид научных исследований. Byte Россия, 2000, #5 (21), с. 64-77. К сожалению, столь древний номер журнала успел, видимо, стать библиографической редкостью, но есть и онлайновая версия.

У читателя большей части популярных публикаций на тему Open Sources вполне может создастся впечатление, что разработка программ этого класса осуществляется на голом энтузиазме, напоминающем ударников-стахановцев и прочих строителей Магнитки. Что, конечно, очень бла-а-родно, но в наш коммерциализованный век вызывает законное недоверие (особенно с учетом аналогии строителей Магнитки и БАМа - забайкальских комсомольцев).

Проблема финансирования Open Sources включает в себя три аспекта:

  • кто может быть заинтересован (и может ли?) в финансировании разработки Open Sources;
  • в какой форме заинтересованные стороны могут осуществлять финансирование разработки Open Sources;
  • каким образом финансирование это может распределяться среди разработчиков.

Должен сразу признаться - ответов на эти вопросы я не знаю. Однако они - совершенно те же, что возникают при финансировании т.н. фундаментальной науки. А поскольку в этой сфере мировым научным сообществом накоплен весьма большой, хотя и не всегда положительный, на мой взгляд, опыт, по аналогии рискну высказать некоторые соображения.

Но сначала зададимся иным вопросом: а нужно ли финансирование разработки программ с открытыми исходниками вообще? Ведь теоретически предполагается, что это - предприятие самоокупаемое, а то и просто прибыльное. Однако теоретически, как говаривал дед Щукарь, она лошадь, а практически она падает...

Напомню, что на протяжении всей этой главы я пытался подчеркнуть, что открытость исходников некоей программы и даже свобода ее распространения отнюдь не подразумевает бесплатности. Тем не менее практика такова, что подавляющее большинство открытых и свободных ОС вкупе со своими приложениями распространяется практически бесплатно. То есть сакраментальная интеллектуальная собственность источником дохода служить не может (как это имеет место быть в случае проприетарного софта).

Прибыльность разработки Open Sources обычно обосновывается туманными фразами о сопровождении и поддержке программных продуктов, распространяемых бесплатно. В смысле - по себестоимости носителей и документации. Когда в отрицание бесплатности открытого софта приводят американские цены на дистрибутивы типа Red Hat или Suse, забывают, что 100- (или даже 200-) долларовые их коробки содержат штук пять-шесть изрядной толщины книжек. А в Америке любая специальная книжка меньше полтинника ихних денег, насколько я знаю, сама по себе не стоит. Если же речь идет о дистрибутивах ценой в несколько тысяч долларов - то тут уже в стоимость включено именно сопровождение продукта в явном виде,

Тем не менее, достоверных известий о фирмах или персонах, обогатившихся за счет массовой техподдержки Open Sources, у меня нет. Что понятно: люди, покупающие дистрибутив Linux (для примера), имеют целью разобраться в системе. И либо этой цели достигают, и тогда в техподдержке не нуждаются. Либо бросают это занятие, и тогда не нуждаются в поддержке тем более. Если же речь идет о корпоративных пользователях - не думаю, что разумный руководитель рискнет перевести весь свой документооборот на Linux или BSD, не имея в штате квалифицированного специалиста по одной из этих систем. Так что мечты о заработке на техподдержке - столь же наивны, как и мечты о самоокупаемости фундаментальной науки, блестяще-утопично сформулированные на заре перестройки Максимом Максимовым в статье "Реанимация" (Знание-сила, 1989, #11).

Конечно, само по себе издание и распространение дистрибутивов прибыль приносить может. Так же, как ее приносит, скажем, издание детективов Марининой и их продажа. Однако к аналогии с книжным бизнесом я обращусь несколько позднее.

А пока: кто заинтересован в развитии Open Sources и, соответственно, мог бы финансировать его разработку? Кроме его разработчиков и пользователей, разумеется. Но ведь разработчики Open Sources, хотя и заняты своим делом в большой степени из любви к искусству, также хотят есть-пить. А пользователи - они ведь пользуют Open Sources в значительной мере в виду его бесплатности, практической или теоретической. Что удовлетворению означенной потребности разработчиков отнюдь не способствует...

Первая сторона, заинтересованная в развитии Open Sources - пользователи любого коммерческого софта. Впрочем, не смотря на внешнюю парадоксальность, это очевидно: только конкуренция со стороны открытых и свободных программ может подвигнуть коммерческих разработчиков на совершенствование своей продукции.

Как ни странно, в качестве второй стороны, наиболее заинтересованной в развитии открытого софта, видятся производители коммерческих Unix-систем (хотя, подозреваю, что сами они своего счастья не понимают). Почему - обосновать не трудно.

Молодому человеку, сызмальства привыкшему к Linux (FreeBSD, OpenBSD etc.) и пришедшему на службу со школьной (или университетской) скамьи, работать в Windows - что серпом по... сами знаете чему. Гораздо легче ему будет перейти на Solaris или AIX. А достигнув по службе должного положения, он, безусловно, приложит все усилия к тому, чтобы внедрить POSIX-системы в родном трудовом коллективе - ведь, по тем или иным причинам, далеко не всегда можно обойтись свободными их реализациями.

За иллюстрацией этого достаточно спуститься в не столь уж далекое прошлое - 1995 год. Когда (не заставшим того времени поверить в это трудно - но факт имел место быть) в качестве реальной альтернативы для массовых настольных систем рассматривались OS/2 и Windows 95. Причем ни у кого не вызывало сомнений технологическое превосходство первой. Но: Windows 95 пришла в дома, а OS/2 - нет (о причинах распространяться здесь неуместно). И через несколько лет на работу вышло поколение, вскормленное и вспоенное в "окнах". Результат не замедлил воспоследовать: кто и когда последний раз видел OS/2 на пользовательском десктопе?

Наконец, третья заинтересованная сторона - это государство, причем - любое (правда, применительно к нашему государству об этом и не подумаешь). Причины этого также достаточно тривиальны - здесь и баланс между монополизацией и свободной конкуренцией, и массовый независимый аудит программной продукции, и снижение себестоимости рабочего места госчиновника, список легко продолжить. И не на последнем месте в нем окажутся соображения государственной безопасности: как бы "подоконная" кольчужка коротка не оказалась...

Теперь посмотрим, горят ли заинтересованные стороны желанием оказать развитию Open Sources посильную финансовую помощь?

Конечно, странно было бы ожидать от массы Windows-пользователей благотворительных пожертвований в FSF и аналогичные dot-org'и (а для последних это нередко - существенный источник финансирования, примером тому проект OpenBSD). Тем не менее наиболее продвинутая часть их косвенно в финансировании Open Sources участвует. Хотя бы тем, что проявляет интерес к публикациям на эту тему - и бумажным, и сетевым. В результате чего компьютерные издания печатают больше статей соответствующего профиля, регулярно выплачивая авторам гонорары, чем и способствуют материальному благополучию писателей-POSIX'ивистов (навроде вашего покорного слуги:-)).

Теперь о корпорациях - производителях Unix-машин и разработчиках проприетарных версий Unix и софта для них. Об инвестициях IBM в Linux-компании знают, наверное, все. Однако это лишь одна сторона дела. Меньшее внимание привлекает то, что, скажем, изрядное количество разработчиков свободного браузера Mozilla (из некоторых источников явствует, что - большинство) по совместительству являются штатными сотрудниками AOL (хотя скорее - наоборот) и работают над проприетарным (хотя и бесплатным, но не свободным) браузером Netscape. А команды разработчиков свободного офисного пакета OpenOffice и проприетарного - StarOffice, суть множества пересекающиеся (не знаю уж, насколько точно, но очень значительно). Ну и недавнее приобретение Suse Linux компанией Novell (до некоторого времени правообладателя торговой марки Unix) - также факт показательный.

И, наконец, государство. О прямом госбюджетном финансировании разработки свободного софта в большинстве стран, как будто бы, слышно не очень много. Кроме, разве что, Китая, где курс на внедрение открытого и свободного софта - прямо-таки генеральная линия Партии и Правительства. Проскальзывает информация о господдержке Linux (в сфере наробраза, например) в паре-тройке стран Латинской Америки (Мексика, Бразилия). Ну и есть сведения, что французская компания Mandrakesoft (производитель одноименного дистрибутива Linux) была некогда выведена из затянувшегося кризиса благодаря правительственным ассигнованиям.

Это - с одной стороны, Однако - вспомним, что BSD (предок свободных операционок Free-, Net- и OpenBSD) почти полтора десятка лет разрабатывалась в Университете Беркли. На денежки, между прочим, оборонного ведомства США - то есть прямого госбюджета.

Или - история финского студента Линуса Торвальдса. Который благополучно проучился (а потом и проработал) в университете лет семь, за которые свой Linux и разработал. А ведь высшее образование в Финляндии, насколько мне известно, бесплатное - сиречь финансируемое из госбюджета. Так что можно сказать, что Linux был создан за счет финской казны (и финских же налогоплательщиков; также как FreeBSD - за счет налогоплательщиков американских).

Все это я говорю к тому, что романтическое представление о создателях свободного софта как об энтузиастах-одиночках (со всеми вытекающими из этого следствиями, как положительными, так и отрицательными) подчас весьма далеки от истины. Многие из них - и сотрудники коммерческих фирм, и выходцы из академическо-университетской среды, - занимаются этим делом в рамках своих прямых должностных обязанностей, получая за это зарплату.

Значит ли это, что движение Open Sources имеет достаточную финансовую базу? Отнюдь. Государственные программы имеют обыкновение рано или поздно заканчиваться по самым разным причинам. (Не с падением ли мировой системы социализма связано прекращение финансирования проекта BSD в 1991 году?). Вливания от коммерческих фирм зависят от конъюнктуры рынка. А интерес широких народных масс ко всему, связанному с Linux и Open Sources, в значительной мере лишь дань моде.

Так что какие-либо дополнительные источники финансирования не помешали бы движению Open Sources. Однако уже упоминавшаяся аналогия между ним и фундаментальной наукой наводит меня на мысль: а пойдут ли они ему на пользу? Ибо второй вопрос после получения финансирования - как это финансирование будет распределяться среди собственно разработчиков?

Опять же по аналогии с наукой можно предположить три модели распределения финансов. Первая, наиболее эффективная, модель описана в легенде про Папу Римского (не помню уже кого и которого) и знаменитого художника Титиана. Коему Папа просто подарил дворец вместе с ежегодной рентой, необходимой на его содержание. Дабы у мужика голова по пустякам не болела...

Модель эта не столь утопична, как может показаться: по доброй традиции, основанной товарищем Сталиным, примерно по такой схеме осуществлялось финансирование науки в Советском Союзе. Правда, у товарища Сталина была некоторая страховка на случай, если товарищ Титиан начнет манкировать своими обязанностями: всегда можно немножечко расстрелять товарища Титиана. Когда такой возможности не стало, советская наука очень быстро пришла к тому, к чему пришла...

К слову сказать - модель эта минимум однажды эффективно сработала и в мире открытых исходников. Не напоминает ли вам положение Линуса в компании Transmeta то, в котором оказался Титиан Папскою милостью, или товарищ Курчатов - волею гения всех времен и народов?

Вторая модель - финансирование проектов в форме грантов, как это принято в отношении научных исследований в т.н. цивилизованных странах. А в последние годы и Россия приобщилась к этой практике. Так что о достоинствах и недостатках такой схемы распространяться не буду - наши "дети капитана Гранта" (они же - "Джорджа Сороса птенцы") испытали их на собственной шкуре.

Хотя и для этой модели есть примеры удачного использования в истории движения Free Software - разработка систем линии BSD 4.X в Университете Беркли.

Наконец, третья модель - гонорарная, аналогичная принятой в книгоиздательской практике. Я уже говорил, что собственно прибыль при распространении открытого софта могут извлекать издатели и продавцы дистрибутивов. Причем прибыль эта в значительной мере определяется сопровождающей печатной продукцией (документацией). Так почему бы им, в соответствии с божьей заповедью, не поделиться ее толикой с теми, кто обеспечивает им предмет издания и продажи?

История показала, что эта модель, пожалуй, наиболее эффективна. Она прекрасно сработала в случае FreeBSD и Linux Slackware. И тот, и другой проект долгое время развивался при поддержки компании Walnut Creek - известного продавца компакт-дисков (а потом и дистрибутивов). Доход от продажи дистрибутивов (плюс разнообразной атрибутики - маечек, кружечек etc.), насколько мне известно, - один из основных источников финансирования проекта OpenBSD. Ну и для компаний, собирающих дистрибутивы Linux (типа Red Hat и Suse), это - также некоторое подспорье.

Но - не более: ибо мир информационных технологий породил и еще одну модель финансирования собственной деятельности - ту самую пресловутую техническую поддержку и поставку готовых решений, о которых я уже говорил ранее. И к которой по ряду причин отношусь несколько скептически. Однако недавний отказ Red Hat от официальной поддержки собственного пользовательского дистрибутива показывает, что заинтересованные стороны моего скептицизма не разделяют. Что ж, Бог им в помощь...

Впрочем, в нашей стране затронутые здесь вопросы носят чисто теоретический характер. И ныне разработчикам Open Sources (как и научным работникам) следует находить утешение в строках Тимура Шаова, приведенных в качестве эпиграфа этого раздела. Тем не менее, вопрос о том - а можно ли в принципе заработать на Open Sources? - заслуживает специального рассмотрения.

Можно ли заработать на Open Sources?

И здесь мне хотелось бы начать с цитаты из статьи Владимира Попова Размышления на тему Open Sources Way:

Критерий рентабельности заведомо не приложим к научной, гуманитарной, медицинской и многим другим сферам деятельности человека (не говоря уж о сфере искусства).

Возникает вопрос - а приложим ли этот критерий собственно к открытому программному обеспечению? Что особенно актуально в свете все более частых попыток "Заработать на Open Sources". Конечно, само слово "заработать" в этом контексте имеет двойной смысл - но к этому я еще вернусь в конце. А пока все же попробую ответит на свой вопрос. Для чего, несколько забегая вперед, придется обратиться к истории (каковая послужит предметом следующей главы).

С чего началась дорога, получившая потом название Unix-way? Как всем известно, началась она с проекта Multics. Что это было такое? Это была совместная разработка Bell Labs, General Electric и Массачуссетского технологического института (MIT). То есть - вполне академический проект. Где работали основоположники Unix? Работали они в той же Bell Labs, хотя и принадлежащей коммерческой компании, но имевшей целью все же научные разработки. А кто сказал, что научная работа не может финансироваться частным капиталом? Только не те, кому посчастливилось получить Нобелевскую премию.

Дальше - больше. Чей вклад в становление Unix в современном его виде был наиболее весом (после его основоположников, конечно же)? Университета Беркли, штат Калифорния. Кем был Ричард Столлмен до того, как он начал свой крестовый поход за освобождение гроба Господня (то есть, пардон, за свободу софта)? Был он, как известно, научным сотрудников в лаборатории искусственного интеллекта в том же MIT. Чем занимался Энди Танненбаум, создатель Minix - системы, вдохновившей Линуса Торвальдса на его бренный труд по написанию терминальной программки? А занимался Энди преподаванием а Амстердамском университете. Да и Minix свой написал он, собственно говоря, для того, чтобы обучать скубентов основам Unix.

Наконец, кем был сам Линус Торвальдс в то время, когда его терминальная программа медленно, но верно превращалась в операционную систему? Был он студентом, а потом научным сотрудником университета в Хельсинки. И число таких примеров можно умножить до бесконечности.

Из всего сказанного можно сделать вывод: создание Unix как открытой (в смысле - соответствующей открытым стандартам) системы и ее производных, представленных открытым и свободным софтом во всех его проявлениях, происходило практически полностью в сугубо академической среде. А если вспомнить о том, что вся софтверная индустрия базируется, в сущности, на математических алгоритмах, развивавшихся в рамках "чистой" математики со времен Евклида и Бируни, становится окончательно ясно: Unix-way и Open Sources есть порождение той области человеческой деятельности, которую именуют "чистой" или фундаментальной наукой. Впрочем, задолго до меня к тому же выводу пришел Николай Безруков в упоминавшейся выше статье.

Таким образом, поставленный ранее вопрос сводится к более общему: а можно ли заработать на занятиях фундаментальной наукой? И тут впору вспомнить о двух смыслах русского слова заработать. Первый - это получать некоторую плату (в Кодексе законов о труде при советской власти она так и называлась - заработная, хотя ниже мы увидим, что это определение не вполне адекватно) за свою работу. И второй - это извлечение прибыли, то есть предпринимательская деятельность.

Если в наш вопрос подставить первый смысл слова заработать, то ответ на него будет сугубо положительным. В обоснование чего можно привести не только немецких профессоров XIX века (весьма обеспеченных по тем временам людей), но и судьбу Линуса Торвальдса: ведь в сущности на протяжении нескольких лет он получал свою зарплату в университете именно за то, что разрабатывал Linux.

За чей счет выплачивается зарплата научного работника? Как стало, надеюсь, ясным из предыдущего параграфа - научная работа вообще оплачивается обществом в целом. А уж посредством чего и кого эта оплата осуществляется - вопрос другой.

Мы уже видели, что посредником в оплате научной работы может быть государство в целом или отдельные государственные ведомства. Это могут быть корпорации - ведь компании типа AT&T или IBM суть не что иное, чем социальные объединения, превосходящие по масштабам несредние даже государства. И, наконец, общество (или отдельные, наиболее прогрессивные, его представители) могут выступать финансистами научных работ и непосредственно - в виде пожертвований.

Выработанные за века существования науки как важной сферы человеческой деятельности (и за многие уже десятилетия - как массовой профессии) три формы распределения финансовых источников - прямая выплата так называемой зарплаты (так называемой - потому что суть явления лучше передается словами жалование или оклад содержания), финансирование в форме безвозмездных кредитов - грантов, и гонорарная оплата результата, - имеют свои достоинства и недостатки. Однако никакого иного механизма пока не придумано и в мире свободного софта: Линус получал оклад содержания в своем университете, создатели BSD жили за счет грантов мирного американского ведомства, а средства к существованию Столлмена вполне подпадают под понятие гонораров.

Так что зарабатывать на кусок хлеба своей работой на ниве Open Sources вполне можно (правда, боюсь, не в нашей стране). А вот может ли быть открытый софт объектом предпринимательской деятельности? То есть - служить для извлечения прибыли. Здесь однозначный ответ дать трудно.

По аналогии с научной работой можно видеть, что сама по себе разработка открытого софта никакой прибыли принести не в состоянии - что-то я не слышал об акционерных компаниях по разработке специальной теории относительности или квантовой механики. Прибыль начинается на стадии так называемого внедрения научных разработок в жизнь, то есть когда наука перестает быть наукой и становится технологией. В софтверной индустрии с таким внердением можно сопоставить а) тиражирование, б) обучение и в) сопровождение программной продукции. Как тут обстоит дело с прибыльностью?

Очевидно, что норма прибыли при тиражировании свободных программ стремится к нулю. Ведь себестоимость носителей практически нулевая, сами программы - общедоступны, и наварить здесь практически невозможно. Вспомним пример из книги Линуса - когда стоимость завоза воды превышает допустимый пользователями уровень, кто-нибудь обязательно протянет водопровод. Так что единственное, что тут остается - это пытаться компенсировать норму прибыли ее массой. То есть - объемом продаж. А объем этот напрямую связан с количеством пользователей Open Sources. Причем - в первую очередь пользователей-индивидуалов - в силу специфики свободных лицензий компания уже в 100 человек вполне может наладить тиражирование своими силами и в потребных масштабах, - а их за десктопами отнюдь не большинство. Так что и места под солнцем для Linux-предпринимателей оказывается не так много.

И тут тиражирование тесно смыкается с обучением - поскольку существовать без него не может. А под обучением я понимаю не только (и даже не столько) всякого рода сертифицированные курсы, сколько - самую элементарную печатную документацию. Ведь каждому, кто видел в книжном магазине США или Европы научные монографии, становится ясным: цена коробочных дистрибутивов Red Hat или Suse на 90% состоит из стоимости сопутствующей полиграфии. То есть компании-распространители дистрибутивов - это не столько разработчики программного обеспечения, сколько - издатели оного (и сопутствующей продукции). И структура их доходов в этой части оказывается такой же, как у любого книжного издательства.

Книжные издательства в мире существуют уже веками, и даже те из них, что занимаются издательством исключительно научной литературы, особо не бедствуют - вспомним Эльсивьер. Однако и здесь для Linux-компаний (назовем их так) не так уж все здорово. Ибо обычные книгоиздатели занимаются тиражированием уникальных, то есть безальтернативных, авторских произведений (будь то научные монографии или детективные романы) - или по крайней мере тех, которые воспринимаются обществом в этом качестве:-).

Сопровождающая же софт документация представляет собой лишь один из многих вариантов получения информации об оном софте. И с развитием Интернета роль ее все более снижается. Так что единственной побудительной причиной к приобретению коробки с руководством может быть только литературный талант написавшего ее автора - необходимую сумму знаний пользователь легко может получить другими путями. Так что особенно раскатывать губы на связке "тиражирование+обучение" также не стоит.

Наконец, поддержка. Традиционные формы поддержки можно разбить на два вида: привычное многим эникейство - индивидуальное или в масштабе (рабочей) группы товарищей, - и корпоративная поддержка. Первая форма, блестяще зарекомендовавшая себя в мире Windows (и обеспечивающая кусок хлеба со стаканом пива не одному уже поколению эникейщиков), в мире Open Sources явно не сработает. Ибо начинающий пользователь-индивидуал, скажем, Linux или а) очень быстро перестанет быть начинающим, и в услугах эникейщика нуждаться не будет, или б) бросит это занятие - и тогда ему эникейщик не потребуется тем более, или в) получит в свое распоряжение идеально настроенную под его задачи систему, в которой можно будет, ничего не меняя, работать веками - и больше обращаться к эникейщику повода у него не будет (разве что по старой памяти пивком угостить).

Корпоративная поддержка... Да, это то, на чем, в основном, делают деньги и Red Hat, и Suse, пытаются - IBM и Hewlett-Packard, возможно - кто-то еще. Однако уже ограниченность списка - списка по настоящему удачливых компаний в этой сфере, - свидетельствует о том, что ниша эта не столь уж обширна, как кажется. Предвижу возражение - с распространением Linux'а в широких массах простых американских (и прочих) миллиардеров ниша эта будет расширяться. Отнюдь - возражу я. Потому что с распространением Linux будет расти и количество специалистов в оном (хотя, как показывает практика. - не обязательно их качество), и так называемую поддержку вполне можно будет осуществить в рамках локального предприятия. А в условиях российской дешевизны рабочей силы фактор этот будет особенно весом.

Это я не к тому, что поддержка Linux - дело бесперспективное. Хочу лишь подчеркнуть, что сфера эта столь же ограничена, как и область тиражирования/обучения. А с распространением Linux к тому же будет все менее рентабельной.

Все ли так мрачно в области коммерческого использования Open Sources? Не совсем, потому что есть еще и четвертый способ извлечения прибыли из оного, причем - находящийся на грани с зарабатыванием денег в первом смысле этого слова. Однако о нем я буду говорить в следующем параграфе.

Как же заработать на Open Sources?

Тут я постараюсь - несколько сгладить мрачно апокалиптическую картину, нарисованную мною в предыдущем параграфе, относительно перспектив коммерческого использования свободного софта. Но для этого нам придется вернуться к тому, кому и зачем нужен Linux (буду говорить так для краткости, но на самом деле все сказанное относится и к FreeBSD, и к другим BSD-системам).

Однажды на одном из форумов я затеял опрос - для чего пользователи переходят на Linux и прочие свободные ОС POSIX-семейства. И, как и ожидалось, смысл большей части ответов можно резюмировать так: чтобы получить надежную и устойчивую систему, идеально заточенную под конкретные задачи данного пользователя.

Другое дело - что задачи у всех бывают разные. Большинство обращается к Linux сотоварищи или для разработки софта, или для администрирования. Или - для того, чтобы в домашних условиях учиться тому или другому. Некоторые авторы полагают, что только для этих целей свободные POSIX-системы и пригодны. Но при этом забывают еще об одной категории, самой многочисленной - так называемых простых, или конечных, пользователях. А у них задачи - еще более разнообразны. Для кого-то компьютер - это гейм-станция, для иного - музыкальный центр. А некоторые, как это ни странно, выполняют на компьютере свою непосредственную работу. Обычно никак с компьютерами не связанную. И если перспективы Linux в области игр или мультимедиа не вполне ясны, то как рабочий инструмент для очень многих и многих он оказывается идеальным.

И тут впору вспомнить, что любой дистрибутив Linux или BSD-система представляет собой лишь полуфабрикат готовой индивидуальной системы для практического использования. И любой из них может быть превращен пользователем в закаленное и отточенное орудие для выполнения данной задачи, имеющее все необходимые функции - и ни одной лишней.

Реально ли это? Мой личный опыт показывает - более чем. Может ли это выполнить каждый отдельно взятый пользователь (не имеющий, напомню, специального образования и специфических навыков) на отдельно стоящем персональном компьютере? Теоретически - ну конечно же, может. Для этого только что и нужно, как прочитать несколько толстых книжек по Linux и, особенно, Unix (объемом в какие-нибудь тысячу с небольшим страниц каждая), пару сотенок мануальников и HOW-TO'ев (с побочной пользой - практикой в английском), научиться сочинять простенькие шелл-скрипты и макросы для текстового редактора, ну и освоить еще несколько мелких дел.

Правда, возникает вопрос - а когда этот пользователь будет заниматься своей непосредственной работой? Ну, это - его личное дело ("Меньше спите. Или больше работайте" - как сказал персонаж из "Территории" Олега Куваева). Главная загвоздка тут в другом: в один далеко не прекрасный день такой пользователь с ужасом обнаруживает, что копаться в конфигах или разбираться с опциями компилятора для него стало интереснее, чем переводить контракты, подводить квартальные балансы или даже вычислять P/T-условия выплавления базальтовых магм.

И в этот миг на свете станет еще одним переводчиком, бухгалтером, геологом меньше - и одним POSIX'ивистом больше. Что, само по себе, конечно же, замечательно - да вот только если так пойдет дело, кто же будет хотя бы начислять им зарплату? Да и за что - ведь вся их деятельность превратится в процесс обеспечения самих себя новыми задачами по настройке и совершенствованию собственной системы...

И вот тут наступает Час POSIX'ивиста. Именно его может позвать наш бухгалтер/переводчик/геолог для оборудования своего рабочего места. Которое будет включать в себя не просто установку системы, а полный комплекс по ее обработке (рашпилем там, или алмазным надфилем - это уже зависит от задач и субстрата, сиречь исходного дистрибутива). Причем в той степени, какая потребуется, чтобы избавить пользователя от необходимости приобретать хоть какие-то знания о внутреннем устройстве системы.

Возникает вопрос - а можно ли это выполнить в рамках UNIX-подобной системы? Ведь традиционно считается, что пользователь Linux должен читать горы мануальников, разбираться в правах доступа и т.д. (см. перечисленное выше). Отвечаю: именно в POSIX-системе такое возможно. Потому что обычно индивидуальный пользователь ее - не просто пользователь, но и сам себе админ. То есть он вынужден устанавливать и настраивать систему, устанавливать и обновлять прикладной софт, и так далее.

Здесь же речь идет о создании некоего комплекса, того, что именовалось на заре советской компьютеризации Автоматизированным Рабочим Местом - АРМом бухгалтера, переводчика, геолога. То есть - монофункциональной системы с сознательно урезанными до необходимого уровня возможностями. Пользователь такой системы не должен в сущности даже иметь root-акаунта: все, что от него требуется - это уметь включить питание, элементарным нажатием двух-трех клавиш запустить пару-тройку приложений или утилит с требуемыми опциями (а создание скриптов, обеспечивающих такую возможность - одна из задач нашего POSIX'ивиста) и выйти с сохранением данных и корректным завершением сеанса (например, по нажатию сакраментальной комбинации из трех пальцев, а уж о корректности всего остального должен позаботиться POSIX'ивист).

И устанавливать программы такому пользователю не придется. Весь комплекс необходимого для его задач софта будет установлен единовременно. Обновления? А нужны ли они, если комплекс этот будет тщательно продуман изначально, подогнан как под задачи, так и под железо? Ведь классические программы в стиле Unix way меняются мало (в смысле качества - давно уже лучше некуда, а в смысле функциональности - в том-то и суть Unix way, чтобы не прикручивать к утилите find системы заварки кофе). По настоящему (не удовлетворения любопытства для) необходимость в обновлениях связана а) с обеспечением безопасности и б) появлением нового оборудования, не поддерживаемого наличным софтом. Но в данном случае ни то, ни другое не актуально: о безопасности можно позаботиться заранее, а оборудование в таком АРМе не меняется до полной физической амортизации.

А, вообще говоря, все описанное в предыдущих абзацах, - опять-таки не более, чем изобретение велосипеда. Именно по такой схеме начиналась всеобщая PC'фикация всей страны (тогда еще - Советов). То есть: IBM PC/XT с "черным" DOS'ом (необходимости в NC "по делу" - не возникает) и программой бухучета (или там учета кадров), запускаемой batch-файлом, вызываемым нажатием клавиши Any Key:-). Правда, реализация этого, как правило, оставлял желать лучшего, но речь сейчас - об идее. И представьте, как это может быть реализовано на базе современного "железа" - раз, и с полной возможностью лишить пользователя возможности (пардон за тавтологию) совершить потенциально опасное действие в принципе - два.

Конечно, создание такой системы (при качестве реализации выше среднего уровня) - весьма кропотливая работа. Ее, в сущности, можно сравнить с ружьем штучного разбора (да еще и с ручной высокохудожественной гравировкой). И много ли заработает наш POSIX'ивист-индивидуал на столь же индивидуальных пользователях?

Скорее всего, не очень. Потому что вопрос этот адресован не ко мне. И упирается в повышение материального благосостояния советского (пардон, российского) гражданина - а тут уже Unix way бессилен. Однако...

Однако все сказанное относится не только к обеспечению трудящегося-индивидуала. А имеет силу и для любого трудового коллектива - будь то частная фирма или госпредприятие. И даже, я бы сказал, большую силу. Потому что функционально ограниченные АРМы (на которых, в частности, невозможно резаться в tetris или linе, смотреть порнографию по Сети и заниматься прочими увлекательными занятиями) востребованы скорее в служебной, нежели домашней, обстановке. А тут уже:

  • совершенно другие масштабы - это понятно;
  • совершенно другие объемы кропотливой ручной работы - ведь АРМы для ста банковских операционисток, выполняющих одинаковую работу, будут практически идентичными, и достаточно отрихтовать руками один экземпляр;
  • совершенно иные условия работы - ведь все эти сто АРМов можно единовременно инсталлировать по локалке;
  • и, как следствие совершенно иные соотношения трудозатрат/трудоооплат.

Впрочем, для последних более существенна проблема спроса - есть ли он? Ну, во-первых, отсутствие спроса в настоящее время прямо связано с отсутствием предложения (часто ли в советских магазинах спрашивали черную икру? - спросом не пользовалась...). А во-вторых, даже несмотря на отсутствие предложения, спрос есть.

Предвижу возражение и с другого фланга: а не является ли идея таких АРМов профанацией идеи свободного софта? Одним из краеугольных камней которого (и это пройдет лейтмотивом всей этой книги), является свобода выбора. В какой-то мере - да, но по сути - нет. Потому что начинающий пользователь свободной POSIX-системы все равно свободы выбора не имеет: он просто в силу отсутствия знаний не в силах выбрать адекватный почтовый клиент или текстовый редактор из того легиона программ, который лежит на полудюжине сидюков любого т.н. user-ориентированного дистрибутива Linux. Свободу эту он получит только тогда, когда изучит их все, то есть превратится в POSIX'ивиста, - но мы договорились, что это в его задачи не входит, не так ли?

Тем не менее, у него есть свобода выбора другого - заниматься созданием собственного АРМа самому или предоставить это дело тому, кто может это осуществить по уровню знаний и должностной инструкции, то есть тому же нашему POSIX'ивисту. А вот у последнего эта самая свобода выбора сохраняется в полном объеме - и, более того, он имеет не только право, но и реальную возможность ею воспользоваться.

Более того, рискну высказать крамольную с точки зрения абстрактного свободолюбия мысль: существует немало сфер человеческой деятельности, где свобода выбора не только не полезна, но и просто противопоказана. И пример с банковскими операционистками тут далеко не единственный...

Итак, "кратко резюмирую сегодняшний базар". Будущее коммерческого использования свободных POSIX-систем - не в дистрибуции Linux на десктоп каждой секретарши на смену Windows-десктопу, дабы она могла им управлять, как кухарка - государством. А в создании специализированных монофункциональных систем на базе некоего дистрибутива общего назначения.

О продолжении банкета

Руины прекративших свое развитие открытых проектов на просторах Интернета служат свидетельством недостаточного финансирования разработки свободного софта.

Впрочем, столь же частая причина прекращения открытых проектов - это просто потеря интереса к ним со стороны разработчиков. И последний фактор не столь уж трагичен, как может показаться. Более того, он - следствие того положительного, что заложено в самой идеологии Unix, и неотрывен от нее.

Как будет ясно из дальнейших глав, в основе идеологии Unix лежит принцип - разложение любой сложной задачи на несколько максимально простых, атомарных, действий, интегрируемых воедино с помощью специфических приемов. И потому все классические Unix-утилиты (и большинство программ, следующих этому направлению, именуемому Unix Way) - монофункциональны. То есть каждая из них умеет делать, обычно, только одно, - но зато уж делает это очень хорошо.

А теперь представьте себе ситуацию: студент или аспирант в области Computer Sciences пишет маленькую, но полезную монофункциональную утилиту - например, для массированного переименования файлов. Причем один из основных его мотивов в этом случае - просто повышение собственной профессиональной квалификации. Постепенно утилита эта доводится до практически достижимого совершенства - и что дальше?

А дальше перед разработчиком есть два пути. Первый - это рутинное исправление мелких ошибок, внесение мелких усовершенствований, приведение в соответствие с новыми версиями ОС, системных библиотек и тому подобного взаимосвязанного софта. Но ведь наш молодой специалист за это время уже вырос в профессиональном отношении, у него могли появиться совсем другие интересы, И такое рутинное сопровождение программы для него оказывается просто скучным.

Второй путь - это расширение функциональности. Программу для переименования файлов можно научить эти файлы как-то еще обрабатывать. А там - и работать с их содержимым, скажем. Ну и заодно уж - подавать кофе в постель и сообщать прогноз погоды. В результате чего наше отточенное орудие переименования превращается в неповоротливого монстра, который, подобно пятиборцу, все умеет делать... плохо (да простят меня читающие это пятиборцы - я очень люблю этот вид спорта, но в кругах спортсменов-монофункционалов бытует именно такая шутка).

И ладно бы, что второй путь противоречит всей идеологии Unix (тому, что называют Unix Way). Но ведь порочность его доказана практикой - всей историей проприетарного софта. Производители которого неизбежно вынуждены расширять, с позволения сказать, функциональность своих продуктов. Ведь как иначе убедить в необходимости покупки Office 2003 пользователя (которому зачастую вдоль хватило бы возможностей Lexicon'а), как не открывающимся перед ним сказочным богатством функций? За которые приходится расплачиваться гигагерцами и гигабайтами железа, монстроидальностью интерфейса и в конечном счете снижением общей производительности работы...

И потому то, что разработчики свободных программ, как правило, не идут по пути расширения функциональности своих программ, - фактор, безусловно, положительный. А то, что в итоге они могут потерять интерес к дальнейшей разработке... Что ж, все в жизни имеет оборотную сторону, как сказал один гражданин, у которого умерла теща и пришлось раскошеливаться на похороны ((C) Ильф и Петров).

Тем более, что окончательно и бесповоротно открытые проекты умирают (по отсутствии ли финансов, или из-за ухода исполнителей) крайне редко. Все востребованные сообществом разработки так или иначе не только поддерживаются - и тому в истории мы тьму примеров сыщем, - но и развиваются в рамках заложенного в них потенциала. Доказательством чему - судьба не только vim, существующего с доисторических времен, и столь же долго (и беспрестанно) совершенствуемого, но и простенького joe: происхождение его теряется во мраке веков, имени первого разработчика никто уже и не припомнит, а новые версии его время от времени выходили на протяжении многих лет. А совсем недавно он получил новую жизнь и кардинально новые возможности...

Так что напрашивается и еще одна аналогия - между программами Open Sources и эпическими произведениями прошлого, от Илиады до Старшей Эдды: и тем, и другим уготована вечная жизнь в памяти людской. По крайней мере, до тех пор, пока они сохраняют актуальность для современного им общества. А после - после они становятся достоянием истории...

[ опубликовано 24/05/2005 ]

Алексей Федорчук - Глава 1. Открытость, свобода и халява   Версия для печати