CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Ну и ГНУ!

(c)Петр 'Roxton' СЕМИЛЕТОВ

Сегодня я хочу рассказать о настоящем двигателе прогресса, каковым является лицензия GNU GPL (GNU General Public License). Название это у многих на слуху, однако не все до конца понимают, что она собой представляет и какие интересы защищает. Часто GPL неверно трактуется как лицензия бесплатного ПО. Постараюсь внести ясность.

Недавно я скачал текстовый редактор N, под Windows. К редактору непонятно зачем прилагалась копия лицензии GPL, притом редактор N хотя и был бесплатен, однако не распространялся в исходных кодах. А по лицензии GPL... Да, код должен быть открыт. Зачем? Поясню.

Вначале — небольшой обзор ситуации в традиционном для Windows мире так называемого «проприетарного» программного обеспечения. Проприетарный — это новый термин, который означает «частный», «собственнический». Я не люблю кальки с английского, но раз уж слово в ходу, то... Буду использовать. Что же это такое? Большинство программ распространяется в уже готовом бинарном виде — установи и запусти. Исходный код припрятывается от посторонних, иногда лучше, иногда хуже — достаточно вспомнить недавнее похищение исходников HalfLife 2.

Допустим, компания по производству ПО (назовем ее опять же N) решила создать программу X. Программе Х нужна поддержка технологии Z. У программистов компании N есть несколько вариантов решения проблемы. Первый — потратить время и написать свою поддержку для Z. Вариант второй — взять готовую библиотеку, бесплатную или платную, в которой уже реализована поддержка Z. На территории постСССР чаще всего копирайты авторов этой библиотеки нигде в продукте компании N не упоминаются. Во всем мире принято перечислять используемые библиотеки, у нас же разработчики упорно создают впечатление, что они сами короли горы и что ВЕСЬ код продукта написан ими.

Однако использование «голой» библиотеки тоже не всегда удобно. А вот бы скопировать код, где уже используются функции библиотеки, и подогнать этот код к своему продукту! Но в мире проприетарного софта это называется плагиатом и воровством. Если кто решается на такое, то старается замести следы.

В итоге получается вот что. Стоят на равнине эдакие замки-крепости, каждая в своем котле варит свое варево, иногда добавляя в блюдо овощи с базара. Ежели придумывает кто новую технологию, то сразу ее патентует и говорит другим — хотите эту красивую штуковину? ОК, вот вам dll'ка, которая даст вам поддержку новой штуковины. Платите нам деньги. Вас не должно волновать, как работает наша dll'ка — главное, что с ней у вас будет поддержка нашей технологии. Вы не можете посмотреть, что у нее внутри — это наша собственность, это проприетарное ПО.

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

Уже знакомая нам компания N решила сделать GPL-продукт Х (мне лень выдумывать новые названия). Допустим, некий исследовательский институт заказал N табличный процессор с функциями, которые нужны именно этому институту. И пообещал приличную сумму денег. Заметим, что сейчас компания N отреклась от проприетарности в пользу GPL. Совершенно легально N берет исходники табличного процессора Gnumeric. За пару дней добавляет туда нужные институту функции, тестирует и сдает заказ. Получает деньги. Вот как работает GPL. Быстро, надежно. Очень легко стоять на плечах у гигантов.

Частный разработчик. Он видит осененный лицензией GPL, замечательно звучащий музыкальный плейер, в котором, к сожалению, нет поддержки плейлистов, вдобавок, на редкость скудный интерфейс. Разработчик делает на основе этого плейера свой, оставив понравившийся ему звуковой движок, но переделав все остальное. В «кредитах» остается информация, что новый плейер базирован на таком-то старом. В исходниках тоже остаются копирайты старого — наряду с новыми. В итоге разработчик, решив не изобретать велосипед, поставил на него мотор, и велосипед превратился в мопед. Это — развитие софта по GPL.

Часто путают термины Free Software и Open Source. Если говорить сжато, то Free Software — детище проекта GNU, Ричарду Столлмену и Free Software Foundation, а Open Source (http://www.opensource.org) введено в обиход другими гуру «альтернативного» мира —Эриком Рэймондом и Брюсом Перенсом. Open Source — понятие более широкое, чем Free Software, каковой в свою очередь можно рассматривать как один из его видов. Open Source определяется лицензиями, зачастую более открытыми для интеграции бесплатного софта в исходниках с проприетарным, поскольку накладывают меньше ограничений, чем GPL.

Короче говоря, если ваша программа соответствует концепции лицензии GPL, значит, у вас сугубо Free Software. А вот Mozilla, например, поскольку она не GPL, однако бесплатна и с открытым кодом, — Open Source, однако не Free Software. Вот такая терминологическая карусель. Впрочем, у Mozilla лицензия своя — так и называется: Mozilla Public License (MPL). MPL довольно популярна в мире Windows — достаточно вспомнить знаменитую библиотеку для Delphi —JCL/JVCL (http://www.delphi-jedi.org), лицензированную именно под MPL.

Суть же самой GPL лучше всего выразил Ричард Столлмен в статье «The GNU Operating System and the Free Software Movement» из книги Open Sources: Voices from the Open Source Revolution. Цитирую в своем, очень близком к оригиналу, переводе:

«Программа является свободным ПО для вас, обычного пользователя, если:

вы можете свободно запускать ее, неважно с какой целью;

вы можете свободно модифицировать ее под свои нужды (чтобы это было эффективно, вы должны иметь доступ к исходному коду, ведь изменение программы без исходника — вещь довольно затруднительная);

вы можете свободно распространять копии, просто «за спасибо» или за деньги;

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

Кстати, сам Столлмен еще в 1985 году начал делать деньги на свободном ПО. Он тогда сидел без работы, но разрабатывал свой текстовый редактор Emacs. Последний был выложен для всеобщего скачивания на одном FTP-сервере, но тогда Интернет находился в зачаточном состоянии, и далеко не у всех был к нему доступ. Люди начали спрашивать Столлмена: могут ли они раздобыть Emacs каким-нибудь другим путем, кроме скачивания. Могут, отчего нет :-)? Столлмен начал слать желающим по почте магнитные ленты с Emacs, по 150 долларов за штуку. Примерно тем же занимаются сейчас дистрибьюторы Linux — начиная с Mandrake и кончая совершенно «левыми» сетевыми магазинами. Практически и теоретически, даже вы можете начать штамповать Linux'ы на болванки и продавать их. То есть свободное ПО потому и свободно, что дает небывалую свободу своего использования. Что хотите, то и делайте — в рамках GPL.

Не стоит думать, что я ратую за повсеместное применение идей проекта GNU. Например, Столлмен выступает за свободную документацию. То есть каждый может ее брать и изменять. Лично я, когда выложил исходники своей Звонилки под GPL, документацию оставил под своим копирайтом и оговорил ее «неприкосновенность». Кто хочет, пусть пишет новую документацию на базе моей, но не трогает мой текст.

Однако я всеми руками за GPL в разработке кода. Известная вещь: просто читая исходники, узнаешь о программировании куда больше, чем из теоретических книг. Сколько важной и полезной информации мы бы узнали, поглядев в исходники Total Commander, Opera, The Bat! Но — их исходники закрыты.

Между тем есть GNU/Linux. Где доступны исходные тексты всех программ, от мала до велика. Пример из жизни. Я надумал портировать в Linux свой текстовый редактор TEA. Портировать — немного не то, потому как TEA написан в Delphi, а переводить его вкупе со всеми сторонними библиотеками в Kylix — задача для безумца, который сидит в мрачном сыром подвале и кроме как программированием ничем другим не занимается. Итак, я решил писать TEA заново, уже на языке Cи, основываясь на наборе виджетов GTK+. Си я знаю более-менее, зато с GTK столкнулся впервые. В доке к GTK нет примеров работы со столь важным для меня виджетом текстового редактора. Однако существует много редакторов, основанных на GTK :-).

Недолго думая, я вытащил из Bluefish (популярный редактор HTML-кода) функции работы с этим виджетом редактора — вернее, меня интересовал его текстовый буфер. Там хитро придумано — чтобы получить доступ к тексту, используется концепция итераторов. Не буду об этом рассказывать, скажу лишь, что это не знакомые нам по Delphi свойства text и т.д., а штука намного более комплексная. Итак, мне нужен был реально работающий код — и я его получил. Разумеется, сохранив при этом копирайты на взятый мною код. Более того, я модифицировал его. И это тоже легально, ибо мой продукт будет распространяться под лицензией GPL.

Многих беспокоит очень важный вопрос. Если вы сделали программу под GPL для внутренних нужд некой компании, должны ли вы открыть исходный код для всего мира? Ответ — нет, не должны. Допустим, вы на основе других GPL-проектов разработали для банка систему безопасности. Вы продаете ее банку. Банк НЕ распространяет эту систему безопасности. Он просто ее использует. То есть, внутреннему пользователю вы можете и не открывать код. Однако если вы захотите эту программу продавать «тиражно», то код придется открыть.

GPL часто сравнивают с вирусом. Действительно, это очень цепкая лицензия. Вдобавок, несовместимая с другими. Хотите использовать некую библиотеку в своем GPL-проекте? Это должна быть тоже GPL-библиотека. Разрабатываете софт на базе GPL-продукта? Придется лицензировать свой софт под GPL. Одним словом, как взяли, так и отдайте.

Я специально не касаюсь модной нынче темы критики GPL со стороны компании SCO. Недавно Линус Торвальдс публично заявил, что GPL отнюдь не пустая бумажка, состряпанная «комми» (отсылка к прозвучавшему из одного источника мнению, что GPL — изобретение коммунистов) и хиппи (университет Беркли) — а напротив, серьезный документ, составленный с соблюдением всех правовых норм, и в частности соответствующий законодательству США.

Несостоятельность лицензии и вообще чего-либо надо доказать. Я могу объявить, что Земля плоская, стоит на трех слонах, кои зиждутся на чудо-рыбе ките, плавающем в эфирном океане. Но пока я не докажу этого, слова мои останутся просто словами. А лицензия GPL работает достаточно давно, и признана многими крупнейшими компаниями — той же IBM, например. Не раз и не два компании, нарушавшие GPL, платили потом по громадным искам...

Итак, история показывает, что GPL работает, и работает эффективно. Количество софта, лицензированного GPL, исчисляется десятками тысяч наименований. Вспомним хотя бы 60 тысяч проектов на sourceforge.net. Я не говорю, что все они GPL, но большинство их — да. А уж сколько вне sourceforge... У придирчивого и саркастично настроенного читателя может возникнуть вопрос — а как обстоят дела у этого софта с качеством? Отвечу встречным вопросом — а как с качеством у не-GPL софта? Вот так и у GPL. При этом обычно GPL-продукты развиваются быстрее, потому что над ними коллективно работает много народу. Каждый может внести свою лепту... Я, вы, кто угодно — взять программу, внести свое, новое. Не просить разработчика — ах, вот бы такую новую фишку внести. Не будь потребителем, сделай сам!

А ежели сам не умеешь — тогда, действительно, можно написать письмо разработчику. В отличие от некоторых служб технической поддержки, разработчики GPL-софта общаются с вами как живые люди, вникающие в вашу проблему, а не предлагают сначала заполнить и отослать им здоровенную форму с графами имен вашей мамы, бабушки и троюродной сестры, а также средним размером своп-файла, деленным на размер вашей обуви, помноженный на длину шнурков. Меня просто бесят службы технической поддержки. Они предполагают у вас тупость по умолчанию. Вроде как в 3D-шутерах — сначала предлагается пройти тренировку, где вас учат ходить, ползать, прыгать. Если я задаю техподдержке вопрос, это ведь еще не значит, что я чайник со сковородкой — так зачем мне заполнять какую-то трижды проклятую форму?!

Я расскажу, зачем. Проприетарность. Вот она. Говорят: «Вы не умеете без нас ходить и прыгать. Вы ничего не знаете. Мы знаем вместо вас. Это наша работа — знать все вместо вас. Вы имеете право только потреблять то, что мы даем вам. Вы не имеете прав модифицировать наше программное обеспечение. Вы не можете передавать его другому физическому лицу. Если вы приобрели копию нашего текстового редактора, и ваша жена попросила эту копию у вас — вы не имеете право дать копию нашей программы своей жене. Вы не имеете права... Вы не имеете права...»

GPL говорит: у вас есть право дать редактор жене. У вас есть право внести в редактор любые изменения. Выложить его на сайте. Продавать на болванках. Устанавливать сколько угодно раз на компьютерах компании, университета или компьютерного клуба. Это Free Software — свободное ПО, и GPL — закон, по которому оно функционирует.

Подробности смотрите на http://www.gnu.orgи русском сайте GNU http://gnu.ru, который НЕ является зеркалом основного ресурса.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov