Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Демоны, пингвины и пользователи. Начнем с пингвинов.


Автор: Алексей Федорчук, alv@newmail.ru
Опубликовано: 10.07.2001
Оригинал: http://www.softerra.ru/freeos/11118/


В предыдущей заметке я попытался обосновать мнение, что ONIX-системы нужны народу, хотя и не всему. Однако систем этих - далеко не одна. И вполне возможно, что некоторые их представители нужнее других. Какие? Этот вопрос и будет предметом настоящей заметки.

В первом приближении все многообразие ONIX-систем можно разделить на две линии - Linux и *BSD. С точки зрения формальной это не вполне строго: Linux - единая операционная система со своим ядром и прочими атрибутами. Линия же *BSD объединяет в себе системы, которые рассматриваются как самостоятельные ОС (FreeBSD, OpenBSD, NetBSD), каждая со своим ядром и прочими атрибутами. И которые могли бы выступать в классификации как единицы первого порядка. Однако с позиций пользователя вариации внутри Linux далеко превосходят различия между всеми BSD-системами.

Вообще говоря, при первом взгляде на таких представителей семейства Linux, как Slackware и Corel Linux, мало кому придет в голову, что это одна и та же операционная система. А если вспомнить еще и Red Hat со всеми его отпрысками, и матушку Debian с ее детьми, и корпоративные системы типа Caldera OpenLinux и Suse, и многочисленные Linux-системы для специального применения - руки опускаются при попытке определить, что же между ними общего.

Однако - попробуем. Но для начала - чем различаются различные представители Linux-семейства (т.н. дистрибутивов), ведь "чтобы объединиться, нужно сначала решительно размежеваться", как говорил товарищ Ленин (а, согласно товарищу Сталину, "товарищ Ленин никогда не ошибался" - см. "Контроль" Виктора Суворова).

Можно наметить три критерия для классификации дистрибутивов Linux:

  • файловая система;
  • формат распространения пакетов;
  • средства установки и конфигурирования;
  • комплектация утилитами и приложениями.

Под файловой системой в данном случае понимается структура каталогов - физически файловая система Linux одна, ex2fs. Так вот, это - исторически первое и самое глубокое различие, по которому можно выделить три генеральных линии Linux-систем: Slackware, Red Hat и Debian со всеми их более или менее разошедшимися производными.

Формат пакетов - второй по значимости критерий. По большому счету таких форматов - три: rpm, характерный для клонов Red Hat, deb в производных Debian и tgz, свойственный Slackware.

Следует заметить, что разделение по файловой системе и формату пакетов далеко не всегда совпадает. Так, формат rpm, вследствие простоты использования, широко распространился среди дистрибутивов, не имевших первоначально никакого отношения к RedHat (яркий пример чему - Suse, исторически происходящий от Slackware). Все клоны Debian, правда, насколько мне известно, сохранили верность своему формату. Ну а формат tgz, представляющий собой просто упакованный tar-архив, вообще может поддерживаться любым дистрибутивом. Более того, практически он же используется и в системах линии BSD.

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

  • программы создания дисковых разделов;
  • программы выбора компонентов дистрибутива (утилит и прикладных пакетов);
  • средства настройки X Window;
  • больший или меньший набор пост-инсталляционных утилит (системы настройки печати, удаленного доступа, всяческого оборудования, начальных загрузчиков и т.д.).

Классифицировать дистрибутивы по этому параметру я бы не взялся. Единственно, условно разделил бы средства инсталляции на две группы: автоматизированные, основанные на утилитах собственной разработки, и "ручные", ориентированные на использование общесистемных средств. К первой можно отнести практически все современные и активно развиваемые дистрибутивы - Red Hat, Caldera, Mandrake и многие другие. Верность второй группе сохраняют Slackware и Debian.

Наконец, с точки зрения комплектации дистрибутивы можно разделить на три группы - всеохватные (объемом 4-7 CD-дисков), универсальные (1-3 диска) и специального назначения (от 1-2 дискет до нескольких десятков мегабайт). Впрочем, к этому вопросу я вернусь чуть ниже.

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

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

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

Более того, в последнее время четко прослеживается тенденция выпуска двух (или более) реализаций одной версии одного же дистрибутива: облегченной (в размере 1 CD) и полной (где собрано все, что может понадобиться впредь). В ряде случаев (типичный пример - Caldera OpenLinux) полная реализация доступна в различных вариантах - серверном и настольном.

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

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

Дискуссии эти, однако, постепенно теряют остроту, как мне кажется. Если исключить крайности - полностью автоматический (печальным чему примером - Corel Linux) и сугубо ручной (как в Slackware) режимы, большинство остальных дистрибутивов предлагает некий разумный компромисс между автоматизацией процесса установки и возможностью вмешаться в него руками. Причем обычно степень автоматизации и конфигурируемости - предмет выбора: существуют режимы установки для новичка, эксперта и всякие промежуточные варианты.


Это же можно отнести и к пост-инсталляционному конфигурированию. Я слышал о единственном дистрибутиве, целиком ориентированном на ручную правку конфигурационных файлов - это Rock Linux (впрочем, слышать-то слышал, а вот видеть не приходилось). Во всех остальных имеется более или менее полный (и развитый) набор утилит для автоматизации этого процесса. А в таком дистрибутиве, как Linux Mandrake, есть возможность выполнить (почти) все настройки с единой панели, в стиле Windows. Аналогичная возможность предлагается и в среде KDE. Каковая нынче входит в состав практически любого дистрибутива.

И, наконец, последнее: пользователю (в отличие от сисадмина) не так уж и часто приходится устанавливать систему. Linux - не Windows, и в лечении переустановками не нуждается. А неправильные действия пользователя - что ж, бывает. Однако после второй-третьей переустановки, вызванной собственными ошибками, приобретается вполне достаточный опыт для того, чтобы их избежать.

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

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

Большинство дистрибутивов европейского происхождения или претендующих на звание интернациональных, позволяют выбрать русский язык инсталляционной программы, следствием чего обычно является почти корректная русская локализация. Разумеется, кое-что приходится подправлять вручную (например, установить любимый переключатель раскладок), но необходимости тотальной русификации "с нуля" обычно не возникает.

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

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

Наконец, первый по значимости критерий - структура файловой системы. Пользователь (особенно знакомый не более чем с одним дистрибутивом) не сразу обращает на это внимание. Однако это именно то, что реально может создать проблемы совместимости. Мне известны случаи, когда собранные под Suse rpm-пакеты категорически отказывались устанавливаться под клонами Red Hat, поскольку первая унаследовала файловую структуру Slackware, и ряд существенно важных компонентов системы находится по другим адресам.

Различие структуры каталогов может создать затруднения и при ручной настройки системы: при опыте работы с клонами Red Hat можно затратить немало времени на поиск конфигурационных файлов в Debian.

К тому же вопрос различий основных линий Linux на уровне файловых систем - один из наименее освещенных в литературе (как печатной, так и Сетевой). Что вполне естественно - мало кто владеет этим материалом в полном объеме, так как он требует глубокого знания разных систем.

Тем не менее, непреодолимых проблем нет и здесь. Во-первых, большинство пользователей, если и меняют дистрибутивы, то в пределах одной их линии: приверженец Slackware вряд ли перейдет на Corel Linux, а любителя Debian калачом не заманишь в стан Red Hat. Во-вторых, разобраться в различиях структур каталогов можно, понимая общие принципы построения файловой структуры Unix-систем. И, в третьих, различия все же не так велики, и сказываются только в совершенно определенных случаях.

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

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

Действительно, различия в быстродействии дистрибутивов, оптимизированных под Pentium/Pentium-II и лишенными такой оптимизации, нивелируются заведомо избыточной мощностью практически ЛЮБОЙ современной машины (для настольных приложений, разумеется). И определяются более режимом работы (текстовым или графическим, для последнего же - используемой средой), во-первых, и быстродействием приложений и объемом данных - во-вторых.

Стабильность системы как таковой также более зависит от ядра, нежели от дистрибутива. Что же касается приложений - стабильность их обычно на совести разработчика, во-первых, и на используемых им библиотеках - во-вторых (чему примеров тьму в истории мы сыщем).

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

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

В заключение замечу, что среди всех Linux-систем, виденных мной доныне, идеала (на мой субъективный взгляд) пока не встретилось. Однако наиболее к нему приблизились (на мой субъективный взгляд) Linux Mandrake в русской редакции (очередной версии которой жду с нетерпением) и Slakware. Первая - оптимальный выбор для быстрого вхождения в работу, вторая - лучший объект для изучения ОС Linux как таковой.

Однако не вижу препятствий и к использованию таких систем, как BlackCat, ASPLinux (недавно слившихся воедино), оригинального Mandrake и ряда других. Сравнительное рассмотрение которых с позиций пользователя (хотя и несколько устарелое) приведено в моей книге "Офис, графика, Web в Linux" (СПб: БХВ-Петербург, 2001).