| |
Демоны, пингвины и пользователи. Начнем с пингвинов.
В предыдущей заметке я попытался обосновать мнение, что
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).
|
|