учебники, программирование, основы, введение в,

 

Прикладные программы

Основная особенность программного обеспечения Linux – многообразие продуктов, решающих сходные задачи, особенно если дело касается области, в которой существует несколько подходов к их решению. Открытая модель разработки программ, описанная далее в лекции 18, позволяет любому выбрать самый подходящий для него инструмент и развивать именно его. Поэтому список проектов, так или иначе связанных с Linux, насчитывает десятки (или даже сотни) тысяч наименований.
Конечно же, работа с самой операционной системой не может быть самоцелью. Все усилия Мефодия по изучению операционной системы Linux и основных утилит нужны были для того, чтобы он впоследствии мог наилучшим образом решать в этой операционной системе любые из своих прикладных задач, разрешимых при помощи компьютера. Как уже уяснил Мефодий, для очень многих задач достаточно стандартных инструментов Linux и текстового редактора, однако есть случаи, в которых все-таки необходима специальная прикладная программа, именно для этого предназначенная, или в которых специальная программа удобнее комбинации стандартных утилит.
В этой лекции дается краткий обзор прикладных программ для Linux, специально предназначенных для решения разнообразных пользовательских задач. Материал, вошедший в эту лекцию, следует воспринимать только как пример, демонстрацию того, что и как можно делать в Linux, но вовсе не как исчерпывающий список. В отличие от основных принципов устройства системы или стандартных утилит, обсуждавшихся в предыдущих лекциях, которые не изменяются (почти) в течение десятилетий, прикладное программное обеспечение – это область, где все меняется очень быстро. Технологии, сегодня считающиеся самыми передовыми, уже через несколько месяцев могут устареть. Вместе с ними могут устареть использующие их программы, а другие программы могут, наоборот, перейти в разряд наиболее современных и развитых. Поэтому перечисленные в этой лекции прикладные программы – это не безусловная рекомендация, а довольно случайная выборка, отражающая текущее состояние дел в разработке приложений для Linux. Самый лучший способ найти и выбрать подходящие прикладные программы для своих задач – посоветоваться с людьми, которые решают подобные задачи в Linux в настоящее время, и попробовать.
Нужно отдавать себе отчет в том, что прикладные программы для Linux не являются частью самой Linux, поэтому любой из названных ниже программ может не оказаться в каком-то из конкретных дистрибутивов Linux. Но почти наверняка в любом дистрибутиве найдется не меньше одной или даже нескольких программ для решения каждой из перечисленных ниже прикладных задач. Чтобы не загромождать изложение, мы остановимся лишь на самых распространенных программных продуктах, входящих во многие дистрибутивы Linux.
Рабочий стол
Первое, что стоит сделать, начав использовать Linux – организовать для себя удобное "рабочее место": подобрать и настроить программы, с которыми приходится работать каждый день. Рабочее место в Linux может выглядеть по-разному. Можно вовсе обойтись без графического интерфейса, используя только текстовый терминал для управления системой. Такой выбор будет правильным, если рабочее место находится на сервере, подключенном к Internet, доступ к которому осуществляется только при помощи ssh или аналогичных клиентов удаленного доступа. Впрочем, некоторые пользователи предпочитают работать в текстовом интерфейсе по эстетическим, а не по практическим соображениям.
Если графический интерфейс используется, то и в этом случае есть различные возможности его организации. Прежде всего, следует решить, нужно ли организовывать "рабочий стол" (для этого подходят GNOME, KDE, XFCE) или можно обойтись возможностями одного из развитых диспетчеров окон (уже упоминавшиеся Enlightenment, FVWM2, WindowMaker и многие другие). Помимо функциональности, в выборе графической среды решающее значение могут сыграть и эстетические критерии. Дальше всех в этом направлении продвинулась среда Enlightenment, работа с которой в некоторых вариантах настройки количеством украшений и эффектов напоминает участие в компьютерной игре (скорее всего, сетевой).
Эмулятор терминала
Даже для такой на первый взгляд тривиальной функции, как эмуляция терминала для X Window System, существует целый ряд программ. Самая стандартная из них поставляется вместе с XFree86 – xterm. Вариант xterm, поддерживающий отображение шрифтов в кодировке UNICODE, вызывается командой uxterm. Однако каждое приложение, организующее среду рабочего стола, включает собственный эмулятор терминала, внешний вид и поведение которого настраивается централизованно вместе со всеми остальными приложениями рабочего стола. Есть и другие эмуляторы терминала, не связанные с конкретным рабочим столом. К таким относится 9term, повторяющий возможности "окна" системы Plan9, mlterm, имеющий многоязыковую поддержку, rxvt – очень нетребовательный к ресурсам эмулятор терминала, или его потомки наподобие aterm.
Большое количество терминальных окон на рабочем столе может образоваться, даже если раскладывать их по разным виртуальным экранам. Некоторые версии xterm (например, konsole) позволяют открывать окна "стопками" и переключаться между ними с помощью "закладок", как в записной книжке. Если основная работа происходит на удаленном компьютере, и каждый xterm соответствует сеансу удаленной работы, можно пойти и другим путем. Устанавливается одно соединение с удаленным компьютером, а там запускается эмулятор терминала screen. Эта программа не взаимодействует с графической средой. Она просто открывает требуемое число псевдотерминалов, и в каждом из них запускает по командному интерпретатору. Ввод со стандартного ввода попадает на тот псевдотерминал ("экран"), который screen считает "видимым", а вывод происходит на всех экранах независимо. С помощью управляющего символа "^A" этой утилите подаются команды – переключиться на следующий экран ("^A^N", при этом пользователь увидит то, что на этот экран выводилось), открыть новый ("^A^C") и т. п.
Типичное применение screen – в одном окне запущен текстовый редактор, в другом – командная строка. Удобство дополняется тем, что от работающего screen можно "отсоединиться" ("^A^D"), при этом пользователь может прервать терминальный сеанс и пойти спать, а интерпретатор командной строки и редактор будут работать на удаленном компьютере как ни в чем не бывало (но, конечно, не будут проявлять никакой активности). Когда пользователь вернется, он вновь присоединится к удаленной машине, "подключится" к работающему screen (команда screen -R) и продолжит работать с редактором и командной строкой.
Диспетчеры файлов
Все изменения в файловой системе Мефодий привык производить с помощью стандартных утилит командной строки и находит это весьма удобным. Однако многие пользователи привыкли оперировать файлами и каталогами как наглядными штучными объектами (папками и документами). Они могут выбрать для себя программу, которая позволяет наглядно и поштучно работать с объектами файловой системы – диспетчер файлов (file manager). Поскольку представление файлов и каталогов как папок и документов необходимо в первую очередь в рамках метафоры рабочего стола, то и диспетчеры файлов для Linux разрабатываются прежде всего как приложения той или иной среды рабочего стола. В частности, и в KDE, и в GNOME есть свои диспетчеры файлов – konquеror и nautilus, соответственно, которые по совместительству служат www-броузерами. Такое совмещение функций вполне логично, поскольку в среде рабочего стола нужно представлять доступные локальные и удаленные ресурсы как единое пространство, наполненное объектами, которыми можно манипулировать, можно "открывать", т. е. запускать соответствующее приложение для просмотра и/или редактирования.
Для многих пользователей наиболее удобный способ работы с файловой системой – "классический" двухпанельный диспетчер файлов, работающий в текстовом режиме (в терминале) – Midnight Commander (название утилиты – mc). Его функциональность также шире просто операций с файлами – он позволяет открывать файлы для просмотра и редактирования, вызывать вспомогательные программы для работы с архивами (и даже "заходить" в архивы, как в каталоги), передавать данные по сети и т. п. 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 и некоторые другие, – с возможностями слайд-шоу, автоматического изменения размера, показа картинки на полный экран и т. п.


Сеть
WWW-броузеры
www-броузер – программа для просмотра гипертекста, доступного через Internet – на сегодня чуть ли не самое важное приложение для персонального компьютера. Сегодняшний www-броузер должен "уметь" гораздо больше, чем просто отображать страницы HTML и переходить по гиперссылкам. Фактически, на него ложится задача работы с данными Internet во всем их многообразии, сюда входит и поддержка постоянно развивающихся стандартов, и обеспечение безопасности, и многое другое.
В Linux имеется довольно большой выбор www-броузеров, однако первым действительно современным свободным приложением для работы с Internet стал пакет Mozilla, который до сих пор вполне успешно конкурирует с аналогичными коммерческими программами, несмотря на затрудняющую успешное развитие идеологию "три в одном". Mozilla – пакет приложений для работы с Internet. Это мощный, насыщенный функциями коммуникационный центр для персонального компьютера. В состав пакета входит броузер, программа для работы с электронной почтой и редактор WWW-страниц. История Mozilla началась в 1998 году, когда фирма Netscape опубликовала исходные тексты своего броузера Netscape Navigator. Одно из важных свойств пакета Mozilla – его принципиальная расширяемость. В Mozilla реализован язык XUL на основе XML, при помощи которого очень легко разрабатывать дополнительные компоненты Mozilla, ориентированные на выполнение специальных функций.
Более современен FireFox, разрабатываемый командой Mozilla на основе исходных кодов, соответствующих только www-броузеру. Остальная часть FireFox написана полностью на XUL, поэтому разработка этой молодой программы идет существенно бодрее и проще, ее настройка считается самой гибкой среди www-броузеров, а главное, любой желающий может написать на высокоуровневых языках программирования XUL/JavaScript и опубликовать свой модуль расширения (т. н. plugin; на сегодня таких модулей известно более 150).
О www-броузерах, разработанных специально для той или иной среды рабочего стола, уже шла речь выше (они превосходно справляются с ролью файловых диспетчеров). Важная разновидность www-броузеров – текстовые броузеры, т. е. те, которые могут быть запущены в любом текстовом терминале Linux. Самый старый и известный из них, один из прототипов современных www-броузеров – Lynx. Он не имеет возможности отображать графическую информацию, но отлично поддерживает HTML, формы и таблицы. Современные версии поддерживают также соединения, защищенные при помощи SSL. Links – это текстовый броузер, на первый взгляд, очень похожий на Lynx, но несколько отличающийся от него следующими функциями:
  • умением работать с таблицами и фреймами;
  • отображением цветов, указанных в HTML-странице;
  • использованием выпадающих меню (как в Midnight Commander);
  • возможностью загрузки файлов в фоновом режиме.

Помимо возможности просмотра 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) proxy-сервер и т. д. 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) умеют сами интерпретировать описания фигур, для других необходимо заранее просчитать и сформировать картинку программным путем.

Работа с PostScript и PDF

Современная полиграфия уже не мыслится в отрыве от компьютеров, все допечатные материалы обычно существуют в электронной форме, и именно электронные документы подаются на печатающие устройства для вывода. Причем для современной полиграфии de facto стандартом является формат PostScript. PostScript – это язык описания страницы, позволяющий представить любые полиграфические материалы в векторном формате (однако он допускает и включение растровых фрагментов). Файл в формате PostScript фактически представляет собой программу, описывающую, какие действия нужно произвести, чтобы получить требуемый вывод. Профессиональные печатающие устройства умеют непосредственно интерпретировать документы на языке PostScript.
PDF (Portable Document Format, переносимый формат документов) – модификация языка PostScript, разработанная для того, чтобы обмениваться полиграфическими документами через Internet. В PDF есть специальные возможности для публикации документов в Сети, в частности, поддержка гиперссылок, а некоторые возможности языка PostScript оттуда, наоборот, исключены.
GhostScript – интерпретатор языка описания страниц PostScript и файлов в формате PDF (формат переносимых документов). Ghostscript преобразует PostScript во многие растровые форматы, подходящие для вывода данных на экран или на принтер, не поддерживающий PostScript. Обычно GhostScript используется для просмотра файлов PostScript и для печати на принтерах, не поддерживающих язык PostScript. GhostScript используется множеством приложений для вывода данных на печать. Графический интерфейс для GhostScript предоставляет программа GhostView (команда gv), она позволяет отображать документы в форматах PostScript и PDF в графической среде X Window. Для различных манипуляций с файлами в формате PostScript предназначен пакет утилит командной строки psutils – с их помощью можно выбрать, отсортировать, реорганизовать, масштабировать страницы в PostScript-файлах и делать многое другое.
Специально для просмотра PDF-файлов предназначена программа xpdf, которая позволяет переходить по гиперссылкам в документе, просматривать структуру документа, производить поиск и поддерживает сглаживание шрифтов. Альтернативой xpdf может быть Acroread – версия известного приложения Adobe Acrobat для Linux, однако в отличие от xpdf оно является несвободным программным продуктом.

Диаграммы

Отдельно стоит упомянуть редакторы диаграмм, которые часто смешивают с обычными редакторами векторной (плакатной) графики. Между тем задачи у них разные: если для плакатной графики главное – построение "картинки", соответствующей задумке автора по внешнему виду, то в диаграмме автора больше беспокоит логическое соответствие изображения проекту и его наглядность. Поэтому при построении диаграммы много внимания уделяется "стрелочкам" и прочим соединительным линиям, оптимальному размещению объектов на странице, типизации объектов и т. п.
Самая старая из подобных утилит, XFig, и по сей день активно используется, формат ее диаграммы распознают многие средства работы с векторной графикой. Более мощной является ориентированная на среду Gnome утилита Dia, возможности которой продолжают расти (существует даже проект перевода диаграмм в нотации языка моделирования программных UML непосредственно в текст на C++). Аналогом Dia для KDE является встроенная в пакет KOffice утилита Kivio.

Плакатная графика

Что же касается собственно векторной (плакатной) графики, то и здесь есть из чего выбирать. Например, Sodipodi – программа векторного рисования общего назначения. Она использует подмножество формата W3C SVG в качестве формата собственных файлов. Здесь применяется новейшее ядро для отображения, со сглаживанием, альфа-каналом и векторными шрифтами. Сходными возможностями обладает и отпочковавшаяся от Sodipodi программа Inkscape, отличительным свойством которой является полная поддержка формата SVG и ориентация на среду Gnome. Многообещающе выглядит проект Skencil, позволяющий редактировать некоторые виды PostScript-файлов. Среда KDE также имеет "свой" редактор векторной графики, Karbon14, входящий в состав семейства программ KOffice.

Растровая графика

Понятие "растровая графика" означает, что изображение представлено в виде матрицы точек ("пикселей"). Это значит, что при сильном увеличении границы любого объекта будут выглядеть "лесенкой" из разросшихся в квадраты точек (в отличие от векторного представления, где увеличение повышает качество изображения). С другой стороны, растр – удобный для компьютерной обработки формат представления фотографий, сделанных от руки рисунков и прочих изображений, которые нельзя расчленить на отдельные фигуры.
В GNU/Linux имеются развитые средства для редактирования растровой графики. Самым мощным из них является GIMP (GNU Image Manipulation Program). С ее помощью пользователь может редактировать изображения, создавать логотипы и другие графические элементы, особенно полезные при создании Web-страниц. GIMP включает много инструментов и фильтров, аналогичных тем, которые можно найти в коммерческих графических редакторах, а также несколько возможностей, эксклюзивных для этой программы. GIMP предоставляет возможность работать с цветовыми каналами, уровнями изображения, накладывать эффекты, сглаживать шрифты и конвертировать изображения в разные форматы. В GIMP имеется собственный язык программирования сценариев (на основе Scheme), на котором можно создавать довольно замысловатые дополнения к основной программе. Недостаток GIMP – слабая (оформленная в виде дополнения) поддержка цветового стандарта CMYK, используемого в полиграфии, поэтому в электронной документации, редактировании изображений для WWW-страниц и прочих областях, не имеющих дела с бумагой, его применяют чаще.
Очень полезен набор утилит для обработки графики из командной строки – ImageMagick. В этот набор входят утилиты для отображения (display), преобразования (convert) изображений, захвата изображений с экрана (import) и даже собственный интерпретируемый язык программирования, Magick Scripting Language. Для полуавтоматического перевода из растрового представления в векторное существует несколько специальных утилит, например, autotrace/autofig или potrace.

Трехмерная графика

Для Linux создано несколько программных пакетов, работающих с пространственным представлением объектов.
Исходные тексты одного из самых мощных пакетов трехмерного моделирования, пересчета (рендеринга) и анимации – Blender – в 2002 году были открыты и весь проект полностью переведен под свободную лицензию. Авторы Blender пришли к выводу, что открытая разработка инструмента более эффективна и прибыльна для тех, кто этим инструментом (а не его продажей) зарабатывает. Для этого пришлось выкупить находящиеся в собственности спонсоров части проекта у хозяев за 100 000 евро. Искомую сумму предоставило сообщество пользователей Blender, уже тогда немалое: каждый внес сколько смог, и менее чем за два месяца денег на счете оказалось достаточно. С тех пор круг пользователей и возможности Blender продолжают постоянно расти.
Для выполнения задач, совмещаемых Blender, есть и отдельные программные средства. Например, популярный пакет трассировки лучей (трехмерного проектирования и сценографии) POV-Ray, с помощью которого создаются проекты удивительной сложности и красоты (например, перевод картины Уильяма Марлоу "Каприччо" в трехмерное представление – с тем только, чтобы из определенной точки повторить ее). Многие графические редакторы имеют встроенные средства анимации, а иные (как, например, CinePaint, называвшийся ранее FilmGimp) специально разрабатываются для мультипликаторов.
Не стоит забывать, что популярный нынче стандарт OpenGL – открытый; он разрабатывался для UNIX-подобных систем и используется большим числом программ для Linux (в том числе и Blender). К сожалению, производители аппаратного обеспечения (видеокарт), как правило, скрывают не только устройство своих карт, но даже способ их низкоуровнего использования. Поэтому в открытом доступе оказываются лишь готовые драйверы (без исходных текстов) к некоторым версиям ядра Linux и определенным сборкам XFree86. Отображение трехмерных объектов с пересчетом на программном уровне пока работает существенно медленнее, хотя ничуть не хуже. Поэтому используя 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. Примерно теми же возможностями обладают и другие редакторы звука – Rezound, WaveSurfer и GNUSound.
Sweep – это многоканальный звуковой редактор, в котором реализованы все основные операции, такие как удаление, копирование, вставка и применение эффектов, оформленных в виде плагинов, к любой части звукового файла.
Как и в случае с другими мультимедиа-форматами, в 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.

Запись CD и DVD

Для записи дисков и сопровождающих запись задач в Linux существует как минимум два приложения с графическим интерфейсом: входящее в комплект приложений для KDE k3b и написанное на GTK xcdroast. Фактически, оба приложения – это графические оболочки над терминальными утилитами для записи CD и DVD, в первую очередь cdrecord и cdrdao, которыми можно пользоваться и непосредственно из командной оболочки. cdrecord – утилита для записи дисков с цифровыми данными, в ней реализована полная поддержка аудио-, смешанных, мультисессионных и CD+ дисков. cdrdao – программа записи аудиодисков в одну сессию позволяет управлять областями в начале дорожек данных и, например, международными стандартными кодами записи. Все данные, которые будут записаны на диск, должны быть описаны в текстовом файле. Аудиоданные могут быть в форматах 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 было показать, что приложения есть и их много – надо только достаточно внимательно искать, и нужное обязательно найдется. У Мефодия для поиска есть очень удобный инструмент – менеджер пакетов APT и команда apt-cache search. Поскольку в современные дистрибутивы Linux входят тысячи пакетов, почти наверняка среди них найдется нужное приложение.
Обратите внимание, что все названные в этой лекции приложения – это свободно распространяемые и разрабатываемые программы , если не указано обратное. Характерная черта свободного программного обеспечения состоит в том, что если для решения какой-то задачи имеется одно свободное приложение, то всегда есть и несколько других (о причинах этого см. в л), так что пользователь всегда может выбрать себе приложение по вкусу, а если подходящего не обнаружится – изменить для себя одно из уже существующих или даже написать новое. В конце концов, нет ничего дороже и милее сделанного собственными руками велосипеда.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г.Яндекс.Метрика