|
Free Software Foundation *http://www.fsf.org/ Идеология свободного программного обеспечения и проект GNU: текущее состояние и ближайшие задачиС.Д.Кузнецов Фонд свободного программного обеспечения (FSF - Free Software Foundation) представляет собой очень интересное и во многих отношениях исключительное явление в современном мире программирования. Многим отечественным программистам приходилось иметь дело с программами из FSF (особенно хорошо известна система программирования GCC), однако отсутствие публикаций на русском языке затрудняет понимание идеологии и целей FSF, а также не дает возможности оценить имеющийся задел. Задача этой короткой статьи - хотя бы частично устранить этот пробел. Статья целиком опирается на материалы FSF и поэтому, в соответствии с общими принципами этой организации, может свободно перепечатываться, копироваться или распространяться каким-либо другим способом (с сохранением этого замечания). 1. Идеология FSF и общие цели проекта GNUFSF - это программистская организация, основанная и возглавляемая Ричардом Столлманом (Richard Stallman). В самой общей постановке задачей FSF является устранение ограничений по копированию, распространению, изучению и модификации программ для компьютеров. Для достижения этой общей задачи FSF стимулирует разработку и использование свободного программного обеспечения, ориентированного на широкий класс применений.В своем "Манифесте GNU" [1], написанном еще в 1985 г., Р. Столлман в качестве основной идеи, приведшей к возникновению FSF и проекта GNU, выдвигает свое неприятие права собственности на программы. Особенности взаимоотношений в сообществе программистов часто ставят людей перед выбором следования естественному чувству дружбы и взаимопомощи или подчинения препятствующего этому закону о собственности. При использовании свободного программного обеспечения необходимость такого обременительного выбора исчезает. Создание интегрированной свободной программной системы позволяет избежать дублирующей работы программистов (которая часто требуется только по причине наличия программ в чьей-либо собственности). Свободное распространение исходных текстов программ облегчает их сопровождение и приспособление к нуждам конкретного пользователя (не требуется прибегать к услугам только компаний - владельцев лицензий на исходные тексты). Появляется дополнительная и очень важная возможность использования хорошего программного обеспечения в учебных целях. Как утверждает Р. Столлман, при переходе к свободному программному обеспечению программисты не вымрут от голода (хотя, видимо, будут зарабатывать несколько меньше). Ограничение на копирование программ - это не единственный способ зарабатывать деньги. Основная идея Столлмана состоит в том, что нужно продавать не программы, а труд программиста. В частности, источником дохода может быть сопровождение программных систем или их настройка для использования на новых компьютерах и/или в новых условиях, преподавание и т.д. "Манифест" Столлмана написан очень эмоционально и местами слишком утопичен. Тем не менее, как кажется, идеи свободного программного обеспечения исторически близки традиционным (за исключением самых последних лет) отношениям в среде советских программистов. Возможно, именно линия FSF - наиболее естественный путь к глубокой интеграции отечественного и мирового сообществ программистов. Более конкретно, FSF ведет разработку программ в рамках проекта GNU (аббревиатура GNU раскрывается рекурсивно - GNU's Not Unix). Целью проекта GNU является создание полной интегрированной программной системы, средства которой совместимы с возможностями среды ОС Unix (как правило, возможности программ GNU шире возможностей аналогов среды Unix). Программное обеспечение FSF является "свободным" в двух смыслах. Во-первых, любую программу можно свободно копировать и передавать кому угодно. Во-вторых, наличие исходных текстов программ обеспечивает возможность свободного изучения программ, их улучшения и распространения доработанных вариантов. Подобно тому, как права обычных компаний, производящих программное обеспечение, охраняются их знаком авторских прав (copyright), "свобода" программных систем FSF защищается "copyleft" - комбинацией copyright и присутствующим во всех текстах FSF документом с заголовком "GNU General Public License" [2]. В этом документе говорится о правах, которыми располагает любой текущий владелец данного текста, и о невозможности лишения этих прав у любого другого субъекта. Основная деятельность FSF состоит в разработке новых составляющих свободного программного обеспечения в рамках проекта GNU. Большей частью проект GNU развивается плановым образом (см., в частности, разд. 3 этой статьи), но FSF принимает для свободного распространения и программы, разработанные фирмами и частными лицами по собственной инициативе. Кроме того, FSF занимается производством и продажей лент со свободным программным обеспечением, подготовкой, публикацией и распространением руководств по различным компонентам программного обеспечения GNU, а также поддерживает и распространяет справочник услуг - список фирм и частных лиц, которые оказывают платные услуги пользователям программ и систем GNU. Финансовой основой FSF является продажа лент и документации, а также спонсорство коммерческих фирм и частных лиц. 2. Доступное программное обеспечение GNUВ настоящее время готовы далеко не все компоненты программного обеспечения проекта GNU. Тем не менее, FSF распространяет много программ, часть которых написана непосредственно программистами FSF, а часть передана в FSF для свободного распространения другими организациями и лицами. Коротко перечислим программные продукты, распространяемые FSF сейчас [3].Emacs - расширяемый, настраиваемый на разные типы терминалов и потребности пользователей редактор. Расширяемость редактора основана на использовании встроенного в редактор интерпретатора языка Лисп (диалекта Common Lisp). Одновременно с исходными текстами редактора распространяются руководства по использованию Emacs и справочное руководство по программированию на языке Лисп в среде Emacs. Bison - замена стандартного генератора синтаксических анализаторов Yacc с некоторыми расширениями. Руководство также распространяется. Две реализации упрощенного диалекта языка Лисп - Scheme: одна из MIT (написана на языке Си), вторая из университета г. Yale (написана на Scheme). Утилита texi2roff, предназначенная для преобразования текстовых файлов в формате TeX в текстовые файлы стандартного для ОС Unix формата [nt]roff (распространяемая FSF на машинных носителях документация оформлена в формате TeX). Утилиты упаковки/распаковки текстовых файлов. Шахматная программа GNU. GNU CC - переносимый оптимизирующий компилятор языка Си. Полностью поддерживает Си стандарта ANSI. Содержит средства полуавтоматического построения генераторов кода для новых компьютеров. Распространяется вместе с руководством. Однопроходный переносимый ассемблер GAS, почти вдвое пре- вышающий по скорости стандартный ассемблер ОС Unix. Свободные варианты утилит для работы с объектными файла- ми: ar, ld, nm, size, gprof, strip и ranlib. Распространяется также новая утилита динамической загрузки dld. GNU make включает почти все средства утилит make из BSD, System V и стандарта POSIX, а также содержит ряд расширений. Распространяется вместе с руководством. Отладчик GDB может быть использован для отладки программ, написанных на языках Си, Си++ и Фортран. Распространяется вместе с руководством. BASH (Bourne Again SHell) - GNU Shell совместим со средствами стандартной команды sh ОС Unix и включает ряд расширений, почерпнутых из других вариантов Shell. GAWK - версия GNU стандартной утилиты AWK ОС Unix. flex - замена GNU стандартного генератора лексических анализаторов lex. flex позволяет получать более эффективные по сравнению с lex сканеры. GNU tar - расширенный вариант стандартной архивной утили- ты tar. Часть файлов из BSD 4.3-tahoe, не содержащих исходные тексты AT&T и переданных для свободного распространения уни- верситетом Беркли. В этих файлах находятся, в частности, пол- ные исходные тексты некоторых утилит, игр, библиотечных подп- рограмм и т.д. Системы, поддерживающие работу с версиями программ в больших программных проектах, RCS (Revision Control System) и CVS (Concurrent Version System). Более быстрые по сравнению со стандартными свободные ва- рианты утилит grep и diff. Почти полностью совместимый с Postscript графический язык Ghostscript. Интерактивная программа для рисования математических вы- ражений и данных gnuplot. Набор средств для превращения компилятора GCC в компиля- тор языка Си++, включая развитые библиотеки классов. Громадное количество программ X11, реализация MIT X-Windows (версия 11, релиз 4). Объем статьи не позволяет остановиться на этом более подробно. В основном все программы, распространяемые FSF, расчитаны на работу в среде Unix и уже используются с различными вариантами этой системы, но имеются версии некоторых программ для работы с ОС VMS и даже MS-DOS. 3. Ближайшие задачи проекта GNUСписок работ, которые планируется выполнить в рамках проекта GNU, весьма обширен [4]. Приведем лишь краткий обзор основных направлений.3.1. ДокументацияТребуется подготовить ряд руководств по уже готовым или близким к завершению программам: справочное руководство по языку Си, описание GCC с включением руководства по определению целевых машин, руководство по программированию прикладных систем в среде X-Windows и т.д.3.2. Проекты, связанные с разработкой свободного ядра UnixВ FSF ведутся работы по созданию ядра Unix на базе свободного микроядра Mach. К числу ближайших задач относится реализация сетевых протоколов TCP/IP и новой файловой системы (имеется надежда воспользоваться некоторыми готовыми программами, которые, как ожидается, будут объявлены свободными). Имеются и другие задачи, в том числе разработка удаленного отладчика ядра ОС.3.3. Развитие свободной среды UnixНеобходима реализация некоторых утилит (sdiff, mailx, join и т.д.). Требуется развитие ряда библиотек. В числе задач стоит разработка средств дружественного пользователю терминального интерфейса.3.4. Расширения существующего программного обеспечения GNUВ основном, в доработках нуждаются Emacs, GCC и GDB.В отношении Emacs требуются два направления доработок: расширение средств Emacs для возможности использования этого редактора в качестве издательской системы и полная интернационализация Emacs с обеспечением возможности использования любого национального алфавита. GCC необходимо доработать, чтобы устанить накопившиеся замечания и реализовать имеющиеся предложения (список замечаний и предложений распространяется вместе с GCC). GDB нуждается в доработках по части внедрения в отладчик интерпретатора языка Си; нужны также некоторые доделки для возможности использования GDB при отладке программ, написанных на языках, отличных от Си. 3.5. Новые компиляторыТребуется реализация компиляторов ряда языков программирования (Алгол, Алгол-68, ПЛ/1, Ада и т.д.) с выходом на кодогенератор GCC. (Такие работы для языков Фортран, Паскаль и Модула-2 уже ведутся.)3.5. Масса других проектовВ текущем списке ближайших задач проекта GNU находится множество других разнообразных работ. Упомянем желание иметь свободные аналоги систем Page Maker, Ventura Pablisher, dbase2 или dbase3 и т.д. Требуется ряд программ для X-Windows. И т.д. и т.п.4. Как получить более подробную информацию и/или программы GNUДля связи с FSF в современных отечественных условиях лучше всего использовать электронную почту. Ответственным от FSF по связям с людьми, желающими присоединиться к проекту GNU, является Вальтер Поксон (Walter Poxon). Его e-mail адрес: wdp@gnu.ai.mit.edu. У него же можно получить информацию о правилах получения от FSF лент с программным обеспечением GNU. К сожалению, этот естественный путь не очень подходит для текущей советской действительности (плата за ленты хоть и символическая, но все-таки в твердой валюте).В нашей стране на самом деле имеются все эти ленты. Любой их держатель в соответствии с правилами игры FSF обязан содействовать их дальнейшему распространению. К сожалению, это достаточно большая техническая работа. Советская ассоциация пользователей ОС UNIX (SUUG) планирует взять на себя, как только позволят технические условия, бесплатное распространение свободного программного обеспечения для своих членов и платное копирование лент для всех желающих (это дело ближайших месяцев). Все члены SUUG получат соответствующую информацию, текущие справки можно получить по адресу SUUG@USSR.eu.net через e-mail или по обычному адресу SUUG: 125502, Москва, ул. Лавочкина, д. 19. Литература.1. Richard M. Stallman. The GNU Manifesto.2. GNU General Public License // Free Software Foundation, 1989. 3. GNU's Bulletin // Free Software Foundation, 1991. 4. GNU Task List (периодически обновляемый файл, доступный по e-mail; мы основывались на версии от 24 июля 1991 г.) |
|||||||||||||||||
With any suggestions or questions please feel free to contact us |