CRUX: основные особенности

Алексей Федорчук

Прежде чем переходить к рассмотрению установки дистрибутива и тем более его практического применения, следует спросить себя: а стоит ли это делать? Это касается любого дистрибутива, но в случае с CRUX’ом вопрос стоит особенно остро. Если, скажем, Zenwalk в принципе может быть рекомендован даже совсем начинающему пользователю, при условии, что тот не поленится прочесть несколько страниц того, Что должен знать каждый, то в отношении CRUX’а такая рекомендация была бы опрометчивой.

Конечно, CRUX — это не Gentoo, напрочь лишённый инсталлятора, где всё надо делать с помощью команд шелла, текстового редактора и чьей-то матери. Но и в нём объем ручной работы достаточно велик, а программа установки выполняет лишь ограниченные функции.

Правда, ничего сверхъестественного в процессе установки CRUX’а нет. И в принципе даже совсем начинающий пользователь, внимательно читающий официальный Handbook (существующий, кстати, и в русских переводах), способен с этой задачей справиться. Особенно если он будет читать руководство до совершения очередных действий, а не после. Однако это имеет смысл только в том случае, если пользователь вникает в смысл выполняемых им операций. Что потребует уже несколько большего углубления в детали, выходящие за рамки краткого пользовательского ликбеза. Впрочем, как раз следующая заметка и будет посвящена не только установке как таковой, но и смыслу совершаемых при этом действий — дабы они были понятны и пользователю почти начинающему.

Тем не менее, Пер Лиден, создавая свой дистрибутив, предназначал его в первую очередь многоопытным пользователям. Тем, кто опробовал немало дистрибутивов, не найдя среди них своего идеала. Не случайно в официальном руководстве по CRUX’у практически не уделяется внимания общим вопросам, таким, как дисковая разметка, создание и монтирование файловых систем и даже компиляция ядра: предполагается, что его потенциальный пользователь уже знаком с этими материями по прежнему опыту, и ему следует уяснить только моменты, специфичные для данного дистрибутива.

Так давайте же посмотрим, что CRUX может предложить многоопытному пользователю такого, ради чего он возьмётся за освоение новой системы.

Если обобщить всё сказанное о CRUX’е его создателем, можно сформулировать следующие основные особенности этого дистрибутива:

  1. компактность (ИМХО, это скорее передаёт смысл употребимого в его отношении lightweight);
  2. актуальность;
  3. система управления пакетами;
  4. простота устройства;
  5. простота использования;
  6. быстродействие.

С точки зрения компактности CRUX непревзойдён: размер образа его установочного диска на протяжении многих версий колеблется от 230 до 260 Мбайт, что при полной установке оборачивается менее чем полутора гигабайтами — ни один полнофункциональный дистрибутив не может похвастаться такой «сухопаростью».

Все входящие в штатный комплект пакеты, общим числом менее 300, разделяются на три категории:

  1. Core — это всё тот же Base Linux;
  2. Xorg — Иксы и всё, что в них включили разработчики оных;
  3. Opt — некий необходимый (но, в отличие от Zenwalk’а, недостаточный) минимум утилит и приложений самого разного назначения, включая оконный менеджер по умолчанию (Openbox) и браузер (FireFox).

Этот набор прекомпилированных пакетов поддерживается официально Пером и командой разработчиков CRUX’а. И за все годы моего знакомства с дистрибутивом не испытывал ни малейшей тенденции к расширению — разве что отдельные приложения заменялись своими аналогами. Так, в роли оконного менеджера (единственного в комплекте) ранее играл WindowMaker.

Строгий отбор пакетов — одна из причин неизменной компактности CRUX’а. Вторая — безжалостное освобождение от всего балласта. Так, в дистрибутиве нет никакой документации, кроме man-страниц: всякого рода info, docbook и прочее безжалостно изымается из пакетов при их сборке. Нет штатно и NLS — предполагается, что многоопытный пользователь за время своего общения с более иными дистрибутивами изучил английский язык в объёме, достаточном, чтобы отличать mount от umount’а. Подчеркну ещё раз, что Пер Лиден — вовсе не английский лорд из Оксфорда, а простой шведский парень, для которого язык Шекспира не роднее зулусского.

Актуальность… Жесткое ограничение состава дистрибутива позволяет поддерживать свежесть версий входящих в него пакетов — даже при том, что число разработчиков его очень ограничено. Официальные релизы CRUX’а выходят редко — собственно, ни о каком релиз-цикле тут и говорить не приходится. Но в промежутках между релизами пакетная база с точки зрения версионности обновляется постоянно. И пользователь может невозбранно этим пользоваться с помощью системы управления пакетами.

Каковая по сути возникла под влиянием системы портов FreeBSD — но существенно проще по устройству и применению. К слову сказать, она охватывает не только официальные его компоненты, но и полуофициальную часть — так называемый Contributions. Именно из него и следует черпать пакеты, не вошедшие в состав дистрибутива. Набор Contributions не безграничен — по охвату это не порты FreeBSD, не портежи Gentoo и не репозитории Debian. Но в его составе можно найти изрядную часть того, что понадобится.

А чего не хватит в Contributions — восполняется пакетами индивидуальных майнтайнеров. Имя им тоже не легион, и, естественно, поддерживают они только то, что интересно им лично. Но вполне возможно, что их интересы совпадут с интересами потенциальных пользователей.

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

Таким образом, мы плавно подошли к следующей особенности дистрибутива — простоте его устройства. Ещё раз повторю — как ни прост Slackware и большинство его производных, но CRUX ещё проще. описать это словами довольно трудно — это надо увидеть и попробовать. Лично меня приводит в восхищение один вывод команды

$ ls /etc

Обычно считается, что простота устройства обратно пропорциональна простоте использования. Но это вопрос довольно спорный. Что проще? — Воспользоваться готовыми конфигураторами или настраивать вышеупомянутым набором из шелла, редактора и чьей-то матери? На этот вопрос каждый должен ответить для себя сам. Я же вольно процитирую слова, много лет назад сказанные Владимром Попопвым:

Когда количество конфигураторов начинает превосходить число конфигурируемых параметров…

И, наконец, быстродействие. CRUX собирается с параметрами march=i686 и O2. Нынче, в век сборок, оптимизированных под 64-битные машины, этим не удивить уже никого. Но на практике оказывается, что таких древних параметров более чем достаточно — и субъективно по быстродействию CRUX превосходит всё, что я видел (а видел я не так уж мало).

Особенного внимания заслуживает его практически мгновенный старт. Я всегда скептически относился к оценке быстродействия по данному параметру. Да и сейчас считаю, что при десктопном использовании Unix-машины это абсолютно не важно. Но в век нетбуков, которые, в сущности, занимают промежуточное положение между «настоящими» компьютерами и всякого рода КПК, коммуникаторами и смартфонами, быстрый старт неожиданно оказывается очень важным.

Так вот, свидетельствую: на моей машине между включением питания и появлением меню загрузчика проходит больше времени, чем между выбором в этом меню пункта CRUX и появлением приглашения к авторизации. И это, конечно, следствие простоты его инициализационной схемы в BSD-стиле — но ещё более простой, нежели прототип. Причём такой результат достигается без всяких тюнингов, initng и прочих upstart’тов…

Думаю, сказанного достаточно, чтобы читатель смог определиться с вопросом, нужен ли CRUX лично ему. Если ответ будет положительным — со временем перейдём к следующему вопросу, а именно сакраментальной инсталляции.