Идеология свободного программного обеспечения и проект GNU: текущее состояние и ближайшие задачи
Идеология свободного программного обеспечения и проект GNU: текущее состояние и ближайшие задачи
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 г.)
содержание | 2 | деньги
Используются технологии
uCoz