О возможностях, ограничениях и дальнейшем развитии браузеров Linux.

Подключение Linux к Интернету мы уже описывали (см. «Мир ПК», № 08/02, с.74), а теперь поговорим о том, какими именно сервисами можно пользоваться, работая с ОС Linux. Один из самых популярных сервисов — Web, и для его просмотра требуются Web-браузеры. Для Linux их создано уже довольно много, возможно, даже больше, чем для Windows. Так что интересно узнать, чем же они различаются и какой из них имеет смысл использовать.

О браузерах вообще...

Прежде чем сравнивать браузеры, нужно несколько слов сказать об их функциях. Обычно браузер занимается тем, что получает данные с сервера по протоколу HTTP, компонует их в виде изображения или текстового фрейма, а результат помещает на экран. Компонент браузера, обрабатывающий HTML, называется HTML-парсером, а модуль, подготавливающий графическое представление HTML-документа, — рендером. Ядром браузера мы будем называть совокупность HTML-парсера, рендера и еще нескольких базовых модулей, включая обработчик сценариев Java и JavaScript. Все остальные функции являются внешними и выполняются оболочкой.

... и о браузерах под Linux в частности

Итак, браузеров для операционной системы Linux, видимо, больше, чем для других платформ. Впрочем, наследника Netscape — браузер Mozilla по сути уже нельзя называть таковым — он, скорее, уже стал инструментом для создания Web-приложений. У него имеется несколько «младших братьев», построенных на том же ядре Gecko, но имеющих меньшую функциональность, — Phoenix, SkipStone, Nautilus и Galeon. В Linux включен также аналог Internet Explorer — браузер Konqueror, интегрированный в среду KDE. Есть также коммерческий браузер Opera, имеющий, как и Mozilla, версии для нескольких платформ, в том числе для Linux и Windows. Кроме того, в библиотеках языков программирования, поставляемых с Linux, присутствуют все компоненты, необходимые для создания собственного браузера.

Особняком стоят текстовые браузеры Links и Lynx, позволяющие просматривать Web-документы в терминальном режиме. Они не поддерживают такие наиболее интеллектуальные функции графических браузеров, как JavaScript, стили CSS и проч. Lynx не умеет даже показывать таблицы — он предоставляет только базовую функциональность. В отличие от него, Links обрабатывает таблицы, а сейчас даже появился вариант для работы с графикой в текстовом виде, но пока эта возможность достаточно примитивна. Принцип прост — картинки преобразуются в формат PNG (текстовое представление изображения) и отображаются в сильно упрощенном виде. Тем не менее этими браузерами можно пользоваться при работе на серверах, лишенных собственного монитора, — к ним можно подключаться только в терминальном режиме, например через команды telnet. Развитие их видится достаточно простым: либо новая небольшая функциональность, либо исправление ошибок.

Важная характеристика для Web-браузера — поддержка различных спецификаций консорциума W3C, разрабатывающего стандарты для Web. Так, лидером по поддержке различных сценариев DHTML стал браузер Mozilla, где реализованы практически все необходимые технологии. В частности, Mozilla версии 1.2 способен читать все сценарии, в том числе и разработанные специально для Internet Explorer. Причем все браузеры для Linux более полно, чем Internet Explorer, поддерживают стандарт на каскадные таблицы стилей CSS2. Впрочем, в Linux можно работать и с Internet Explorer — в эмуляторе Windows, называемом wine.

О браузере Opera

Коммерческий браузер Opera, построенный на собственном ядре, имеет определенные достоинства, например обеспечивает поддержку нескольких платформ. Основной же его недостаток — закрытый стиль разработки. В результате Opera интегрируется вовсе не любым из дистрибутивов Linux, а в некоторых случаях в нем могут возникать проблемы со шрифтами и внешними библиотеками. Дело в том, что Opera базируется на библиотеке Qt, на которой построен и KDE, но сам браузер не является частью KDE. Причем если Opera устанавливается с несовместимой версией Qt, то она не запустится. При статической сборке все работает нормально, но объем, занимаемый браузером, увеличивается. В общем, работать с браузером Opera рекомендуется лишь опытным пользователям, способным адаптировать его к своей версии операционной системы.

Сейчас этот браузер собирают для работы с такими наиболее известными версиями дистрибутивов Linux, как Red Hat, SuSE и Mandrake, однако при их обновлении потребуется обновить и Opera. Хотя браузер и более компактен, но по скорости рендеринга он ненамного превосходит более «тяжелый» Mozilla. К тому же все, что есть в Opera, сейчас перенесено и в Mozilla, хотя некоторые функции, вроде поддержки групп, впервые были реализованы в Opera. Однако пока непонятно, в каком направлении будет далее развиваться Opera.

О браузере Konqueror

Браузер Konqueror

Разработчики Konqueror стремились приблизить его внешний вид к Internet Explorer. Он хорошо интегрирован в KDE и выполняет в этой оболочке функции не только браузера, но и навигатора по локальной и удаленным файловым системам. Следовательно, возможности KDE без Konqueror будут сильно ограничены. Собственно, так же обстоит дело с Internet Explorer и Windows. Аналогично устроено и приложение Nautilus, работающее в среде GNOME и обычно выполняющее функции файлового менеджера. Однако, если необходимо, Nautilus справится и с просмотром HTML-документов, и с работой с Web. Причем Nautilus построен на базе Gecko, а Konqueror может использовать как собственное ядро, так и Gecko. К браузеру Konqueror можно подключать дополнительные модули (plug-in) Netscape 4.x и Mozilla.

Поскольку Konqueror — составная часть KDE, то вместе с этой средой его и следует применять. Когда KDE уже запущена, то Konqueror займет не очень много оперативной памяти. Но если пользоваться другими оконными менеджерами, то при запуске Konqueror инициируется и вся KDE целиком. И тогда этот браузер теряет свое основное преимущество — компактность. Значит, можно считать Konqueror идеальным браузером для работы в среде KDE, а вот в случае применения других оконных менеджеров его преимущества будут уже не так очевидны.

Konqueror отличается уникальным способом поддержки среды Java, которая не интегрирована с ним и вызывается как отдельное приложение. Это большое преимущество Konqueror по сравнению с Mozilla, который компилируется вместе с Java. А поскольку последние версии Mozilla собирались новой версией компилятора gcc 3.2, то этот браузер пока еще не может пользоваться разделяемой средой Java, поставляемой самой Sun. Дело в том, что программы, созданные gcc 2.x и 3.x, бинарно несовместимы. Данная проблема существует в последней версии Red Hat, SuSE и других дистрибутивах, разработчики которых ждут, когда же Sun соберет среду Java на новой версии компилятора gcc.

О семействе Mozilla

Браузер Mozilla

Технология, появившаяся на свет при разработке Mozilla, породила в свою очередь целое семейство браузеров, построенных на ядре Gecko. История Gecko началась тогда, когда Netscape открыла код своего коммуникатора. Этот код очень долго переписывался, и в конце концов получился браузер. Mozilla стал сильно технологически отличаться от Netscape 4.x. Данный проект привлек большое количество разработчиков, создающих продукты для разных платформ, а именно Linux, Solaris и др. Тогда-то и возникла идея отделить ядро браузера от графического интерфейса. В результате подобного решения появилось ядро Gecko, которое стали использовать в своих проектах сторонние разработчики.

Браузеры, построенные на базе ядра Gecko, наиболее полно соответствуют стандартам консорциума W3C. Да и само это ядро изначально разрабатывалось для самой полной поддержки стандартов Web, включая CSS, CSS2, HTML, DHTML и различные варианты XML, в частности MathML. Следовательно, любой документ, попадающий в Gecko, преобразуется в XML, т. е. в DOM-объект. Таким образом, Mozilla оказался довольно объемным — в оперативной памяти он занимает около 20 Мбайт. Впрочем, и все остальные приложения, построенные на Gecko, требуют примерно такого же объема памяти, хотя и отличаются от Mozilla ограниченными функциональными возможностями и упрощенной архитектурой.

Сам Mоzilla хорош тем, что он работает как в среде Windows, так и в Linux. Разница между версиями Mozilla для разных ОС практически незаметна. Кроме того, в Mozilla по умолчанию интегрированы различные дополнения, такие как почтовый клиент, календарь, простенький редактор сайтов и даже отладчик JavaScript. Есть также возможность просматривать страницы группами, и значит, позволительно размещать в одном окне несколько сайтов и переключаться между ними с помощью «горячих» клавиш. У Mozilla имеется боковая панель, которая помогает выполнять заранее определенные действия. Кроме того, боковые панели динамически обновляются, что позволяет отслеживать новости или просматривать сайты в интерактивном режиме. А разработать приложения для боковой панели Mozilla способен даже начинающий пользователь.

В Mozilla можно запретить загрузку изображений и сохранение идентификаторов «пирожков» с внешних сайтов. Под такое ограничение попадают все баннеры и счетчики. Допускается также отключить всплывающие окна, чтобы блокировать различные рекламные службы, но это порой мешает просматривать сайты. Для Mozilla существуют дополнительные модули всевозможных типов, за исключением VRML. В частности, компания Adobe cоздала модуль для поддержки векторной графики SVG, которая является подмножеством XML и содержит JavaScript. Причем, в принципе, есть также модули, написанные только для Gecko, их позволительно использовать и в других браузерах на этом же ядре. Постепенно аналогичные возможности появляются и у браузера Konqueror.

Еще один модуль расширения — plugger, позволяющий по типу файла загрузить в интерфейс Mozilla любую внешнюю программу. Этот модуль предназначен в основном для просмотра мультимедийной информации, но может быть использован и для других целей. Например, для просмотра файлов формата PDF можно использовать программу xpdf совместно с plugger. При переходе по ссылке на PDF-файл его отображение, подготовленное программой xpdf, будет показано прямо в окне браузера. Приложение, запущенное таким способом через plugger, становится объектом Mozilla.

Уникальная особенность Mozilla — специальный язык для программирования графического интерфейса, называемый XUL (читается как «ксул»). Он является смесью JavaScript и XML. Именно этот язык и делает Mozilla средой для разработки Web-приложений, работающих на нескольких платформах. XUL — интерпретируемый язык, и потому он работает довольно медленно. Тем не менее с помощью XUL можно полностью изменить интерфейс Mozilla, в частности, календарь полностью написан на XUL. Кроме того, в Mozilla встроены минимальные средства разработки Web-приложений — редактор HTML и отладчик, помогающий проверять дерево DOM-объектов, работу Java и JavaScript.

Mozilla — открытый продукт, и следовательно, разработчикам Web-приложений разрешается вносить в него свои изменения. Для этого нужно сообщить в систему контроля ошибок замеченные проблемы, регистрируемые специальным членом команды разработчиков, который занимается только ошибками. Он устанавливает класс ошибки, ее сложность и срок исправления. Потом исправление поручается конкретному разработчику, и с ним всегда можно связаться и договориться о коррекции.

В группе Mozilla недавно появился новый браузер — Phoenix, входящий в дерево разработки Mozilla. По сути, он вынесен из состава Mоzilla. В свое время подобное обещала сделать еще Netscape, но ей удалось реализовать данное намерение только сейчас. Так же как и Mozilla, он многоплатформный и имеет поддержку XUL. Пока у него немного отличий от Mozilla, как-то: отсутствуют дополнительные приложения, а также есть модуль настроек кнопок и средства оформления интерфейса. Следующие версии Phoenix будут отличаться от Mozilla сильнее, поскольку группы разработки этих браузеров преследуют разные цели. Mozilla позиционируется как среда разработки Web-приложений, а Phoenix — как браузер для пользователей. Раньше им приходилось ставить всю среду Mozilla целиком, а сейчас можно установить только браузер.

Браузер Galeon, построенный на базе Gecko, написан с использованием библиотек GNOME, поэтому для него действительна текущая тема оформления GNOME. На Gecko также основан браузер SkipStone, разрабатывавшийся как самый простой браузер на основе этого ядра, к тому же базирующийся на еще более низкоуровневой библиотеке GTK+. Однако сейчас оба они развиваются весьма слабо.

О дальнейшем развитии браузеров

В настоящее время Linux ожидает очередного обновления в связи с выпуском новой версии библиотеки отображения шрифтов — XFT2. Эта низкоуровневая библиотека используется как в KDE, так и в GNOME. В ней, в частности, реализовано сглаживание шрифтов Type1, благодаря чему внешне все программы Linux будут еще более похожи на программы Windows, где сглаживание используется уже достаточно давно. Свободно распространяемых шрифтов Type1 достаточно много. Впервые библиотека XFT2 появилась в дистрибутиве Red Hat 8, выпуск которого был приурочен к выходу ее следующей версии. Кроме того, вышли новые версии GTK и GNOME, также сильно измененные и дополненные новыми функциональными возможностями. Все приложения Linux, включая браузеры, сейчас переписываются с поддержкой этих нововведений, что улучшит их внешний вид.

В основном развиваются браузеры Konqueror и Mozilla, причем в последнем идет дальнейшее улучшение поддержки стандартов W3C. Пока ни один из браузеров не реализовал в полной мере все возможности CSS2, но Mozilla максимально близко подошел к этой цели. Разработчики стандартов предусмотрели такие особенности, реализовать которые будет достаточно сложно. Например, стандарт позволяет накладывать спецэффекты на текст или озвучивать определенный фрагмент документа. Кроме того, разработчики всех браузеров стремятся реализовать запросы пользователей, в том числе и исправляя ошибки. Поскольку основные браузеры доступны в исходных кодах, то и совершенствуют их множество программистов, благодаря чему функциональные возможности этих продуктов стремительно расширяются.

ОБ АВТОРЕ

Валерий Коржов — обозреватель еженедельника ComputerWorld. C ним можно связаться по адресу: oskar@osp.ru.