[daemonix]
6.6. Прикладное ПО

Популярность программного обеспечения компаний Microsoft, Borland (ныне Inprise) и Novell уже на столько набила оскомину, что многие уже не отдают себе отчет в том, что сети придумал не Novell, язык программирования C изобрел не Borland, а графический интерфейс не является открытием Microsoft. Все эти три вещи существовали в UNIX системах еще до появления названных компаний на свет Божий. О первых двух я уже рассказал, теперь займемся третьей - графическим интерфейсом.


6.6.1. Система X Window

X Window Logo

Читателю, добравшемуся до этого места, может показаться, что пользователь в UNIX системах брошен на произвол командной строки. На самом деле это далеко не так. Уже на протяжении многих лет существует графическая система X Window, разработанная международным консорциумом "X Consortium" и представляющая собой очень гибкий и мощный графический интерфейс.

XFree86 Logo Свободно распространяемая реализация X Window называется XFree86. Число "86" в названии - дань истории. XFree86 начала развиваться на платформе Intel и только потом стала кроссплатформенным проектом. Сейчас XFree86 работает на многих UNIX подобных системах, а также на IBM OS/2.

Система X Window очень многолика. Если пользователь графической системы, подобной Microsoft Windows, фактически обречен на использование жестко вшитого в эту систему интерфейса, то пользователь X Window имеет богатую возможность выбирать тот интерфейс, который наиболее подходит к его вкусам и нуждам (look and feel).

Развиваясь в UNIX системах, X Window унаследовала их традиции и технологии. Представляя собой модульную систему, X Window обладает высокой гибкостью благодаря четкому разграничению функциональности между ее компонентами. Одним из таких компонентов является оконный диспетчер (window manager), который и определяет внешний вид и интерфейсные возможности системы. Заменив один оконный диспетчер другим, мы можем получить совершенно отличный от предыдущего пользовательский интерфейс. Существует более двадцати различных оконных диспетчеров, начиная от самых примитивных (twm), до очень сложных, реализующих целые интегрированные системы ( KDE, Gnome, Afterstep). Среди них есть диспетчеры, копирующие интерфейсы наиболее распространенных платформ: Windows, OS/2, MacOS, NeXT, Amiga, и менеджеры, которые предлагают свой индивидуальный интерфейс. Хороший обзор наиболее популярных оконных диспетчеров можно посмотреть здесь: http://www.PLiG.org/xwinman/.

Лично я, до не очень давнего времени, использовал KDE, здесь вы видите снимок моего рабочего стола в момент работы над первой версией этой статьи.


Снимок рабочего стола KDE

Сейчас я перешел на использование xfce, поскольку "интегрированная навороченность" KDE оказалась для меня слабо необходимой. Xfce же полностью подошел под мои нужды, коме того, то, что его разработчик уделяет особое внимание быстродействию и малой ресурсоемкости этого оконного диспетчера, - наиболее приятно. Диспетчер легко конфигурируем, прост, удобен и, одновременно, гибок и многолик. Выглядеть он может, например так.


Снимок рабочего стола xfce


С этого момента я, пожалуй, прекращу говорить о UNIX системах вообще и обращу свой взгляд на ОС FreeBSD. А начну с небольшого исторического отступления от темы программного обеспечения.

Выбор мной FreeBSD как рабочей платформы далеко не случаен. Началось все в декабре 1996 года, когда встала необходимость в установке сетевого шлюза. К этому моменту я уже имел опыт работы с IBM OS/2, Microsoft Windows NT и Linux Slackware. Выбор операционной системы для шлюза являлся стратегическим вопросом и требования к ней предъявлялись очень жесткие. В список кандидатов была включена и FreeBSD, просто из соображения уравновешивания количества коммерческих и свободно распространяемых ОС. Была расчерчена таблица, строки которой определяли предъявляемые требования, а колонки принадлежали упомянутым операционным системам. После этого я засел за свой любимый интернет броузер Netscape Navigator и начал планомерно заполнять табличку по десятибальной системе. Вот основные требования и характеристики из нее:

  • простота администрирования;
  • простота обновления системы и ее компонентов;
  • надежность;
  • защищенность;
  • низкие требования к аппаратному обеспечению;
  • способность продолжительное время функционировать в режиме "без присмотра";
  • возможность дистанционного администрирования и контроля;
  • возможность организации службы локальной доставки почты без привязки к какой-либо конкретной платформе;
  • поддержка uucp;
  • возможность трансляции адресов источника и назначения в заголовках электронной почты;
  • поддержка разделения и оптимизации использования низкоскоростного канала "наверх";
  • доступность/стоимость ОС;
  • доступность/стоимость дополнительного ПО;
  • крупные проекты/системы уже реализованные на базе ОС.

Когда таблица была заполнена и подсчитана сумма баллов по каждой ОС, то результаты были следующими: ОС Linux и FreeBSD весомо обставили своих коммерческих конкурентов, однако FreeBSD оказалась чуть-чуть удачливей Linux, победив в общем зачете. Я решился попробовать, в конце-концов, я ничего не терял в тот момент и было время, если что, перебраться на знакомый Linux. Но отката не последовало, а наоборот через полтора года ОС FreeBSD заменила Microsoft Windows NT и на локальном сервере. Так она стала моей главной рабочей операционной системой.

Сейчас FreeBSD стоит и на моем домашнем компьютере, а я чувствую себя весьма комфортно, работая с ней, как, впрочем, комфортно чувствует и она себя, работая на машине в конфигурации:


компонент характеристика
Центральный процессорAMD K6 3D-Now! 266 Мгц
Оперативная память64 МБ
Видео ускоритель3dfx Voodoo Rush (Vulcan)
Дисковый массивAdaptec AHA-2940UW SCSI с 3 ГБ дисков
Привод CD-ROMNEC-1910 (24x SCSI)
Аудио контроллерAdvanced Gravis UltraSound MAX

Самое интересное то, что с переходом на ОС FreeBSD отпало столь навязчивое желание в постоянной модернизации системы, которое постоянно сопутствует пользователям Windows 9x/NT. На приведенной конфигурации система буквально летает, а мой десятилетний сын успешно ее осваивает.


6.6.2. Порты, пакеты и их установка

Установка программных пакетов во FreeBSD очень проста. Существует два способа распространения ПО для FreeBSD: пакеты (packages) и порты (ports).

Пакеты представляют собой уже откомпилированные программные модули и установка пакета сводится к выполнению единственной команды pkg_add с указанием в командной строке названия файла пакета. Набор пакетов создается для каждого выпуска очередной версии ОС, релиза (RELEASE) и поставляются на компакт-дисках одновременно с операционной системой. Коллекция пакетов очень богата, она включает в себя практически все необходимое программное обеспечение.

Поскольку развитие сопутствующего ПО не стоит на месте, то для установки обновленных версий приложений, в промежутке между релизами, используется технология портов. Эта технология основывается на применении архива-ядра (tarball) - небольшого архива формата tar, в котором содержатся файлы, описывающие технологию установки порта, источники получения исходных текстов пакета и прочая необходимая информация. Все, что необходимо сделать для установки пакета из портов - это "выкачать" архив-ядро порта, распаковать его в локальный каталог и в корне этого каталога выполнить команду "make install". Далее процесс установки пойдет в полностью автоматическом режиме. Установщик вытянет необходимые архивы с исходными текстами пакета, проверит их целостность, распакует, выполнит необходимые модификации файлов и запустит процедуру компиляции; после завершения компиляции будет произведена сборка временного пакета и его установка. Процесс совершенно необременительный, поэтому позволяет легко обновлять уже установленные программные пакеты.

Коллекция портов значительно более богата чем набор пакетов, поскольку она не ограничена пространством компакт-диска. Главным достоинством коллекции является то, что нет необходимости искать нужное программное обеспечение в сети - оно все доступно из одного места.


6.6.3. Сетевое ПО

Сейчас в ОС FreeBSD есть почти все, что мне необходимо. Большинство сетевых сервисов можно полностью автоматизировать. Например, моя домашняя машина сама получает электронную почту из интернет при помощи пакета fetchmail, электронные новости при помощи программы suck. Почта и конференции сети FidoNET доставляются пакетом ifmail. Все это происходит в ночное время без моего участия.

Поддержка работы в интернет просто великолепна, о таких возможностях MS Windows остается только мечтать. Многим знакома ситуация, когда во время "выкачивания" какого-то большого файла или объемной страницы обрывается связь, скажем из-за помех на телефонной линии, тогда под ОС Windows 9x приходится начинать все заново, так как из-за примитивности реализации стека TCP/IP протокольное соединение обрывается. У меня же система сама снова поднимает линию и передача продолжается.

Перебравшись на FreeBSD с MS Windows 95 я буквально вздохнул полной грудью при работе в сетях, особенно если учесть то, что у меня самая плохая в Автозаводском районе г. Тольятти АТС - 37-я. Мне возразят, что есть программы поддерживающие докачку - знаю, но представьте на минуту, что необходимость в подобного рода программах полностью отпала и они больше не будут пожирать место на вашем диске; создавать неудобств в работе, когда для передачи большого файла приходится открывать еще одно дополнительное приложение, да и разбираться с ними уже не придется; количество нажатий кнопки перезагрузки страницы в броузере резко сократится; система перестанет задавать глупые вопросы о необходимости восстановления соединения, докачки, перекачки, загрузке-выгрузке,.. а будет просто работать.

Для блужданий по Интернету в качестве броузера свободно доступен Netscape Communicator, сейчас в версии 4.72. Но им одним список броузеров не исчерпывается, существуют еще:

Amaya
Броузер принадлежащий W3C консорциуму, который занимается разработкой стандартов для WWW, в частности спецификациями языка HTML. Основное назначение - демонстрация и тестирование новых разработок. Доступен также для платформ Windows 9x/NT.
Grail
Броузер написанный на интерпретирующем объектно-ориентированном языке Python. Работает на UNIX подобных ОС, а также на платформах Windows и Macintosh. Для работы необходима поддержка языков Python и Tcl/Tk
HotJava
Броузер разработанный компанией Sun Microsystems.
Mosaic
Классика WWW. Один из первых разработанных в мире броузеров. Кроме X Window, работает под Windows и Macintosh.
Lynx
Броузер текстового режима. Быстр, не требователен к ресурсам. работает под очень большим количеством операционных систем, даже под DOS.
И другие.

Если кого-то не устраивают встроенные в Netscape Communicator компоненты для чтения электронной почты и новостей, то существует большое количество альтернативных программ как текстовых, так и графических. Например, я очень долгое время для обработки почты пользовался программой pine, которая, не смотря на алфавитно-цифровой интерфейс, является очень мощным инструментом, и лишь недавно, с установкой KDE, начал использовать kmail. Для чтения новостей есть замечательная, но на первый взгляд непонятная, а на поверку очень удобная программа knews. Несмотря на похожесть названия с kmail, к пакету KDE эта программа никакого отношения не имеет.

Если вам нужно выкачать что-то очень огромное, например целый WWW сайт, то на этот случай есть уникальная программа wget, про которую очень точно говорят: "она может вытянуть черта лысого". Программа умеет, разбирая ссылки, проходить по иерархии каталогов и документов удаленного сервера, создавая на локальной системе его точную копию.


6.6.4. Программы для обработки текста

Программ для обработки текста великое множество, начиная от классического текстового редактора vi и его очень сильно модернизированной версии vim, до сложной и мощной системы Emacs.

Обработка текста в UNIX специфическая и давняя задача, здесь наработано очень много технологий, главной идеей которых была - совместимость и конвертируемость. Поэтому здесь практически как класс отсутствуют WYSIWYG системы с абсолютно несовместимыми форматами. Здесь все построено на тексте в чистом виде.

Если есть необходимость оформить текст для печати, публикации, то на этот случай существует мощнейшая издательская система TeX, разработанная Дональдом Кнутом. Система, вот уже на протяжении ряда лет, пользуется большой популярностью среди авторов, особенно в научных кругах. Две наиболее распространенные реализации TeX сейчас - это teTeX и LaTeX. Для последнего существует графический интерфейс близкий к WYSIWYG - LyX. Уникальность системы заключается в том, что представляя собой достаточно простой язык описания структуры документа, что-то вроде языка программирования, она позволяет полностью сосредоточиться над самим документом, а проблемы форматирования текста возложить на интерпретатор TeX, при этом можно не бояться, что подготовленный файл будет поразному распечатан на различных системах. Из подготовленного исходного файла потом можно получить желаемый формат: PostScript, PDF и другие. Стоит ли говорить, что формат PostScript является стандартом в издательском деле.

Если ваш принтер не поддерживает PostScript, то на этот случай существует программный интерпретатор GhostScript, позволяющий выполнять печать PostScript документов на широком спектре печатающих устройств.


6.6.5. Графическое ПО

Для обработки растровой графики существует программа Gimp (GNU Image Manipulation Program). Уже сейчас она представляет собой мощный и серьезный инструмент, догоняющий по своим возможностям Adobe Photoshop. Для векторной графики существуют три WYSIWYG редактора: Sketch, KIllustrator и GYVE(GNU Yellow Vector Editor). Хотя все они пока еще находятся в стадии разработки, но тем не менее представляют уже достаточно функциональные и реально работающие пакеты. Кроме того существует большое количество программ для просмотра и конвертирования графических файлов, есть пакеты для обработки трехмерной графики и многое другое.


6.6.6. Мультимедийное ПО

Как-то стало обычным считать, что мультимедийные приложения - прерогатива ОС Windows. Это еще одно досадное недоразумение. Для ОС FreeBSD существует достаточное количество мультимедийных приложений, включающие в себя проигрыватели компакт-дисков; различного рода аудио форматов, в том числе MP3 и видео форматов. Есть программы для захвата и редактирования аудио и видеоданных.


Перечислить всю обширность программного обеспечения, существующего для ОС FreeBSD в пределах одной статьи просто невозможно. Лучше один раз увидеть, чем сто раз услышать, поэтому просто пойдите и посмотрите сами! Тем более что все это доступно в одном месте. Но этим не ограничивается спектр доступного программного обеспечения. Эффективная эмуляция ОС Linux позволяет легко запускать приложения предназначенные для этой системы, самым ярким примером чего является полная работоспособность Linux версии игр Quake и Quake II от id Software.


Обновлено: 12.03.2015