Блеск и нищета некоммерческих UNIX

Константин Пьянзин
LAN/ЖУРНАЛ СЕТЕВЫХ РЕШЕНИЙ #11/99

Роль и место некоммерческих UNIX в информационной системе. Некоторые характеристики RedHat Linux 6.1, Linux Mandrake 6.1 и FreeBSD 3.3.

В предыдущем номере LAN мы рассматривали коммерческие версии UNIX для платформы Intel. В этом же обзоре мы намереваемся поговорить о самых популярных некоммерческих версиях UNIX для той же платформы, об их основных функциональных возможностях, плюсах и минусах использования в информационной среде.

Среди свыше десятка имеющихся в мире некоммерческих ОС наибольшей известностью пользуются Linux, FreeBSD, OpenBSD, NetBSD, GNU Hurd, Minix, Cynus, FreeDOS, Freedows, BPMK, VSTa. Многие из этих ОС работают не только на платформе Intel, но и на платформах SPARC, PowerPC, Alpha и других. Несмотря на такое разнообразие некоммерческих систем, широкой популярности добилась, пожалуй, лишь ОС Linux, лавинообразный всплеск интереса к которой наблюдается как со стороны пользователей, так и со стороны разработчиков. Второе место по популярности, правда, с большим отставанием, занимает система FreeBSD. Исходя именно из этих реалий, для рассмотрения возможностей бесплатных ОС мы выбрали Linux и FreeBSD, причем в качестве дистрибутивов Linux были взяты RedHat Linux и Linux Mandrake.

Следует сразу оговориться, что тестирование операционных систем проводилось лишь для определения их совместимости с различным аппаратным обеспечением и оценки удобства и возможностей администрирования и работы пользователей. Тесты выполнялись на пяти разных компьютерах, начиная от совсем старой машины с 486-м процессором до суперсовременной модели с Pentium III.

Измерения производительности не проводились, поскольку такие замеры очень часто носят тенденциозный и однобокий характер, да к тому же требуют больших затрат. Система, показывающая лучшие результаты в тестах, нередко оказывается не самым удачным выбором в конкретной информационной среде.

ДИСТРИБУТИВЫ

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

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

Когда речь идет о какой-то конкретной версии операционной системы Linux, то фактически подразумевается версия ядра этой системы. Ядро Linux разрабатывается централизованно, под руководством ее отца-основателя Линуса Торвальдса. В принципе, поскольку ядро для Linux поставляется в исходных кодах, модернизировать его не возбраняется никому, но официальные версии выпускаются Торвальдсом.

Совсем другая ситуация с дистрибуцией Linux. Каждый дистрибьютор на основе ядра волен составлять свой комплект программ, большая часть которых - это бесплатные или условно-бесплатные приложения. Нередко для удобства работы и администрирования системы дистрибьюторы добавляют свои собственные разработки. Ряд дистрибьюторов включает в пакеты коммерческие приложения. Кроме того, дистрибьюторы отвечают за разработку процедуры инсталляции системы и начальной загрузки, комплектацию документации и т. д. В результате дистрибутивы имеют настолько значительные отличия, что порой трудно говорить об единой системе. Самыми известными дистрибутивами Linux являются RedHat Linux, Caldera OpenLinux, Debian GNU/Linux, Slackware Linux, S.u.S.E., Linux Mandrake.

На главном сервере разработчиков Linux (http://www.linux.org) можно найти сведения о двух десятках дистрибьюторов, но там перечислены только крупные компании. На самом деле число дистрибьюторов гораздо больше, во многих странах, в том числе и в России, имеются национальные дистрибьюторы. Правда, все они используют в качестве основы один из известных дистрибутивов.

Многие ведущие дистрибьюторы поставляют свои системы на коммерческой основе, причем цена дистрибутива колеблется от 40 до 200 и более долларов (цена зависит не только и не столько от размера дистрибутива, сколько от наличия коммерческих приложений). Вместе с тем практически все дистрибьюторы имеют серверы, с которых любой желающий может переписать дистрибутив или поставить ОС удаленно.

Чтобы разговор о Linux был более предметным, для тестирования мы выбрали самый популярный дистрибутив - RedHat Linux, поставляемый компанией RedHat Software. По статистике ему принадлежит более 50% рынка. В начале октября 1999 года компания выпустила версию RedHat Linux 6.1, которую мы и решили протестировать.

Также нам захотелось присмотреться и к хиту сезона - Linux Mandrake, тем более что за свою недолгую историю он уже успел завоевать признание многих поклонников и получить самые престижные награды сообщества Linux. На самом деле Mandrake является клоном RedHat, предоставляющим более удобные средства для работы и администрирования. Для тестирования мы выбрали версию Linux Mandrake 6.1, появившуюся в начале октября 1999 г.

Дистрибуцией FreeBSD, в отличие от Linux, занимается фактически только одна организация - Walnut Creek (http://www.cdrom.com). Если быть абсолютно точным, дистрибуцией занимается несколько компаний, поскольку FreeBSD является некоммерческой ОС, поставляемой в исходных кодах. Поэтому любая организация, группа людей или отдельные лица могут изготавливать и распространять дистрибутивы FreeBSD, но погоду на этом рынке делает Walnut Creek. Для тестирования был взят самый последний дистрибутив - FreeBSD 3.3, вышедший в сентябре 1999 года.

Выбор операционной системы и даже отдельного дистрибутива - это вопрос скорее даже не вкуса, а религии. Сторонники различных ОС ведут между собой локальные и глобальные войны, где наряду с легким оружием (наподобие "мне нравится это и не нравится то") применяется и тяжелая артиллерия (результаты тестов и ссылки на корифеев информатизации). Даже среди поклонников Linux периодически возникают ожесточенные споры, какой дистрибутив лучше. Одни отдают предпочтение RedHat, другие - Slackware. Нередко нелюбовь объясняется лишь элементарным незнанием конкурентов или предвзятым к ним отношением. Одной из главных причин выбора дистрибутивов RedHat, Mandrake и FreeBSD было то, что я с ними хорошо знаком, более того, они активно используются в издательстве "Открытые системы" для предоставления сетевых сервисов.

Мне крайне не хочется ввязываться в "религиозные" войны, однако, высказывая то или иное суждение об ОС, любой человек попадет под шквал уничижительной критики. Но это неизбежное следствие любой попытки описания или сравнительного анализа систем.

Первая проблема, с которой мы столкнулись, - это где взять дистрибутивы. У нас имелись дистрибутивы RedHat Linux 6.0, Mandrake 6.0 и FreeBSD 3.0, но хотелось проверить в работе самые последние версии.

На первый взгляд самым простым и дешевым способом получения дистрибутивов является их покупка на радиорынке. Я специально посетил два московских радиорынка: "Митинский" и "Царицынский". Сплошной обман - так можно охарактеризовать работу распространителей дистрибутивов. Лицензия GNU (точнее, ее своеобразная интерпретация) может сыграть с пользователями злую шутку. На лотках можно увидеть RedHat 6.01, RedHat 6.02, RedHat 6.1, RedHat 6.2, RedHat 6.5 и т. д. Только номера версий - не более, чем надувательство. Все они на самом деле были дистрибутивами RedHat Linux 6.0, иногда дополненными не очень существенными программками. Венцом "самопального" творения оказалась коробка с надписью "Дистрибутив RedHat 6.1" - на поверку же это оказался всего лишь RedHat 5.2. Наживы ради распространители готовы "нарисовать" на коробке любое число. Я уже не говорю о том, что, в отличие от настоящего дистрибутива, включающего от двух до четырех и более CD-ROM, "пиратский" дистрибутив состоит лишь из одного CD-ROM. Между прочим, рынок довольно оперативно реагирует на изменение интереса к различным дистрибутивам Linux. Если год назад без труда можно было найти Yggdrasil Linux, TurboLinux, Caldera OpenLinux и другие, то сейчас в основном торгуют RedHat Linux и Mandrake.

Истратив изрядное количество денег на покупку последних "дистрибутивов", мне пришлось оставить эту затею. В этой связи покупка дистрибутивов у солидных распространителей представлялась более привлекательной альтернативой. Например, дистрибутивы некоммерческих UNIX можно заказать на сервере http://www.vinchi.ru. Однако, как выяснилось, новые версии местных дистрибьюторов выходят с неприемлемой задержкой, и на момент написания статьи дистрибутивы RedHat 6.1, Mandrake 6.1 и FreeBSD 3.3 у них отсутствовали.

В конце концов, дистрибутивы пришлось переписывать по Internet, затратив на это уйму времени. Кстати, дистрибьюторы значительно облегчили процесс получения дистрибутивов: сейчас они в обязательном порядке размещают образы (image) CD-ROM на серверах. Их остается только скачать и нарезать записываемый компакт-диск.

КАК ОЦЕНИТЬ ВОЗМОЖНОСТИ ОС

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

Что касается серверов, то они различаются как по функциональному назначению, так и по масштабу решаемых задач.

По своему назначению серверы делятся на следующие основные виды:

В зависимости от количества обслуживаемых пользователей серверы принято делить на несколько уровней: уровень рабочей группы, уровень подразделения и корпоративный уровень.

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

Те же самые требования, правда, в не столь жесткой форме, предъявляются и к настольным системам. Однако у них имеются и свои специфические особенности. Говоря об использовании настольных операционных систем, очень важно знать, для каких пользователей и каких задач данная система лучше подходит. Это могут быть и обычные офисные задачи, наподобие ввода текстовой информации или сканирования изображений, и инженерные задачи, например расчеты или автоматизированное проектирование (САПР), и узко специфические задачи вроде сетевого управления. Понятно, что в случае офисных задач требования в отношении удобства работы должны быть самыми высокими, поскольку именно ими занимается абсолютное большинство пользователей, в том числе ничего не смыслящих в архитектуре ОС.

При оценке той или иной ОС необходимо также учитывать доступность и разнообразие программного обеспечения, наличие качественной документации, простоту инсталляции и первоначальной настройки, сопровождение системы и ПО.

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

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НЕКОММЕРЧЕСКИХ UNIX

Все некоммерческие UNIX комплектуются, в общем-то, одними и теми же программами.

Когда говорят о Linux и FreeBSD, то их часто рассматривают в контексте проекта GNU. Разработанный в рамках проекта GNU программный продукт обязательно должен поставляться вместе с исходным кодом, причем любой желающий может его исправить и модернизировать. За распространение продукта разработчик или дистрибьютор имеет право брать деньги, хотя продукт нередко распространяется бесплатно. Эта концепция лежит в основе лицензионного соглашения, называемого GNU General Public License (GPL).

Чтобы устранить препятствия для широкого распространения продуктов GNU, инициативная группа движения GNU ввела еще один тип лицензий - GNU Library General Public License (LGPL). Согласно GNU LGPL коммерческие продукты, не подпадающие под условия лицензии GNU GPL, тем не менее могут использовать Си-библиотеку GNU.

Распространение ядра Linux осуществляется в соответствии с лицензией GNU. В то же время ядро FreeBSD распространяется по лицензии Berkley, которая не оговаривает обязательного предоставления исходных кодов.

Что касается включаемых в дистрибутивы программ, то они подпадают под самые различные лицензионные соглашения. Значительная часть программ соответствует лицензиям GNU. Отдельную категорию составляют бесплатные (freeware) продукты, поставляемые в исходных кодах, но не имеющие никакого отношения к GNU; в частности, разработчик может запрещать взимание денег за их распространение. Некоторые программы (например, популярная программа обработки изображений xv) относятся к категории условно-бесплатных (shareware), за использование которых, в принципе, надо платить. Кроме того, некоторые бесплатные программы (в частности, Netscape Communicator) не поставляются в исходных кодах. Наконец, в оригинальные дистрибутивы нередко включаются коммерческие продукты, распространяемые по обычным для компьютерной индустрии правилам.

Для некоммерческих UNIX доступно огромное количество программ, как некоммерческих, так и коммерческих. Любой дистрибутив содержит несколько сотен приложений, а в Internet их количество исчисляется тысячами (по некоторым подсчетам, число программ для Linux доходит до пяти тысяч).

Для некоммерческих UNIX можно найти продукты почти на все случаи жизни: для предоставления сервисов Internet, для офисных работ, для файлового сервиса и сервиса печати (в том числе с помощью эмуляции сетевого сервиса LAN Manager/Windows и NetWare), сервиса удаленного доступа и многого другого.

Какие приложения для некоммерческих UNIX отсутствуют, определить очень непросто. Дело в том, что благодаря всплеску интереса к Linux со стороны независимых разработчиков ПО каждую неделю появляются все новые и новые продукты. Кроме того, ориентироваться в таком громадном количестве программ невероятно трудно, из-за чего можно легко ошибиться, заявив об отсутствии продуктов той или иной категории, тогда как в действительности они существуют.

Тем не менее специалисты указывают на нехватку программных продуктов корпоративного уровня, в частности мощных СУБД, систем планирования корпоративных ресурсов и управления производством, систем управления сетью, систем резервного копирования для гетерогенных сетей, систем управления документами и документооборотом, служб каталогов корпоративного уровня и т. д.

Что касается настольных приложений, то для Linux отсутствуют:

Кроме того, имеющиеся офисные приложения слабо совместимы со ставшим стандартом де-факто пакетом Microsoft Office.

Следует иметь в виду, что абсолютное большинство некоммерческого ПО доступно не только для Linux и FreeBSD, но и для коммерческих UNIX, за что честь и хвала сторонникам GNU. Недаром идейный вдохновитель движения GNU Ричард Столлман не устает повторять, что GNU - это не Linux. Иначе говоря, разработчики GNU не ограничивают себя рамками некоммерческих ОС. Таким образом, пользователи коммерческих UNIX не чувствуют себя сколько-нибудь обделенными по сравнению с Linux.

ПРОБЛЕМЫ РУССКОГО ЯЗЫКА

Специфической проблемой некоммерческих UNIX для России остается слабая поддержка русского языка. И хотя поддержка реализована гораздо лучше, чем в коммерческих UNIX, но тем не менее она уступает имеющейся в Windows.

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

Исторически сложилось так, что поддержка русского языка - это настоящее проклятие программного обеспечения. Наши местные горе-программисты и разработчики стандартов вместе с западными производителями ПО сделали все возможное, чтобы максимально затруднить жизнь российским пользователям. При всем желании нельзя отыскать другого примера, чтобы для отображения национального языка применялось более десяти различных и несовместимых кодировок. Каждая из систем - Windows, MS-DOS, MacOS, UNIX, MVS - имеет свой набор русских кодировок. Если коммерческие UNIX ориентированы на кодировку ISO8859-5, то в некоммерческих UNIX используется главным образом KOI-8.

В режиме консоли (текстовый режим) некоммерческие UNIX русифицировать достаточно просто, о чем можно прочитать в сопроводительной документации HOWTO и на многочисленных серверах Internet. Вся процедура состоит в загрузке шрифта и переключателя клавиатуры, причем он обычно активизируется нажатием клавиши <Caps Lock>. Ряд программ, в частности Midnight Commander, работает в локализованном режиме, для чего пользователю необходимо настроить переменные локализации (LANG и другие). Тем не менее множество унаследованных программ не поддерживает даже русификацию.

В графическом режиме лучше всего использовать оболочки KDE и GNOME, поскольку они по большей части локализованы. В этом смысле особенно хороша оболочка KDE, поскольку в ее состав изначально входит переключатель клавиатуры kikbd. Тем не менее в X Window System (X11), поверх которой запускаются графические оболочки, пользователи могут столкнуться с рядом проблем. Дело в том, что при нажатии клавиш X11 транслирует их скан-коды в промежуточные символы keysym, которые и передаются приложениям. Используемая для русского языка таблица XK_CYRILLIC задействует три полубайта (коды 0x6ad-0x6ff). Эти символы понимает большинство приложений X11, но, к сожалению, далеко не все. Такие популярные программы, как Star Office, Maxwell, klyx, Gxedit, отказываются обрабатывать символы XK_CYRILLIC. Поэтому в X11 для "нестандартных" приложений вводится так называемая "хакерская" раскладка, когда для ввода русских символов применяется таблица XK_LATIN1, задействующая только два полубайта (коды 0x20-0xff). Таким образом, для работы с русским языком в X11 приходится использовать переключатель с тремя раскладками (латинской, основной кириллической и хакерской кириллической). Такой режим, в частности, поддерживает уже упоминавшийся kikbd. Другие переключатели клавиатуры можно отыскать на серверах российских любителей некоммерческого ПО. Мне, например, понравилась программа для русификации Linux kkb компании IPLabs (http://www.iplabs.ru/Linux). Тем не менее ряд программ не понимает русского языка в принципе, хотя число их невелико.

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

Огорчение вызывает невысокое качество и ограниченный выбор русских шрифтов для X11. Кроме как в UNIX, кодировка KOI8-R нигде больше не применяется, поэтому профессиональные разработчики шрифтов не торопятся восполнить пробел.

Проблемы возникают и при использовании некоммерческих UNIX в качестве файловых серверов, серверов печати или серверов удаленного доступа. Например, если ресурсами сервера вынуждены одновременно пользоваться компьютеры с Windows, MacOS и UNIX, то это приводит к настоящей чехарде не только с содержимым, но и с именованием файлов.

ДОКУМЕНТАЦИЯ

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

В некоммерческих UNIX документации очень много, и представлена она в самых различных форматах: страницы man, HOWTO, FAQ, PDF, Info, HTML, текстовые документы и т. д. Вместе с тем какая-либо система в организации и размещении документов отсутствует напрочь. Документы по отдельным продуктам находятся в самых разных местах, порой совершенно неожиданных, в том числе и непосредственно в исходных кодах или файлах конфигурации программ. При освоении того или иного приложения много времени уходит на один только поиск документации.

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

Часть документов просто-напросто устарела и не имеет никакого отношения к текущим версиям дистрибутива. Характерным примером может служить документ Cyrillic-HOWTO, датированный апрелем 1998 г. и объясняющий порядок русификации Linux; этот документ способен только ввести пользователя в заблуждение.

В некоммерческих UNIX возможность поиска по всему комплекту документации отсутствует, что также не добавляет ему привлекательности.

Невысокое качество документации является изначальной и неизбежной чертой некоммерческих UNIX, поскольку продукты (и документацию) для них пишут совершенно разные люди, и централизовать этот процесс нет никакой возможности. Вместе с тем стоит отметить, что подготовленные непосредственно дистрибьюторами руководства по инсталляции и начальной настройке системы написаны очень толково.

По качеству документации некоммерческие UNIX серьезно уступают своим коммерческим конкурентам, хотя, как мне кажется, документация в Linux и FreeBSD гораздо полезнее, чем в Windows NT.

Но, как говорил Дик Брандон, документация подобна сексу: просто великолепно, когда она хороша; но если даже она несовершенна, то это все же лучше, чем ничего.

LINUX 2.2.x

Операционная система Linux ведет свою историю с 1991 г., когда никому не известный студент из Хельсинки Линус Торвальдс начал разрабатывать свою версию UNIX-подобной операционной системы. Она была написана, что называется, с нуля - автор не использовал код оригинальных версий UNIX. Вместе с тем в архитектуре Linux и, особенно, в средствах системного администрирования и комплектования документации четко прослеживается влияние BSD UNIX. Кроме того, многие дистрибутивы имеют процедуру начальной загрузки, характерную для AT&T UNIX.

За прошедшие годы ОС Linux прошла впечатляющий путь от любительской системы до платформы, с которой вынуждены считаться гранды компьютерной индустрии. Если не углубляться в детали, Linux представляет собой устойчивую многопользовательскую, многозадачную операционную систему с поддержкой многопроцессорных и кластерных конфигураций, хотя в настоящий момент такая поддержка еще недостаточна для корпоративных решений.

Ядро Linux является модульным, хотя пользователи могут скомпилировать и монолитное ядро. При создании модульного ядра пользователи имеют возможность указать, поддержка каких устройств будет реализована непосредственно в составе ядра, а каких - в виде загружаемых модулей. Модульная структура позволяет задействовать минимальный объем оперативной памяти. Обратной стороной медали являются накладные расходы на первоначальную загрузку модулей.

Ядро Linux неплохо подходит для однопроцессорных вычислительных систем, но гораздо хуже - для многопроцессорных и особенно кластерных конфигураций. Преимущества Linux состоят прежде всего в бесплатности системы и ее нетребовательности к аппаратному обеспечению, но никак не в техническом совершенстве архитектуры ядра. Здесь мне представляется уместным привести слова одного из создателей UNIX - Кена Томпсона: "Не думаю, что его [Linux] ожидает большой успех. Я видел исходные тексты, там есть как вполне приличные компоненты, так и никуда не годные... Microsoft выпускает не слишком надежные программные продукты, но Linux хуже их". Возможно, Кен чересчур категоричен, но подобную реакцию доводилось наблюдать и со стороны других специалистов, мнение которых никак нельзя считать предвзятым.

Среди прочих недостатков ОС Linux можно отметить поистине убогую файловую систему ext2. Размер файлов ограничен 2 Гбайт, что явно недостаточно для корпоративных приложений. Средства протоколирования и поддержка списков контроля доступа (ACL) отсутствуют, что также не повышает привлекательность Linux как основы для серьезных сетевых решений. По этим показателям Linux проигрывает не только мощным UNIX на платформе RISC, но и коммерческим UNIX на платформе Intel, а также Windows NT и NetWare.

Полгода назад компания SGI объявила о начале разработки журнальной файловой системы для Linux, но пока непонятно, как ее собираются реализовать и сколько она будет стоить для конечных пользователей. Раз уж речь зашла о компании SGI, я хотел бы упомянуть о следующем любопытном факте: эта компания объявила Linux своей приоритетной ОС. Вместе с тем SGI имеет мощнейшую систему IRIX, причем в том, что касается поддержки корпоративных конфигураций, она даст Linux фору по всем статьям. Вместе с тем в SGI считают, что им по силам довести Linux до уровня IRIX. Спрашивается, зачем же так напрягаться, взяли бы да опубликовали исходные тексты IRIX?

Перечисленные недостатки приводились не для того, чтобы дискредитировать Linux, а чтобы у потенциальных пользователей не было иллюзий, когда речь идет об ответственных приложениях.

Текущая стабильная версия ядра Linux имеет номер 2.2, но в планах уже стоит разработка ядра версии 3, где должны быть ликвидированы узкие места в кластерных конфигурациях, файловых системах и средствах администрирования.

Хотя с точки зрения стабильности и отказоустойчивости ОС Linux сильно проигрывает UNIX на платформе RISC, она вполне конкурентоспособна в сравнении с Windows NT/2000 и NetWare. В принципе, NetWare не является универсальной ОС, и поэтому подобное сравнение не вполне правомерно с точки зрения применения ОС в качестве сервера приложений.

Другое дело - Windows NT/2000, главный претендент на роль системы для серверов приложений. В UNIX графическая оболочка полностью отделена от ядра и работает в режиме обычного приложения, в то время как в Windows NT/2000 графическая подсистема интегрирована в ядро. Для настольной ОС - это немаловажное преимущество, так как такой подход позволяет достичь максимальной производительности на графических операциях. Учитывая более низкую стоимость работающих с графикой программ на платформе NT, преимущество оказывается за NT. Кстати, это подтверждается статистикой продаж: для задач САПР или издательских систем доля UNIX быстро уменьшается.

В случае серверов встраивание графической оболочки внутрь ядра является скорее минусом, чем плюсом, поскольку серверу такое архитектурное излишество не нужно. Графическая подсистема ядра занимает большой объем памяти и снижает общую надежность системы, и по этому отдельному показателю UNIX выигрывает у NT.

В текстовом режиме Linux может функционировать уже при объеме оперативной памяти 4-8 Мбайт - недостижимый показатель для Windows NT/2000. При 32 Мбайт компьютер Linux неплохо справляется с задачами сервиса файлов и печати, но, конечно, чем больше объем ОЗУ, тем лучше и устойчивее этот сервис работает. Максимальный размер оперативной памяти, используемый Linux на платформе Intel, составляет 2 Гбайт, хотя некоторые оригинальные разработки позволят увеличить эту цифру до 4 Гбайт.

Еще одно преимущество UNIX, в том числе Linux, по сравнению с NT заключается во встроенной поддержке удаленного администрирования. Несмотря на наличие решений наподобие Citrix WinFrame или Windows Terminal Server для NT, разве их возможности можно сравнить (по требуемым ресурсам и надежности) с утилитами UNIX?!

Что же касается сопоставления надежности Linux с коммерческими UNIX на платформе Intel, то однозначный ответ здесь получить трудно. Одни считают, что Linux устойчивее коммерческих UNIX, другие верят в обратное. На этот счет можно утверждать лишь то, что "уронить" любую систему на платформе Intel гораздо легче, чем на платформе RISC. Во всяком случае в процессе тестирования у нас "падала" и Linux, и FreeBSD, и SCO UnixWare, и Sun Solaris. Однако это связано скорее всего не со спецификой конкретной ОС, а с изъянами архитектурной модели компьютеров Intel.

В Linux поддерживается разработанная для BSD UNIX система квот, с помощью которой администратор может задавать лимиты дискового пространства для отдельных пользователей. Хотя эта система значительно уступает по своим возможностям имеющейся в NetWare, но по сравнению с Windows NT, которая пока вообще не имеет ничего подобного, это прогресс. Правда, Windows 2000 будет комплектоваться встроенной системой квотирования, так что преимущество Linux здесь временное.

В отличие от других UNIX-подобных операционных систем, Linux более экономно использует область подкачки на диске. Она задействуется Linux только тогда, когда объем свободной оперативной памяти приближается к критической отметке.

REDHAT LINUX 6.1

В настоящее время RedHat работает на платформах Intel (начиная с процессоров 386), Alpha и SPARC, но при рассмотрении мы ограничились только компьютерами Intel. Дистрибутив RedHat Linux 6.1 основан на версии ядра 2.2.12.

Инсталляция системы предельно упрощена, поскольку она осуществляется в графическом режиме. Тем не менее пользователь имеет возможность провести инсталляцию в текстовом режиме.

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

Типы инсталляции подразделяются на серверную конфигурацию, рабочую станцию GNOME и рабочую станцию KDE, а также интерактивный (custom) режим инсталляции. При типе инсталляции "сервер" предварительно уничтожаются все разделы на всех винчестерах, а при типе "рабочая станция" - все имеющиеся разделы Linux. Причем в этих случаях процедура инсталляции сама принимает решение, какое ПО и куда будет установлено. Интерактивный тип инсталляции позволяет гибко управлять всем процессом инсталляции, поэтому, с точки зрения администратора, он - самый привлекательный.

Инсталляция программ происходит очень быстро: на ПК с процессором Pentium II на 400 МГц установка всего дистрибутива (1400 Мбайт) занимает около 16 мин.

Тестовый режим инсталляции практически полностью аналогичен графическому, за исключением того, что если в момент выбора языка инсталляции пользователь указывает русский, то в дальнейшем работать становится совершенно невозможно, поскольку программа установки выдает нечитаемые сообщения.

В RedHat 6.1 значительно улучшена поддержка устройств по принципу Plug'n'Play, но такое улучшение нередко выходит боком. Дистрибьютор сделал ставку на умение системы распознавать устройства Plug'n'Play, при этом она, к сожалению, не предоставляет возможности менять настройки вручную. Так, на одном из компьютеров процедура инсталляции не смогла обнаружить сетевую плату 3Com 509B, и компьютер остался без сетевых настроек. Только после инсталляции, затратив много времени, настройку удалось произвести вручную.

Раз уж затронута тема сетевых настроек в процессе инсталляции, то надо сказать, что ситуация изменилась в худшую сторону по сравнению с RedHat 6.0. Почему-то возможность задания имени домена, куда входит компьютер, более не предоставляется, так что файл /etc/resolv.conf приходится настраивать после инсталляции. Кроме того, список запускаемых по умолчанию в момент загрузки системы демонов теперь нельзя задать в процессе установки ОС.

RedHat допускает инсталляцию ОС со следующих носителей: CD-ROM, винчестеров (IDE, SCSI, PC Card), а также с серверов ftp, NFS и HTTP.

Неприятной особенностью RedHat и Linux в целом являются принципы поддержки оборудования процедурой инсталляции (а фактически - начальным образом ядра). Вот конкретный пример: на одном из тестируемых компьютеров была установлена мощная SCSI-плата компании Initio, все винчестеры имели интерфейс SCSI и были подключены к этой плате. Данная плата поддерживается Linux, но только в качестве отдельного модуля и не в составе исходного initrd. Как следствие, процедура инсталляции не сумела обнаружить ни SCSI-плату, ни винчестеры, и поэтому установка Linux закончилась неудачей. Для устранения проблемы либо SCSI-плату надо заменить на более распространенную, либо все винчестеры поменять на жесткие диски IDE. В принципе, вы можете создать свой initrd, но для этого потребуется второй компьютер.

Проблемы некорректной поддержки оборудования (сетевых плат, SCSI-устройств, звуковых плат, видеоадаптеров и т. д.), в том числе сертифицированного для Linux, можно перечислять еще долго, но я не буду этого делать, чтобы лишний раз не пугать пользователей. Я хотел бы только предупредить: если в компьютере есть несколько устройств ISA с поддержкой Plug'n'Play, то, скорее всего, файл /etc/isapnp.conf придется исправлять вручную.

Несмотря на критику RedHat, я не могу не отметить и его достоинств. В RedHat Linux для повышения удобства работы с системой сделано очень многое - это и прекрасные средства администрирования, и продуманный интерфейс, и простота настроек.

Рисунок 1. Программа GnoRPM реализует возможности RPM в графической среде GNOME.

Главным козырем RedHat является менеджер пакетов RPM. Некоторые специалисты считают, что именно благодаря этой программе компания RedHat сделала себе имя. RPM предназначен для установки, обновления, верификации и удаления приложений из системы. По каждому пакету RPM позволяет получить информацию о назначении, структуре и составе пакета, местонахождении документации и многом другом, а также определить, к какому пакету принадлежит тот или иной файл. Учитывая огромное количество программ для Linux, хорошая программа управления способна серьезно облегчить жизнь администратору. На мой взгляд, по своим возможностям RPM не имеет аналогов как среди некоммерческих, так и среди коммерческих ОС, включая Windows. Кстати, RPM сейчас используется не только в RedHat, но и в других дистрибутивах Linux. Комплекты оболочек GNOME и KDE содержат графические варианты RPM (см. Рисунок 1).

Рисунок 2. Графическая оболочка GNOME.

Основной графической оболочкой в RedHat является GNOME (см. Рисунок 2). Тем не менее в состав дистрибутива входит также оболочка KDE, а кроме того, менеджеры Afterstep, WindowMaker и другие. Однако составители RedHat отдают предпочтение GNOME, поскольку в отличие от KDE она, во-первых, работает с различными менеджерами окон, а во-вторых, не зависит от коммерческих библиотек, т. е. полностью соответствует лицензии GNU.

Еще одной удобной утилитой Linux (не только RedHat, но и других дистрибутивов) является linuxconf (см. Рисунок 3). Эта утилита позволяет управлять большинством параметров системы, в том числе учетными записями пользователей и групп пользователей, сетевыми настройками, службой доменов, файловыми системами, почтовым сервисом и многим другим. Более того, с помощью linuxconf настройки можно менять с любого сетевого компьютера через браузер Web (см. Рисунок 4).

Рисунок 3. Утилита администрирования linuxconf из состава RedHat.

Приятно, что некоммерческая система обладает единой средой управления, почти ничем не уступающей по своим возможностям SCOadmin из состава SCO UnixWare. Единственное, что не под силу linuxconf, так это конфигурирование ядра, настройка принтеров и управление дополнительными приложениями. Еще одним недостатком я бы назвал не очень качественную справочную систему подсказок в linuxconf. Будем надеяться, что положение изменится в лучшую сторону в самое ближайшее время, поскольку linuxconf быстро совершенствуется.

Многие функции linuxconf продублированы в панели управления (см. Рисунок 5), причем, в отличие от linuxconf, панель управления позволяет осуществлять настройки принтеров и управлять загрузкой модулей ядра.

Построить ядро в Linux можно с помощью интерактивной текстовой программы, текстовой программы с системой меню, а также графической утилиты.

Рисунок 4. Управление настройками Linux через браузер Web.

Хотя системные утилиты и структура man (страницы документации) соответствуют спецификации BSD, процедура начальной загрузки init осуществляется согласно спецификации AT&T UNIX. Весьма удобно, что в момент загрузки системы, ее остановки и перехода с одного уровня (runlevel) на другой на консоль выводятся сообщения о работе демонов.

Аутентификация в Linux осуществляется с помощью подключаемых модулей аутентификации (Pluggable Authentication Module, PAM). Система PAM позволяет гибко управлять правами доступа к различным сетевым службам, хотя и считается достаточно сложной.

Еще одна особенность RedHat Linux состоит в том, что в момент загрузки системы в однопользовательском режиме любой желающий может получить права root (т. е. права на все ресурсы системы), даже не зная его пароля.

Рисунок 5. Панель управления RedHat.

Что касается русификации RedHat, то много полезной информации можно почерпнуть на серверах http://www.iplabs.ru, http://www.opennet.ru, http://www.linux.org.ru и других.

LINUX MANDRAKE 6.1

Дистрибутив Mandrake был составлен французским программистом Жилем Дювалем. Он на 100% обратно совместим с RedHat, т. е. любые приложения для RedHat без проблем устанавливаются и запускаются на Mandrake. Номера версий Mandrake, как правило, соответствуют номерам версий RedHat. Текущая версия Mandrake базируется на ядре 2.2.13. Фактически Mandrake - это несколько модернизированный вариант RedHat.

Если RedHat функционирует на всех компьютерах Intel, начиная с процессора 386, а также SPARC и Alpha, то Mandrake работает только на процессорах Pentium и выше.

Следует иметь в виду, что в момент установки RedHat на компьютеры Intel процедура инсталляции тестирует процессор и ставит уже оптимизированное для данного процессора ядро. Однако это не относится к обычным приложениям, так как они остаются настроенными для процессора Intel 386.

В Mandrake абсолютно все приложения скомпилированы для процессора Pentium, и за счет этого их производительность выше на 5-30% по сравнению с RedHat.

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

Рисунок 6. Графическая оболочка KDE.

В отличие от RedHat, где предпочтение отдано GNOME, в Mandrake основной акцент сделан на поддержку графической оболочки KDE (см. Рисунок 6). Графическая оболочка поставляется с удобными настройками и дополнительными утилитами, так что пользователю вряд ли придется затратить много времени на освоение системы. Надо отметить, что многие пользователи некоммерческих UNIX отдают предпочтение KDE, как более мощной, удобной и развитой оболочке, хотя она использует коммерческую библиотеку Qt компании Troll Technologies. Разумеется, комплект Mandrake также включает оболочки GNOME, Afterstep, WindowMaker и другие.

Процедура инсталляции Mandrake 6.1 аналогична процедуре инсталляции RedHat 6.0 (sic) и осуществляется в текстовом режиме. При этом у нас не возникло никаких проблем ни с настройкой сетевых плат, ни с заданием доменов.

Рисунок 7. Средство администрирования linuxconf из состава Mandrake.

Во всем остальном Mandrake 6.1 полностью идентичен RedHat 6.1, и выводы, сделанные относительно RedHat, полностью справедливы и в отношении Mandrake. Единственным исключением, причем приятным, является отсутствие необходимости копаться в настройках русского языка: все заработало сразу и без проблем. Пожалуй, еще одно отличие состоит в более удобном и понятном интерфейсе linuxconf (см. Рисунок 7).

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

FREEBSD 3.3

FreeBSD ведет свою историю от операционной системы 4.4BSD-Lite и поэтому полностью соответствует спецификации BSD UNIX. Начиная с версии 3.0 ОС FreeBSD может работать не только на платформе Intel (с процессором 386 и выше), но и на Alpha.

Для работы FreeBSD необходимо по крайней мере 5 Мбайт оперативной памяти, но это конечно же минимальные требования. FreeBSD поддерживает многопроцессорные конфигурации, но не кластерные, хотя некоторые разработки в области поддержки кластерных технологий и ведутся.

Устанавливать ОС можно с дискет, CD-ROM, винчестеров, со стримера, по ftp и NFS. В самом начале инсталляции ОС, когда выдается меню "Kernel Configuration", выбор режима "Start kernel configuration in full-screen visual mode" позволяет настроить конфигурацию ядра, которое станет основным (GENERAL) для системы.

Тем, кто никогда не работал с FreeBSD, процедура инсталляции может показаться сложной, громоздкой и непонятной, но это только первое впечатление, поскольку в ней есть своя логика. Если выбрать режим установки Novice и строго следовать подсказкам, то проблем обычно не возникает. За процедуру инсталляции в FreeBSD отвечает утилита /stand/sysinstall, поэтому большинство заданных в процессе инсталляции настроек можно без труда поменять после установки системы.

Рисунок 8. Средство администрирования /stand/sysinstall из состава FreeBSD.

На самом деле /stand/sysinstall (см. Рисунок 8) является утилитой администрирования системы, но, к сожалению, она работает лишь в текстовом режиме, выполняет только небольшую часть административных задач и не поддерживает управление через браузеры Web. Мне кажется, что по удобству администрирования FreeBSD серьезно проигрывает не только коммерческим UNIX, но и Linux. Самое печальное, что такая ситуация остается без каких-либо изменений вот уже несколько лет. Конечно, для серверных приложений это не смертельно, но в случае настольного применения удобство администрирования приобретает критически важное значение. Правда, разработчики FreeBSD обычно не позиционируют систему как предназначенную для рынка настольных компьютеров, но и при управлении серверами удобные средства администрирования еще никому не мешали.

Как и предполагалось, инсталляция выявила многочисленные проблемы. Особенно меня удивил уровень поддержки Plug'n'Play, а также совет предварительно узнать конфигурацию оборудования в Windows 9x. Так вот, такой фокус нередко не проходит: как показывает практика, настройки в FreeBSD (и Linux) приходится устанавливать совсем иные, нежели в Windows.

Ядро FreeBSD модульное, но степень "модульности" ниже, чем в Linux. При этом для многих устройств загружаемые модули создать невозможно. Плохо это или хорошо для устойчивости и производительности - сказать сложно, но что гибкость недостаточная, так это точно.

Средства конфигурирования ядра FreeBSD очень неудобны: конфигурационный файл приходится править руками.

В момент загрузки система позволяет получить на консоли права пользователя root, не зная пароля, но такой доступ можно запретить, отредактировав файл /etc/ttys.

В FreeBSD основной файловой системой является UFS, подобная той, что применяется в Sun Solaris. Весьма интересными возможностями обладает менеджер томов Vinum (Vinum Volume Manager, VVM), в частности он позволяет динамически увеличивать размеры томов. FreeBSD не поддерживает списки контроля доступа, но обладает оригинальной системой флагов, с помощью которой администратор может вводить запрет на стирание или изменение файлов на уровне отдельных пользователей. Как и другие UNIX, ОС FreeBSD поддерживает квотирование дискового пространства.

В комплекте дистрибутива FreeBSD поставляются все самые популярные графические оболочки, в том числе GNOME и KDE, а также эмуляторы Linux, SCO UNIX и BSDI BSD/OS, правда, они работают с ограничениями.

Настройка русификации в FreeBSD далеко не тривиальна. Определенную помощь может оказать руководство "FreeBSD Handbook", расположенное в каталоге /usr/share/doc/handbook. Более полную информацию можно почерпнуть на сервере http://www.freebsd.org.ru.

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

Помимо обычной документации по ОС и приложениям в комплект FreeBSD входит прекрасная книга "The Complete FreeBSD", написанная известным специалистом Грегом Лехи. Ознакомившись с ней, любой человек, имеющий элементарные познания в UNIX, сможет без труда освоить систему.

FreeBSD представляет собой одну из самых устойчивых и добротно сделанных систем, мало чем уступающую конкурентам по своим функциональным возможностям.

Однако недостатки дают о себе знать - пользователи и разработчики все чаще оборачивают свой взор в сторону Linux. Как быстро меняются времена! Боюсь навлечь себя гнев почитателей FreeBSD, но так и тянет сказать, что одна из самых распространенных некоммерческих систем быстро сдает свои позиции. И все это из-за нерасторопности разработчиков.

МЕСТО НЕКОММЕРЧЕСКИХ UNIX

Несмотря на впечатляющие успехи в разработке удобных графических оболочек и серьезную поддержку со стороны производителей программно-аппаратного обеспечения, некоммерческие UNIX тем не менее пока имеют мало шансов закрепиться на массовом рынке настольных систем. Для большинства рядовых пользователей Linux и FreeBSD остаются громоздкими и сложными системами, чьи преимущества при работе с настольными приложениями отнюдь не очевидны, а освоение отнимает слишком много времени и сил. Кроме того, высококачественного ПО для этого сектора рынка явно не хватает. В России проблему обостряет слабая поддержка русского языка в UNIX, что нивелирует все потенциальные преимущества системы. Не годятся некоммерческие UNIX и для использования на домашних компьютерах - UNIX далеко не лучшая среда для игровых программ.

Бесплатность Linux и FreeBSD ничего здесь не меняет. На освоение Linux непрофессионалами организации потребуются такие огромные средства, что дешевле будет купить коммерческое ПО. К тому же большая часть пользователей имеет общее представление о Windows, и непонятно, зачем менять шило на мыло. Кто-то скажет - для повышения надежности или производительности. Но для рядовых пользователей это не самое главное, им подавай что-нибудь попроще.

Тем не менее для сетевого администрирования и некоторых расчетных задач использование некоммерческих UNIX может оказаться вполне оправдано. Как говорится, UNIX - это выбор профессионалов.

Что касается применения на серверах, то здесь положение несколько иное, и все зависит от класса решаемых задач. В качестве небольших серверов Internet или серверов удаленного доступа Linux и FreeBSD могут дать фору многим конкурентам. Но из-за некачественной поддержки многопроцессорных и кластерных конфигураций (имеется в виду истинная кластерная конфигурация, с распараллеливанием процессов), отсутствия журнальных файловых систем и других ограничений они пока не могут претендовать на роль корпоративных серверов. То же самое относится к серверам приложений, файловому сервису и сервису печати (в частности, программам samba и mars). На многопроцессорных машинах некоммерческие UNIX по производительности серьезно уступают не только своим коммерческим собратьям, но и Windows NT. Однако в однопроцессорной конфигурации они вполне конкурентоспособны.

Некоммерческие UNIX далеко не бесплатны. Да, конечно, дистрибутивы имеют сравнительно невысокую стоимость, но и тут положение быстро меняется в худшую сторону: цена полного дистрибутива RedHat 6.1 уже достигла 150 долларов - при таких темпах разница в цене между некоммерческими и коммерческими системами скоро исчезнет совсем. Однако по непонятным причинам многие забывают включать в смету расходов затраты на обучение специалистов (которые, кстати, выше, чем для коммерческих ОС), на развертывание системы, ее эксплуатацию, обновления, а также учитывать аналогичные расходы на программное обеспечение, т. е. все то, что на Западе характеризуют термином TCO - т. е. общая стоимость владения.

Я не берусь утверждать, что использование Linux или FreeBSD обходится дороже, чем других систем, - во многих случаях это не так, но к вопросу стоимости надо подходить ответственно, с учетом всех факторов.

ЗАКЛЮЧЕНИЕ

Уже давно не стоит вопрос, есть ли будущее у некоммерческих UNIX. Гораздо больший интерес вызывает проблема их рационального использования. Пока самые лучшие перспективы Linux и FreeBSD имеют на уровне серверов рабочих групп и отделов предприятий. Но со временем все может измениться. Что день грядущий нам готовит?

Константин Пьянзин - обозреватель LAN. С ним можно связаться по адресу: koka@lanmag.ru.