Основная особенность программного обеспечения Linux — многообразие продуктов, решающих сходные задачи, особенно если дело касается области, в которой существует несколько подходов к их решению. Открытая модель разработки программ, позволяет любому выбрать самый подходящий для него инструмент и развивать именно его. Поэтому список проектов, так или иначе связанных с Linux, насчитывает десятки (или даже сотни) тысяч наименований.
Конечно же, работа с самой операционной системой не может быть самоцелью. Все усилия по изучению операционной системы Linux и основных утилит нужны для того, чтобы впоследствии наилучшим образом решать в этой операционной системе любые из своих прикладных задач, разрешимых при помощи компьютера. Для очень многих задач достаточно стандартных инструментов Linux и текстового редактора, однако есть случаи, в которых всё-таки необходима специальная прикладная программа, именно для этого предназначенная, или в которых специальная программа удобнее комбинации стандартных утилит.
Этот раздел посвящён краткому обзору прикладных программ для Linux, специально предназначенных для решения самых разных пользовательских задач. Вошедший сюда материал нужно воспринимать только как пример, демонстрацию того, что и как можно делать в Linux, но вовсе не исчерпывающий список. В отличие от основных принципов устройства системы или стандартных утилит, которые не изменяются (почти) в течение десятилетий, прикладное программное обеспечение — это область, где всё меняется очень быстро. Технологии, сегодня считающиеся самыми передовыми, уже через несколько месяцев могут устареть. Вместе с ними могут устареть использующие их программы, а другие программы могут, наоборот, перейти в разряд наиболее современных и развитых. Поэтому перечисленные здесь прикладные программы — это не безусловная рекомендация, а довольно случайная выборка, отражающая текущее состояние дел в разработке приложений для Linux. Самый лучший способ найти и выбрать самые подходящие прикладные программы для своих задач — посоветоваться с людьми, которые решают подобные задачи в Linux в настоящее время — и попробовать.
Нужно отдавать себе отчёт в том, что прикладные программы для Linux не являются частью самой Linux, поэтому любой из названных ниже программ может не оказаться в каком-то из конкретных дистрибутивов Linux. Но почти наверняка в любом дистрибутиве найдётся не меньше одной или нескольких программ для решения каждой из перечисленных ниже прикладных задач. Чтобы не загромождать изложение, мы остановимся лишь на самых распространённых программных продуктах, входящих во многие дистрибутивы Linux.
Первое, что стоит сделать, начав постоянно использовать Linux — организовать для себя удобное «рабочее место»: подобрать и настроить программы, с которыми приходится работать каждый день. Рабочее место в Linux может выглядеть очень по-разному. Можно вовсе обойтись без графического интерфейса, используя только текстовый терминал для управления системой. Такой выбор будет правильным, если рабочее место находится на сервере, подключённом к сети Internet, доступ к которому осуществляется только при помощи ssh
или аналогичных клиентов удалённого доступа. Впрочем, некоторые пользователи предпочитают работать в текстовом интерфейсе, возможно, по эргономическим причинам — ничто не отвлекает?
Если графический интерфейс используется, то и в этом случае есть огромный выбор, как его организовать. Прежде всего, решить: нужно ли устраивать «рабочий стол» (для этого подходят GNOME, KDE, XFCE) или можно обойтись возможностями одного из развитых диспетчеров окон (Enlightenment, FVWM2, WindowMaker и многие другие). Помимо функциональности, в выборе графической среды решающее значение могут сыграть и эстетические критерии. Дальше всех в этом направлении продвинулась среда Enlightenment, работа с которой в некоторых вариантах настройки количеством украшений и эффектов напоминает участие в компьютерной игре (скорее всего, сетевой).
Многие пользователи привыкли оперировать с файлами и каталогами как с наглядными штучными объектами (папками и документами), они могут выбрать для себя программу, которая позволяет наглядно и поштучно работать с объектами файловой системы — диспетчер файлов (file manager). Поскольку представление файлов и каталогов как папок и документов нужно в первую очередь в рамках метафоры рабочего стола, то и диспетчеры файлов для Linux разрабатываются прежде всего как приложения той или иной среды рабочего стола. В частности, и в KDE, и в GNOME есть свои диспетчеры файлов — konquеror
и nautilus
соответственно, которые по совместительству служат www-браузерами. Такое совмещение функций вполне логично, поскольку в среде рабочего стола нужно представлять доступные локальные и удалённые ресурсы как единое пространство, наполненное объектами, которыми можно манипулировать, можно «открывать», т. е. запускать соответствующее приложение для просмотра и/или редактирования.
Для многих пользователей наиболее удобный способ работы с файловой системой — «классический» двухпанельный диспетчер файлов, работающий в текстовом режиме (в терминале) — Midnight Commander (название утилиты — mc
)1. Его функциональность также шире просто операций с файлами — он позволяет открывать файлы для просмотра и редактирования, вызывать вспомогательные программы для работы с архивами (и даже «заходить» в архивы, как в каталоги), передавать данные по сети и т. п. Midnight Commander имеет также неплохой встроенный текстовый редактор, опять-таки «классического» стиля.
Далеко не всё, что нужно делать в Linux, в среде mc
так же удобно, как и в полноценной командной строке. Кроме того, при работе с графическими файлами сильно не хватает представления этих файлов в виде миниатюр (thumbnails), чтобы выбирать среди них по содержимому, а не только по имени. Такими возможностями обладают многочисленные графические диспетчеры файлов; помимо тех, что включены в среды KDE и GNOMe, есть множество независимых: dfm (похожий на диспетчер файлов OS/2), emelFM2, EZFM и X Northern Captain (двухпанельные, причём автор последнего — наш человек из Дубны), gentoo и worker (двухпанельные, в стиле диспетчера файлов DirectoryOpus из AmigaOS), FSV и XCruiser (трёхмерные! причём последний похож скорее на космический симулятор). Среди них встречаются и ориентированные специально на просмотр изображений, такие как GQView, endeavour, gview, qiv, xzgv и некоторые другие, — с возможностями слайд-шоу, автоматического изменения размера, показа картинки на полный экран и т. п.
Даже для такой на первый взгляд тривиальной функции, как эмуляция терминала для X Window System, существует целый круг программ. Самая стандартная из них поставляется вместе с XOrg — xterm
. Вариант xterm
, поддерживающий отображение шрифтов в кодировке UNICODE, вызывается командой uxterm
. Однако каждое приложение, организующее среду рабочего стола, включает собственный эмулятор терминала, внешний вид и поведение которого настраивается централизованно вместе со всеми остальными приложениями рабочего стола. Есть и другие эмуляторы терминала, не связанные с конкретным рабочим столом, к таким относится 9term
, повторяющий возможности «окна» системы Plan9, mlterm
, имеющий многоязыковую поддержку, rxvt
— очень нетребовательный к ресурсам эмулятор терминала, или его потомки, наподобие aterm
.
Большое количество терминальных окон на рабочем столе может образоваться, даже если раскладывать их по разным виртуальным экранам. Некоторые версии xterm
(например, konsole
), позволяют открывать окна «стопками», переключаясь между ними с помощью «закладок», как в записной книжке.
WWW-браузер — программа для просмотра гипертекста, доступного через Internet — на сегодня чуть ли не самое важное приложение для персонального компьютера. Сегодняшний www-браузер должен «уметь» гораздо больше, чем просто отображать страницы HTML и переходить по гиперссылкам. Фактически, на него ложится задача работы c данными Internet во всём их многообразии, сюда входит и поддержка постоянно развивающихся стандартов, и обеспечение безопасности, и многое другое.
В Linux есть довольно большой выбор www-браузеров, однако первым действительно современным свободным приложением для работы с Internet стала Mozilla, а затем её потомки, которые сегодня вполне успешно конкурируют с аналогичными коммерческими программами. Mozilla — это целый пакет приложений для работы с Интернетом: мощный, насыщенный функциями коммуникационный центр для персонального компьютера. В состав пакета входит браузер, программа для работы с электронной почтой и редактор www-страниц. История Mozilla началась в 1998 году, когда фирма Netscape опубликовала исходные тексты своего браузера Netscape Navigator. Одно из важных свойств пакета Mozilla — его принципиальная расширяемость. В Mozilla реализован язык XUL на основе XML, при помощи которого очень легко разрабатывать дополнительные компоненты Mozilla, ориентированные на выполнение специальных функций. Однако, на сегодняшний день пакет Mozilla стал уже историей, став основой для многий производных от него проектов.
Нынешний потомок Mozilla, наиболее близкий к нему по функциональности называется SeaMonkey. Если вы предпочитаете решения «всё в одном», то SeaMonkey — это то, что вам нужно.
Более современен Firefox, разрабатываемый командой Mozilla на основе исходных кодов, соответствующих только www-браузеру. Остальная часть Firefox написана полностью на XUL, поэтому разработка этой молодой программы идёт существенно бодрее и проще, её настройка считается самой гибкой среди www-браузеров, а главное, любой желающий может написать на высокоуровневых языках программирования XUL/JavaScript и опубликовать свой модуль расширения (т. н. plugin; на сегодня таких модулей известно более полутораста).
О www-браузерах, разработанных специально для той или иной среды рабочего стола, уже шла речь выше (они превосходно справляются с ролью файловых диспетчеров). Важная разновидность www-браузеров — текстовые браузеры, т. е. те, которые могут быть запущены в любом текстовом терминале Linux. Самый старый и известный из них, один из прототипов современных www-браузеров — Lynx. Он не имеет возможности отображать графическую информацию, но отлично поддерживает HTML, формы и таблицы. Современные версии поддерживают также соединения, защищённые при помощи SSL. Links — это текстовый браузер, на первый взгляд очень похожий на Lynx, но все же несколько отличающийся от него:
Помимо возможности просмотра WWW-страниц часто выпадает необходимость их «скачивания», т. е. записи в файл. Это же относится и к ресурсам, доступным по протоколу FTP. Все описанные выше браузеры способны записывать HTTP- и FTP-ресурс в файл, но для удобной работы из командной строки они, как правило, непригодны. Кроме старой и весьма простой утилиты ftp
, имеются два её мощных расширения: lftp
и wget
. Обе утилиты поддерживают как FTP, так и HTTP, причём lftp
может работать, как и ftp
, в режиме «оболочки», а wget
предназначена именно для работы из командной строки. Если при получении файлов с какого-то сервера или группы серверов необходимо описывать множество исключений (чтобы не скачать лишнего), выполнять какие-то действия (например, заполнять формы или выполнять java-сценарии), можно воспользоваться более сложными программами pavuk
или httrack
.
Подобно тому, как Firefox возрождает WWW-ипостась Mozilla, Thunderbird повторяет — и расширяет — почтовую составляющую Mozilla. Большинство сказанного о Thunderbird на сегодня справедливо и для MozillaMail. Так же, как и в Firefox, в Thunderbird используется часть исходного кода Mozilla, которая работает с сетью (на этот раз — с отсылкой почты и доступом к почтовым ящикам), а интерфейс и архитектура приложения в целом — переделаны для того, чтобы избавиться от стародавних частей Netscape и облегчить дальнейшую разработку. Thunderbird (как и MozillaMail) обладает самым мощным на сегодняшний день встроенным антиспам-фильтром. Если непрошеная почта всё-таки попадает в ваш почтовый ящик, просто показывайте её Thunderbird со словами «это — спам!». Через некоторое время программа сама научится отличать непрошеную почту от полезной. Как и Firefox, Thunderbird легко расширять собственными модулями, написанными на высокоуровневых языках, и можно очень гибко настраивать.
Ещё один почтовый клиент, несколько уступающий Thunderbird по возможностям, но превосходящий его по быстродействию, называется Sylpheed. Интерфейс этой программы весьма похож на стандартную почтовую программу для Windows, Outlook Express, что может помочь избежать лишних хлопот при смене операционной системы. Автор этой программы, Хироюки Ямамото, человек аккуратный и пунктуальный, так что некоторый недостаток возможностей (эта программа умеет столько же, сколько и Outlook Express) компенсируется безотказной работой и гибкой системой интеграции с другими утилитами системы (антивирусом, антиспам-фильтром и т. п.). Кроме того, существует ветка Sylpheed, называемая Sylpheed-Claws, в которой проходят проверку все нововведения. Стабильная версия Sylpheed-Claws работает ничуть не хуже авторской Sylpheed, а возможностей у неё больше.
Поскольку управление электронной перепиской — одна из задач рабочего стола, в каждой среде рабочего стола есть свой собственный почтовый клиент. Почтовый клиент для KDE называется KMail, он поддерживает как локальную доставку почты, так и множество почтовых протоколов (POP3, IMAP, SMTP). Почтовый клиент для GNOME называется Evolution, он интегрирован с календарём, адресной книгой и претендует на функции индивидуальной «записной книжки».
Электронная переписка сама по себе не требует графического интерфейса, для чтения и написания электронных писем вполне достаточно возможностей терминала и текстового редактора. Среди текстовых почтовых клиентов для Linux наиболее известны Mutt и Pine, оба очень функциональны, поддерживают множество протоколов и форматов почтовых ящиков, хорошо настраиваются. Требовательным пользователям, которые хотят иметь возможность изменять внешний вид и способ работы почтового клиента, дополнять его сценариями и получать от почтовых служб всё, что те могут дать, рекомендуется Mutt. Тем же, кому главное — просто получать, читать и отправлять почту (со всеми полагающимися удобствами), стоит начать с Pine. Любители Emacs используют встроенный в него модуль GNUS, весьма богатый функциями.
Если компьютер подключён к Internet постоянно, бывает удобно пользоваться службами, передающими сообщения в реальном времени (instant messaging service). Таких служб довольно много, самая популярная из них — ICQ. Множественность объясняется тем, что в большинстве случаев этот сервис предоставляется централизованно, какой-нибудь крупной корпорацией. Во многих случаях серверы этих служб не доступны под свободной лицензией. Исключение в ряду «собственников» — служба Jabber, основанная на полностью открытом протоколе XMPP. Jabber позволяет любому сообществу создавать собственные сервера, управляемые собственными администраторами. Сам Jabber-сервер имеет возможность соединять своих клиентов не только с другими Jabber-серверами, но и со службами ICQ, MSN, Yahoo и AIM. В Linux есть несколько клиентских программ для обмена мгновенными сообщениями. Особняком стоят клиенты IRC (Internet Relay Chat), службы с более долгой историей и сложным протоколом (имеется в виду и сетевой протокол, и протокол работы пользователя в IRC).
Psi — удобный графический клиент сети быстрого обмена сообщениями Jabber (а значит, по всем протоколам, которые поддерживает выбранный Jabber-сервер). Psi поддерживает такие возможности Jabber, как одновременная работа с несколькими серверами, конференции, криптозащиту передаваемой информации (через SSL и GnuPG), работу через HTTP (S) прокси-сервер и т. д. SIM — многопротокольный клиент обмена мгновенными сообщениями. Поддерживаются протоколы ICQ, Jabber, MSN, AIM, YIM, а также LiveJournal. Кроме того, имеется множество модулей, реализующих дополнительные возможности. Есть вариант SIM, ориентированный на среду KDE. «Прицельно» на среду KDE ориентирован и другой мощный клиент, имеющий поддержку также и IRC, — Kopete. На среду Gnome ориентирован Gaim — наиболее мощный и наиболее гибко настраиваемый клиент. Имеет модули доступа почти ко всем мыслимым протоколам, позволяет писать сценарии на Perl и TCL. Для IRC есть и специальные клиенты: ChatZilla (как можно догадаться из названия, он «встроен» в Mozilla, но доступен и как дополнение к Firefox) или X-Chat — весьма мощная программа, ориентированная на «хитрости» IRC.
Не обойдён стороной и интерфейс текстовой консоли: CenterICQ, поддерживающий несколько протоколов (среди них Jabber и IRC); licq, обладающий как текстовым, так и графическим интерфейсами (следовательно, им можно пользоваться и находясь за рабочей станцией, и дистанционно); irssi, нацеленный на службы типа IRC (на сегодняшний день поддерживаются IRC, SILC и ICB), и т. д.
Важной частью современной рабочей станции являются так называемые офисные средства обработки информации. Под офисными приложениями обычно понимают стандартный набор из текстового процессора, средства работы с электронными таблицами, средства создания презентаций, средства для работы с базами данных. Все перечисленные офисные приложения входят в пакет OpenOffice.org — это свободный набор офисных программ, не уступающий по возможностям несвободному Microsoft Office, а кое в чём даже превосходящий его. Например, частность, которая может иметь очень важное значение: компонент OpenOffice.org OpenWriter позволяет экспортировать документы непосредственно в формат PDF. Интерфейс OpenOffice.org устроен принципиально так же, как и у аналогичных продуктов Microsoft, так что пользователю, привыкшему к Microsoft Office, не составит большого труда перейти к работе в OpenOffice.org. Кроме того, OpenOffice.org позволяет работать со всеми форматами файлов Microsoft Office.
История OpenOffice.org напоминает историю Mozilla: поначалу проект (под именем StarOffice) развивался закрыто, без доступа мирового программистского сообщества к исходным текстам. Однако в 2000-м году компания Sun Microsystems открыла исходные тексты программного продукта, образовав OpenOffice.org. Так же, как и в случае Netscape/Mozilla, пара StarOffice/OpenOffice.org использует двойное лицензирование, дающее право как свободного доступа к исходным текстам, так и использования их в закрытых коммерческих продуктах.
По возможностям OpenOffice.org остаётся самым развитым и полным офисным пакетом для Linux, однако есть и другие офисные средства. В частности, офисный пакет Koffice, ориентированный на среду KDE, в котором есть примерно тот же набор офисных приложений, что и в OpenOffice.org. Кроме того, есть отдельные офисные приложения, не составляющие пакетов — словарный процессор Abiword и электронные таблицы GNUmeric.
Чем проще пользовательская задача, тем больше программ под Linux её решают. В частности, манипуляция геометрическими фигурами с возможностью изменения их параметров (цвета, размера и т. п.), хранением набора фигур в файле и преобразованием получившегося изображения в растровый формат — довольно простая задача, требующая аккуратной реализации основных функций какой-нибудь высокоуровневой библиотеки (или двух — интерфейсной и графической). Неудивительно, что редакторы с подобными возможностями есть и для каждого рабочего стола, и независимо от них. Это утверждение относится и к ещё более простым программам работы с растровой графикой. Ниже описаны только существенно более сложные программы.
Векторной графикой называется способ работы с изображениями, при котором оно представлено в виде фигур, каждая из которых имеет собственное описание (тип, размеры, кривизну или иные параметры составных частей, их цвета, способ представления и т. п.). Некоторые графические устройства (например, распознающие формат PostScript) умеют сами интерпретировать описания фигур, для других необходимо заранее просчитать и сформировать картинку программным путём.
Современная полиграфия уже не мыслится в отрыве от компьютеров, все допечатные материалы обычно существуют в электронной форме, и именно электронные документы подаются на печатающие устройства для вывода. Причём для современной полиграфии de facto стандартом является формат PostScript. PostScript — это язык описания страницы, позволяющий представить любые полиграфические материалы в векторном формате (однако он допускает и включение растровых фрагментов). Файл в формате PostScript фактически представляет собой программу, описывающую, какие действия нужно произвести, чтобы получить требуемый вывод. Профессиональные печатающие устройства умеют самостоятельно интерпретировать документы на языке PostScript.
PDF (Portable Document Format, переносимый формат документов) создан на основе языка PostScript. Его основная задача — обеспечить одинаковый внешний вид документа в любой операционной системе. В PDF есть специальные возможности для публикации документов в Сети, в частности, поддержка гиперссылок, а некоторые возможности языка PostScript оттуда, наоборот, исключены.
Ghostscript — интерпретатор языка описания страниц PostScript и файлов в формате PDF (формат переносимых документов). Ghostscript преобразует PostScript во многие растровые форматы, подходящие для вывода данных на экран или на принтер, не поддерживающий PostScript. Обычно Ghostscript используется для просмотра файлов PostScript и для печати на принтерах, не поддерживающих язык PostScript, GhostScript используется множеством приложений для вывода данных на печать. Графический интерфейс для GhostScript предоставляет программа GhostView (команда gv
), она позволяет отображать документы в форматах PostScript и PDF в графической среде X Window System. Для различных манипуляций с файлами в формате PostScript предназначен пакет утилит командной строки psutils
, с их помощью можно выбрать, переупорядочивать, масштабировать страницы в PostScript-файлах, изменять параметры текста и делать многое другое.
Специально для просмотра PDF-файлов предназначена программа xpdf, она позволяет переходить по гиперссылкам в документе, просматривать структуру документа, производить поиск и поддерживает сглаживание шрифтов. На основе исходных текстов xpdf создана библиотека poppler, предназначенная для отрисовки PDF, которая стала основой других популярных приложений для просмотра PDF: kpdf (компонент графической среды KDE, отличается более богатыми интерфейсными возможностями) и Evince. Многие дистрибутивы Linux включают Acroread — версию известного приложения Adobe Acrobat для Linux, однако, в отличие от названных выше, оно является несвободным программным продуктом.
Отдельно стоит упомянуть редакторы диаграмм и блок-схем, которые часто смешивают с обычными редакторами векторной (плакатной) графики. Между тем, задачи у них разные: если для плакатной графики главное — построение «картинки», соответствующей задумке автора по внешнему виду, то в диаграмме автора более беспокоит логическое соответствие изображения проекту и его наглядность. Поэтому при построении диаграммы много внимания уделяется «стрелочкам» и прочим соединительным линиям, оптимальному размещению объектов на странице, типизации объектов и т. п.
Самая старая из подобных утилит, xfig, и по сей день активно используется, формат её диаграмм распознают многие средства работы с векторной графикой. Более мощной является утилита Dia, возможности которой продолжают расти (среди проектов: перевод диаграмм, представленных в нотации языка моделирования программных продуктов UML, непосредственно в текст программ на C++ и других языках). Аналогом Dia для KDE является встроенная в пакет KOffice утилита Kivio.
Что же касается собственно векторной (плакатной) графики, то и здесь есть из чего выбирать. Например, Inkscape — программа векторного рисования общего назначения. Она использует в качестве формата собственных файлов W3C SVG и обладает не только полным набором базовых функций работы с векторными объектами и слоями, но и рядом функций, аналогов которым нет и в крупных закрытых продуктах, таких как Adobe Illustrator или Corel DRAW. Кроме того, в ней реализован механизм расширений, благодаря которому к программе можно дописать новые функции на языках Perl, Python и Ruby. Непосредственный предок, от которого «отпочковался» Inkscape — программа Sodipodi, обладающая сходными возможностями и более продолжительной историей. Многообещающе выглядит проект Skencil, позволяющий редактировать некоторые виды PostScript-файлов. Среда KDE также имеет «свой» редактор векторной графики, Karbon14, входящий в состав семейства программа KOffice.
Растровая графика означает работу с изображением, представленным в виде матрицы точек («пикселей»). Это значит, что при сильном увеличении границы любого объекта будут выглядеть «лесенкой» из точек (в отличие от векторного представления, где увеличение повышает качество изображения). С другой стороны, растр — удобный для компьютерной обработки формат представления фотографий, сделанных от руки рисунков и прочих изображений, которые нельзя расчленить на отдельные фигуры.
В GNU/Linux есть развитые средства для редактирования растровой графики. Самым мощным из них является GIMP (GNU Image Manipulation Program). С её помощью пользователь сможет редактировать изображения, создавать логотипы и другие графические элементы, особенно полезные при создании Web-страниц. GIMP включает много инструментов и фильтров, аналогичных тем, которые можно найти в коммерческих графических редакторах, а также несколько возможностей, эксклюзивных для этой программы. GIMP предоставляет возможность работать с цветовыми каналами, уровнями изображения, накладывать эффекты, сглаживать шрифты и конвертировать изображения в разные форматы. В GIMP имеется собственный язык программирования сценариев (на основе Scheme), на котором можно создавать довольно замысловатые дополнения к основной программе. Такие дополнения можно писать также на Tiny-Fu (облегчённая версия Script-Fu), Python, Perl и C#. Недостаток GIMP — слабая поддержка цветовой модели CMYK, используемой в полиграфии, поэтому в электронной документации, редактировании изображений для www-страниц и прочих областях, не имеющих дела с бумагой, его применяют чаще.
Очень полезен набор утилит для обработки графики из командной строки — ImageMagick. В этот набор входят утилиты для отображения (display
), преобразования (convert
) изображений, захвата изображений с экрана (import
) и даже собственный интерпретируемый язык программирования, Magick Scripting Language. Для полуавтоматического перевода из растрового представления в векторное существует несколько специальных утилит, например, autotrace/autofig или potrace.
Для Linux создано несколько программных пакетов, работающих с пространственными представлением объектов.
Исходные тексты одного из самых мощных пакетов трёхмерного моделирования, пересчёта (рендеринга) и анимации — Blender — в 2002 году были открыты и весь проект полностью переведён под свободную лицензию. Авторы Blender пришли к выводу, что открытая разработка инструмента более эффективна и прибыльна для тех, кто этим инструментом (а не его продажей) зарабатывает. Для этого пришлось выкупить находящиеся в собственности спонсоров части проекта у хозяев за сумму сто тысяч евро. Искомую сумму предоставило сообщество пользователей Blender, уже тогда немалое: каждый внёс сколько смог, и менее чем за два месяца денег на счёте оказалось достаточно. С тех пор круг пользователей и возможности Blender продолжают постоянно расти.
Для выполнения задач, совмещаемых Blender, есть и отдельные программные средства. Например, популярный пакет трассировки лучей (трёхмерного проектирования и сценографии) POV-Ray, с помощью которого создаются проекты удивительной сложности и красоты (например, перевод картины Уильяма Марлоу «Каприччо» в трёхмерное представление — с тем только, чтобы из определённой точки повторить её). Многие графические редакторы имеют встроенные средства анимации, а иные (как, например, CinePaint, называвшийся ранее FilmGimp) специально разрабатываются для покадровой обработки видео.
Не стоит забывать, что популярный нынче стандарт OpenGL — открытый; он разрабатывался для UNIX-подобных систем и используется большим числом программ для Linux (в том числе и Blender). К сожалению, производители аппаратного обеспечения (видеокарт), как правило, скрывают не только устройство своих карт, но даже и способ их низкоуровнего использования. Поэтому в открытом доступе оказываются лишь готовые драйверы (без исходных текстов) к некоторым версиям ядра Linux и определённым сборкам XOrg. Отображение трёхмерных объектов с пересчётом на программном уровне пока работает существенно медленнее, хотя ничуть не хуже, поэтому используя OpenGL для игр и прочих программ, требующих действительно быстрой работы графической подсистемы, нужно всегда помнить о необходимости получить — возможно, несвободный — драйвер.
Программ-проигрывателей звуковых файлов в Linux не перечесть. Очевидный лидер по популярности среди них — XMMS (X Multi Media System). Помимо основной функции — играть музыку (поддерживается множество форматов) — в нём реализовано немало звуковых и визуальных эффектов благодаря большому количеству расширений. Интерфейс XMMS аналогичен интерфейсу не менее популярного в системах Windows приложения WinAMP (кстати, XMMS умеет использовать «шкурки» WinAMP2). Почти не уступает XMMS его «брат» BEEP, использующий графическую библиотеку GTK2, а не GTK. Есть и другие программы, которые ничуть не хуже этих играют музыку. Обычно каждая среда рабочего стола реализует собственный проигрыватель звуковых файлов, хотя бы для того, чтобы воспроизводить собственные звуковые эффекты, связанные с различными системными событиями, однако с их помощью прослушивать файлы может и пользователь.
Очевидно, что для прослушивания звука совсем не обязательно использовать графический интерфейс, поэтому в Linux есть большое количество терминальных утилит для воспроизведения звука. Некоторые из них, например, mpg123
, mpg321
, ogg123
или splay
, предназначены для проигрывания оцифрованного звука (возможно, в сжатых форматах), другие, такие как lazy
или cd-console
, управляют музыкальными лазерными дисками, есть утилиты, играющие музыку в нотном (midi) и других форматах — timidity
(она отличается тем, что преобразует ноты, записанные для инструментов в оцифрованное звучание этих инструментов, а значит, не требует MIDI-устройства), mikmod
(распознаёт множество форматов: MOD, STM, S3M, XM и т.д.), sidplay
и прочие. Чтобы пользователь не запутался, специальные оболочки, например mpfc
или cplay
, предоставляют общий интерфейс ко всем консольным проигрывателям.
Часть профессиональных музыкантов предпочитает использовать для записи и сведения многоканального звука дорогие специализированные цифровые станции: в этом повинна и реклама, и низкое, с точки зрения профессионала, качество звука большинства звуковых карт в компьютерах общего назначения. Несмотря на это и для таких компьютеров существует немало программ, работающих со звуком на профессиональном уровне. Такие программы можно разделить на две категории: нотные редакторы, задача которых — создание, редактирование, запись и нотное представление музыкальных композиций, и звуковые редакторы для собственно звука, а также преобразования его, наложения эффектов и т. п.
В операционных системах, основанных на GNU/Linux, также присутствуют мощные программы для редактирования музыки и звука. Пожалуй, самым известным из них является Rosegarden. Программа изначально разрабатывалась для профессиональных мультимедиа-станций от Silicon Graphics и работала на операционной системе IRIX, потом она была перенесена на Linux, а исходные тексты программы были открыты. Сегодня Rosegarden представляет из себя развитый MIDI- и аудиосеквенцер, нотный редактор, а также редактор общего назначения для сочинения и редактирования музыки. Он прост в изучении и идеально подходит для композиторов, музыкантов или студентов музыкальных специальностей, работающих в маленькой студии или записывающихся дома.
Noteedit — нотный редактор (редактор партитур), основанный на MIDI-библиотеке TSE3. Он может писать и читать MIDI-файлы и сигналы от внешней MIDI-клавиатуры. Системные MIDI-устройства используются для воспроизведения нотной записи. Имеется возможность сохранить партитуры в формате MusiXTeX или Lilypond для последующего вывода на печать.
MusE — это MIDI-секвенсер в стиле Cubase/Logic Audio, поддерживающий ввод MIDI-событий с клавиатуры и последующее их редактирование в нотном редакторе, матричном редакторе, редакторе списка событий и редакторе ударных инструментов.
Популярный свободный редактор звука — Audacity. Он умеет записывать звук сразу в форматы WAV, AIFF, AU, IRCAM или MP3. В нём есть всевозможные инструменты для редактирования записанного звука, в том числе встроенный редактор амплитуды, настраиваемый режим отображения спектрограммы и средства частотного анализа звуковых дорожек. Встроенные простейшие аудиоэффекты включают усиление баса, WahWah, удаление шума и т. д. Audacity поддерживает модульные дополнения, в которых обычно поставляются более сложные аудиоэффекты. В список поддерживаемых форматов модулей входят VST, LADSPA и Nyquist.
Sweep — это многоканальный звуковой редактор, в котором реализованы все основные операции, такие как удаление, копирование, вставка и применение эффектов, оформленных в виде плагинов, к любой части звукового файла. Примерно теми же возможностями обладают и другие редакторы звука — Rezound, WaveSurfer и GNUSound.
Как и в случае с другими мультимедиа-форматами, в Linux существуют терминальные утилиты для обработки звука, не требующие графического интерфейса. Основной пакет терминальных утилит для работы со звуком называется SOX, в него входят утилиты для преобразования, записи и проигрывания звуковых файлов, поддерживается множество форматов.
При помощи консольных утилит можно также сжимать звуковые файлы в различные форматы с потерей качества. Содержимое файла, сжатого «с потерей качества», может быть неотличимо на слух от содержимого исходного файла: алгоритмы преобразования учитывают человеческую физиологию, например, формат MP3 не воспроизводит слишком высоких звуков, а слишком низкие не разделяет на два канала. Смысл термина «потеря качества» — в том, что из упакованного файла исходный восстановить уже нельзя. Сжатие с потерей качества можно настраивать на определённую мощность потока упакованных данных: чем больше данных можно передавать в единицу времени, тем чище звук, поэтому такие форматы подходят для передачи по сети (например, интернет-радио).
Основные форматы с потерей качества — это MP3 (с ним работают упаковщики lame/toolame, bladeenc) и OGG Vorbis (утилита oggenc). Эти форматы (особенно OGG) хорошо подходят для упаковки качественной музыки. Файлы в формате OGG, упакованные семикратно (192 kbp/s), почти неотличимы на слух от исходных. Если необходимо сжать звук с ощутимой потерей качества (но без потери членораздельности и раз в двадцать), можно использовать другие форматы — gsm, aiff, adpcm, speex (сжатие речи) или bonk. Последний формат — нестандартный, он поддерживается одноимённой утилитой и отличается большой гибкостью, так как может работать и в режиме «сжатие без потерь». Для сжатия без потерь разработан специальный формат — FLAC, его распознают многие программы (в том числе и утилиты от авторов этого формата — flac и metaflac) и даже аудиоустройства.
Наиболее полнофункциональным и удобным «домашним кинотеатром» для Linux является программа xine. Xine поддерживает mpeg-2 и mpeg-1 (включая DVD) потоки, MPEG-4 и другие форматы. Альтернативный ему универсальный проигрыватель — MPlayer. Существует приложение для проигрывания видеопотока, получаемого по Сети — VideoLAN (vlc
), которое работает с форматами MPEG1, MPEG2, MPEG4 (также известный как DivX) и DVD.
Xawtv — программа для просмотра и записи видеопотоков Video4Linux, то есть программа для просмотра ТВ. Xawtv использует набор графических элементов Athena. Может использоваться совместно с VDR для просмотра цифрового спутникового, кабельного и эфирного ТВ формата DVB.
В Linux есть выбор средств для преобразования и обработки видео. LiVES (the Linux Video Editing System) претендует на звание простого, но мощного средства редактирования и эффект-обработки видео. Базируясь на GTK+, оно использует для работы такие широко распространённые средства, как MPlayer/mencoder и ImageMagick (в будущем, возможно, GStreamer и Xine). В настоящий момент рекомендуется использовать LiVES для работы с небольшими файлами.
GStreamer представляет собой библиотеку для обработки медиапотоков, основанное на идее объединённых в графы фильтров, обрабатывающих медиаданные. Приложения, использующие эту библиотеку, смогут производить любую обработку медиаданных от обработки звука до проигрывания видео. Модульная архитектура позволяет реализовать поддержку любого нового формата данных, просто установив соответствующее расширение.
Kino — это нелинейный редактор цифрового видео (DV) для GNU/Linux. Он хорошо интегрирован с IEEE 1394 и позволяет захватывать изображение, управлять VTR, и записывать на камеру. Этот редактор записывает видео на диск в формате AVI в кодировках type-1 DV и type-2 DV. Существуют терминальные утилиты для обработки видеопотока, например, пакет transcode. Кодирование и декодирование видеопотока осуществляется с помощью загружаемых модулей. Также поддерживается загрузка внешних фильтров. В число модулей входят: модули импортирования из DVD, элементарных MPEG (ES) и программных потоков (VOB), видео в формате MPEG, цифрового видео (DV), потоков YUV4MPEG, поддержка формата файлов NuppelVideo и необработанных потоков видео; модули для записи DivX, OpenDivX, DivX 4.xx или несжатых файлов AVI с MPEG, звука в форматах AC3 или PCM; дополнительные модули для записи отдельных кадров (PPM) или потоков YUV4MPEG. Пакет transcode содержит набор утилит для демультиплексирования (tcdemux
), выделения (tcextract
) и декодирования (tcdecode
) видеопотока, исследования (tcprobe
) и сканирования (tcscan
) ваших файлов и пост-обработки файлов AVI, изменения заголовков файлов AVI (avifix
), соединения нескольких файлов в один (avimerge
) или разделения большого файла на несколько AVI-файлов меньшего размера (avisplit
) для размещения на CD.
Ffmpeg — это «сверхзвуковой» кодировщик/декодировщик видео и звука, работающий в режиме реального времени, а также потоковый сервер и преобразователь различных звуковых и видеоформатов. Ffmpeg умеет захватывать видеосигнал из источника Video4Linux и преобразовывать его в файлы различных форматов на основе компенсирующего кодирования DCT/motion. Звук при этом сжимается по алгоритму MPEG-2 или алгоритму, совместимому с AC3.
Для записи дисков и сопровождающих запись задач в Linux есть как минимум два приложения с графическим интерфейсом: входящее в комплект приложений для KDE k3b
и написанное на GTK xcdroast
. Фактически, оба этих приложения — это графические оболочки над терминальными утилитами для записи CD и DVD, в первую очередь cdrecord
и cdrdao
, которыми можно пользоваться и непосредственно из командной оболочки. cdrecord
— утилита для записи дисков с цифровыми данными, в нём реализована полная поддержка аудио-, смешанных, мультисессионных и CD+ дисков. cdrdao
— программа записи аудиодисков в одну сессию позволяет управлять областями в начале дорожек данных (длиной до 0, ненулевые аудиоданные) и, например, международными стандартными кодами записи. Все данные, которые будут записаны на диск, должны быть описаны в текстовом файле. Аудиоданные могут быть в форматах WAVE или raw.
Помимо того, для Linux есть множество программ, позволяющих производить обратную операцию: считывание данных с аудиодиска в файл, такие программы называются грабберами (grabber). Один из удобных грабберов с графическим интерфейсом — Grip.
Подготовка печатных документов и оригинал-макетов изданий — хоть и не очень распространённое, но важное приложение компьютера. В Linux самой известной и системой подготовки качественных документов, пригодных к печати в типографии, является TeX. TeX — это фактически специализированный язык программирования, специально разработанный для описания типографского набора. Документ в TeX представляет собой текст, сопровождённый командами, указывающими, какое форматирование следует произвести. Возможности TeX очень широки, однако для того, чтобы их использовать в полной мере, требуются довольно серьёзные познания в нём. Чем шире познания — тем легче, быстрее и удобнее готовить документы в ТеХе и тем лучше их качество.
Обычно TeX используется совместно с пакетами форматирования более высокого уровня, например, LaTeX. LaTeX — это комплекс написанных на языке TeX макропакетов, предоставляющих удобные средства для решения типичных задач оформления печатных изданий. В LaTeX определено оформление для нескольких стандартных классов документов.
LyX — это современных подход к написанию документов, разрывающий с устаревшей парадигмой использования компьютеров как пишущих машинок, применяемой в большинстве других систем подготовки документов. Он разработан для тех, кто хочет получить профессиональное качество документа при печати, не тратя при этом много времени и усилий, и не становясь специалистом по полиграфическому оформлению. Основное новшество в LyX — это WYSIWYM (What You See Is What You Mean — вы видите то, что вы имели в виду), которое означает, что автор сосредотачивается над своей работой, а не над деталями оформления документа. Это позволяет продуктивно работать, оставляя заключительное оформление специальному движку (такому как LaTeX), который специально разработан для подобных задач. С LyX автор может сконцентрироваться на содержании своей работы и позволить компьютеру взять большинство забот об оформлении на себя.
В Linux есть по крайней мере одна программа для визуальной подготовки оригинал-макетов, аналогичная издательским системам Adobe PageMaker, QuarkXPress и подобным — scribus
. Возможности его могут быть более ограничены, чем у перечисленных коммерческих аналогов, однако он распространяется свободно и в настоящее время активно разрабатывается.
В этот краткий и фрагментарный обзор не вошли собственно инструменты для разработки программного обеспечения, которые развиты в Linux чуть ли не лучше, чем все остальные приложения, поэтому написать краткий обзор для них гораздо сложнее. Не сказано ничего о серверах баз данных (не не потому, что таких серверов нет!) и серверах приложений в составе сложных проектов. Обойдены вниманием и игры — любой читатель этого раздела сможет самостоятельно решить, сколько внимания и каким из них уделять.
Напоследок повторим: главной целью приведённого обзора приложений для Linux было показать, что приложения есть и их много, нужно только достаточно внимательно искать — и нужное обязательно найдётся. В ALT Linux для поиска доступен очень удобный инструмент — менеджер пакетов APT и команда apt-cache search
. Поскольку в современные дистрибутивы Linux входят тысячи пакетов, почти наверняка среди них найдётся нужное приложение. Кроме того, любому пользователю Internet доступен поисковый сайт http://google.com
, наиболее подходящий для поиска чего бы то ни было, а для поиска существующих приложений для Linux можно воспользоваться специализированными сайтами — http://rpmfind.net
, http://freshmeat.net
, http://rpm.pbone.net
или сайтом, посвящённым выбранному дистрибутиву.
Обратите внимание, что все названные в этой лекции приложения — это свободно распространяемые и разрабатываемые программы, если не оговаривается обратное. Характерная черта свободного программного обеспечения состоит в том, что если для решения какой-то задачи есть одно свободное приложение, то всегда есть и несколько других, так что пользователь всегда может выбрать себе приложение по вкусу, а если подходящего не обнаружится — изменить для себя одно из уже существующих или даже написать новое. В конце концов, нет ничего дороже и милее сделанного собственными руками велосипеда.
1Пользователи, знакомые с MS-DOS, вспомнят Norton Commander, а пользователи помоложе — Far Manager.