Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Конференция «Технологии управления данными 2018»
СУБД, платформы, инструменты, реальные проекты.
29 ноября 2018 г.

Современное состояние свободно распространяемого программного обеспечения

С.Кузнецов, Центр Информационных Технологий


В докладе описывается текущее состояние бесплатно (свободно) распространяемого программного обеспечения. Эта тема является практически бесконечной, и любой рассказ о ней объективно носит абсолютно субъективный характер. С другой стороны, будучи очевидно важным для всего человечества, свободное программное обеспечение особенно важно для России и других государств, образовавшихся на осколках коммунизма. Слишком часто у нас не хватает денег, чтобы приобрести действительно нужное программное обеспечение. Нужно понять, что очень часто это не должно порождать неразрешимые проблемы. Да, мы не очень богаты (увы!), но мы и не слишком глупы, чтобы не справиться с освоением программных продуктов со статусом public domain.
Мы обсудим малую толику доступных сегодня свободно распространяемых программных продуктов, исходя главным образом из личных симпатий, имеющегося личного опыта, а также опираясь на отзывы друзей и знакомых. Доклад основывается на свободно распространяемых материалах и может быть целиком или частично перепечатан, скопирован или распространен любым другим способом.

1. Фонд свободного программного обеспечения и проект GNU

Фонд свободного программного обеспечения (FSF - Free Software Foundation) представляет собой очень интересное и во многих отношениях исключительное явление в современном мире программирования. Многим отечественным программистам приходилось иметь дело с программами из FSF (особенно хорошо известна система программирования GCC), однако недостаточное количество публикаций на русском языке затрудняет понимание идеологии и целей FSF, а также усложняет оценку имеющегося задела. Одной из целей доклада является хотя бы частичное устранение этого пробела.
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 развивается плановым образом, но FSF принимает для свободного распространения и программы, разработанные фирмами и частными лицами по собственной инициативе. Кроме того, FSF занимается производством и продажей лент со свободным программным обеспечением, подготовкой, публикацией и распространением руководств по различным компонентам программного обеспечения GNU, а также поддерживает и распространяет справочник услуг - список фирм и частных лиц, которые оказывают платные услуги пользователям программ и систем GNU.
Финансовой основой FSF является продажа магнитных лент и компактных дисков с текстами программ GNU, документации в электронной и бумажной форме, а также спонсорство коммерческих фирм и частных лиц.
В настоящее время готовы почти все компоненты программного обеспечения проекта GNU. FSF распространяет много программ, часть которых написана непосредственно программистами FSF, а часть передана в FSF для свободного распространения другими организациями и лицами. Коротко охарактеризуем наиболее интересные программные продукты, распространяемые FSF [3].
Emacs - расширяемый, настраиваемый на разные типы терминалов и потребности пользователей редактор. Расширяемость редактора основана на использовании встроенного в редактор интерпретатора языка Лисп (диалекта Common Lisp). Одновременно с исходными текстами редактора распространяются руководство по использованию Emacs и справочное руководство по программированию на языке Лисп в среде Emacs. Основной версией Emacs, поставляемой и поддерживаемой в настоящее время FSF, является Emacs V.19. Эта версия редактора сохраняет свойства всех предыдущих версий, включая возможность использования на самых простых алфавитно-цифровых терминалах. Однако Emacs V.19 очень хорошо работает на графических X- терминалах. На самом деле, только после перехода к использованию Emacs на X-терминалах можно по-настоящему оценить возможности этого редактора.
Некоторое время тому назад существовала непростая проблема локализации Emacs применительно к особенностям национального языка. Скорее всего, найдутся люди, которые помнят, сколько хлопот принесла работа по первой русификации Emacs. Несколько лет назад внезапно активизировавшиеся японцы создали собственную версию редактора Emacs под названием MULE (MULtilingual Enhancement to GNU Emacs - не подумайте чего плохого). В этой версии используется расширенная многобайтовая кодировка символов, позволяющая в одном сеансе редактирования употреблять символы разных алфавитов (в частности, японский, китайский, арабский, русский, греческий и т.д.). В настоящее время MULE интегрирован в Emacs, и серьезные проблемы локализации отсутствуют. Видимо, сегодня Emacs является лучшим текстовым процессором, работающим в среде Unix (в действительности, эта программа представляет собой гораздо большее, чем простой текстовый процессор).
Bison - замена стандартного генератора синтаксических анализаторов Yacc с некоторыми расширениями. Руководство также распространяется. Люди, которые использовали Bison при разработке компиляторов, очень хвалят программу. В последнее время FSF ослабил требования к использованию Bison, позволив легально его применять при разработке коммерческих продуктов.
Имеются две реализации упрощенного диалекта языка Лисп - Scheme: одна из MIT (написана на языке Си), вторая из университета г. Yale (написана на Scheme).
Поставляется набор утилит texiinfo, генерирующих печатные и гипертекстовые документы, в виде которых в основном поставляется документация проекта GNU.
GCC - переносимый оптимизирующий компилятор. Начиная со второй версии компилятор поддерживает языки Си (ANSI C, традиционный Си, расширенный диалект GNU C), Си++ и Objective C. Среди оптимизаций, выполняемых GCC, содержится автоматическое распределение регистров, выявление общих подвыражений, вынесение инвариантных выражений из тела цикла и т.д. Компилятор содержит средства полуавтоматического построения генераторов кода для новых компьютеров.
Доступен целый ряд библиотек функций для языка Си и библиотек классов для Си++ и Objective C.
Отладчик GDB может быть использован для отладки программ, написанных на языках Си, Си++ и Фортран.
Для работы с версиями программ в больших программных проектах поддерживаются системы RCS (Revision Control System) и CVS (Concurrent Version System).
Распространяется громадное количество программ X11, реализация MIT X-Windows (версия 11, релиз 6). Объем доклада не позволяет остановиться на этом более подробно.
В основном все программы, распространяемые FSF, рассчитаны на работу в среде Unix и используются с различными вариантами этой системы, но имеются версии некоторых программ для работы с ОС VMS, Windows NT и даже MS-DOS.
Одним из особенно важным, но еще незавершенным проектом FSF является проект Hurd. Это свободная реализация UNIX-совместимой операционной системы, основанная на свободно распространяемом варианте микроядра Mach, разработанного в университете Карнеги-Меллон. В соответствии с технологией Mach разработан ряд серверов, воспроизводящих базовые функции ядра ОС UNIX. Интерфейс системных вызовов UNIX воспроизводится с помощью специально разработанной библиотеки Си-функций. Серверы Hurd и библиотечные функции первоначально были разработаны на платформе PC 396, но легко переносятся на другие аппаратные платформы. Основной текущей проблемой является массовый перенос Mach на различные платформы.
Среди программ GNU находится большое число других продуктов, которые заслуживают внимания, но мы не будем обсуждать их в этом докладе.

2. Другие наиболее распространенные продукты Public Domain

Наверное, самым популярным на сегодня программным продуктом Public Domain является UNIX- совместимая ОС Linux, созданная молодым финским программистом Линусом Торвалдсом и поддерживаемая с помощью Internet тысячами энтузиастов. ОС Linux основана на традиционных принципах построения ядра ОС UNIX, что не помешало энтузиастам перенести ее на несколько популярных аппаратных платформ.
Linux является одной из наиболее подходящих операционных систем для домашнего компьютера, если человек не собирается использовать его только для написания текстов и лазания в Internet. По отзывам практиков, программа, аккуратно написанная в среде Linux безо всяких проблем переносится в среду любого другого варианта ОС UNIX (если, конечно, этот вариант соответствует стандартам). С другой стороны, известны примеры промышленного использования Linux, в частности, в телекоммуникационных системах.
Альтернативой Linux является ОС Free BSD, разработанная и распространяемая университетом Беркли. Это одна из ветвей BSD UNIX, проекта, в течение многих лет разрабатываемого в университете Беркли. Free BSD - это эффективная и экономичная операционная система, единственным недостатком которой можно считать ее абсолютную ориентацию на Intel- платформы. Я знаю многих людей, которые предпочитают использовать дома Free BSD, а не Linux.
В том же университете Беркли разработан замечательный пакет Tcl/Tk - средство для разработки графических пользовательских интерфейсов. Это свободно распространяемый продукт, прекрасно документированный и очень легко осваиваемый. Известны многие реальные проекты, выполненные с использованием Tcl/Tk, например, основанный на графическом интерфейсе пакет администрирования Linux.
Как говорилось в начале доклада, тема свободно распространяемого программного обеспечения поистине неисчерпаема. По этому поводу можно говорить бесконечно. Но лучше следить за новыми программами самостоятельно.

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

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...