Free Software Foundation http://www.fsf.org/
Идеология свободного
программного обеспечения и проект
GNU: текущее состояние и ближайшие
задачи
С.Д.Кузнецов
1991
Фонд свободного программного
обеспечения (FSF - Free Software Foundation)
представляет собой очень
интересное и во многих отношениях
исключительное явление в
современном мире программирования.
Многим отечественным
программистам приходилось иметь
дело с программами из FSF (особенно
хорошо известна система
программирования GCC), однако
отсутствие публикаций на русском
языке затрудняет понимание
идеологии и целей FSF, а также не дает
возможности оценить имеющийся
задел. Задача этой короткой статьи -
хотя бы частично устранить этот
пробел. Статья целиком опирается на
материалы FSF и поэтому, в
соответствии с общими принципами
этой организации, может свободно
перепечатываться, копироваться или
распространяться каким-либо другим
способом (с сохранением этого
замечания).
1. Идеология FSF и общие цели
проекта GNU
FSF - это программистская
организация, основанная и
возглавляемая Ричардом Столлманом
(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.
Литература.
- Richard M. Stallman. The GNU Manifesto.
- GNU General Public License // Free Software Foundation,
1989.
- GNU's Bulletin // Free Software Foundation, 1991.
- GNU Task List (периодически
обновляемый файл, доступный по
e-mail; мы основывались на версии
от 24 июля 1991 г.)
|