Lunar Linux

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

Множится число дистрибутивов Source Based. Конечно, многие из них похожи, как близнецы-братья. Особенно это характерно для систем, базирующихся на Sorcerer — об одном из его клонов, именуемом SourceMage GNU/Linux, уже шла речь на этих страницах. И, казалось бы, возвращаться к сей теме было бы скучно. Однако очередной представитель клана — Lunar Linux, — отличается некоторыми уникальными особенностями, заслуживающими хотя бы краткого описания.

Iso-образ «лунного» Linux’а доступна на сайте проекта. Он достаточно легковесен, менее 80 Мбайт в компрессированном (посредством bzip2) виде. Развернув и записав его на болванку, мы получаем не просто загрузочный диск, а т.н. Live-CD, позволяющий выполнить также ремонтно-спасательные манипуляции.

Программа установки Lunar, созданная под явным влиянием sysinstall из FreeBSD, внешне мало отличается от инсталлятора Sorcerer (и его клона SourceMage, ранее мной описанной). Однако некоторые ее особенности, как уже было сказано, заслуживают внимания.

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

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

Второй шаг, как легко понять, — подготовка диска. Для чего предлагается любой из трех инструментов — cfdisk, fdisk, parted. Далее на разделах создаются файловые системы (здесь заслуживает внимания поддержка XFS) и осуществляется их монтирование. Затем — предложение создать swap-файл, поскольку установщик требует суммарного объёма RAM+Swap в 2 Гбайт. Очевидно, что при swap-разделе должного объёма необходимости еще и в swap-файле нет (тем более, что создаётся он уж очень медленно).

Третий шаг — собственно установка «лунного» Linux’а, это просто лобовое переписывание корневой файловой системы инсталляционного CD. А затем — собственно изюминка дистрибутива, настройка флагов оптимизации компилятора в глобальном масштабе. Разумеется, этот момент имел место быть и в соплеменных системах (Sorcerer и SourceMage), однако здесь процесс этот выгодно отличается детальностью.

Сначала — выбор версии компилятора, gcc 2.x или gcc 3.x. Очевидно, что только последняя позволяет проявиться оптимизации во всей красе. Далее — запрашивается, требуется ли флаг -pipe. Предполагаю, что вреда от нее не может быть ни малейшего, а ускорению процесса она способствовать должна.

Вслед за этим выбираем базовую платформу — кроме x86, доступны Alpha, PowerPC, Sparc. Работа Linux’а на не-Intel’овских платформах — штука интересная, но, за отсутствием таковых, для меня не актуальна. Как, боюсь, и для большинства моих читателей…

Далее — уровень оптимизации, от -O0 (сиречь без всякой оптимизации вообще), до -O3, обещающего высшую производительность. Хотя далеко не все исходники могут быть собраны с такими установками. Так что, возможно, стоит ограничиться синицей в руках — уровнем -O2. Тем более, что есть веские основания предполагать, что именно его посредством достигается оптимальное быстродействие.

Теперь — непосредственно указание процессора. В соответствии с возможностями gcc 3.X, доступен весь ряд процессоров Intel (от i386 до Pentium-4) и AMD (от K6 до Athlon MP и XP). При этом устанавливается флаг -march=cpu_type, так что следует быть внимательным: приложения, собранные, скажем, под Athlon XP, на обычном Athlon работать не будут.

Вслед за этим можно с исключительнрой детальностью установить другие флаги оптимицизации, вплоть до -ffast-math, что обеспечивает наивысшую оптимизацию по скорости с нарушением всякого рода стандартов (почему и именуется risky — не для всех приложений таковое приемлемо). Затем оптимизация под дополнительные наборы инструкций, от уже поросшего мхом MMX до 3DNow и SSE2. Фигурирует в списке еще и пункт Altivec — аналог Intel’овских мультимедийных инструкций для процессоров PowerPC.

Настройка оптимизации заиграет практически сразу — на стадии конфигурирования ядра. Его можно выполнить любым способом — посредством make config, make menuconfig и даже make xconfig (последний способ, впрочем, я не испробовал, не вполне представляю, как он может быть реализован в чисто консольном инсталляторе). Здесь можно включить экспериментальную опцию — копиляцию с учетом особенностей gcc версии 3.x, в результате чего ядро будет оптимизировано под современные процессоры (тот же Pentium-4, например, или Athlop XP).

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

Финал установки — настройка сетевых соединений, причем не только Ethernet, но и модемного. Для чего следует указать телефон провайдера, свои учетные данные и, при необходимости, IP-адрес прокси-сервера. Впрочем, мне с «умолчальными» настройками прозвониться до своего провайдера не удалось…

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

Выполнить таковую можно в автоматическом режиме — посредством утилиты Lunar (аналог волшебного Sorcery из Sorcerer и SourceMage). Для чего требуется либо выход в Интернет (желательно с быстрым и устойчивым коннектом), либо полный набор заблаговременно скачанных исходников, размещаемых в каталоге /var/spool. После пересборки система начинает шевелиться живее, хотя быстродействие ее все равно оставляет желать лучшего. Почему — понять трудно, опыт последних версий Gentoo показывает, что оптимизация под Pentoim-4 и использование компилятора gcc 3.X способны дать результат просто превосходный.

Через Lunar осуществляется и установка всех прочих дополнительных пакетов. Действует эта система сходно с портами FreeBSD — то есть исходники устанавливаемого пакета автоматически скачиваются с мастер-сайта или его зеркал, указанных в соответствующих конфигурационных файлах, архивы разворачиваются, конфигурируются и компилируются — с теми самыми флагами, которые были указаны на стадии установки. Процесс этот поглощает немало времени (и денег на оплату трафика), поэтому лучше скачать исходники заблаговременно (и не худо бы — за казенный счёт). Хорошо иметь также мощный процессор, много (или очень много) оперативной памяти, большой диск (побочные продукты компиляции легко съедят несколько гигабайт, хотя потом их, конечно, можно будет истребить).

Вот, пожалуй, и все. Остальные детали настройки «лунного» дистрибутива ничем не отличаются от Sorcerer сотоварищи. И, подобно последним, вызывают двойственное отношение. С одной стороны, программа установки весьма удобна, предоставляет массу возможностей настройки, состав базовой системы актуализирован до предела. Система портирования удобна в использовании и, навскидку, эффективна в работе (да и просто эффектна). С другой же — изобилие средств оптимизации не сопровождается адекватным результатом: по быстродействию все клоны Sorcerer’а очень отстают от того же Gentoo. Кроме того, оптимизацией можно увлечься до того, что ряд приложений просто откажется собираться…

Однако ругательных слов в адрес Lunar говорить не хочется: на мой взгляд, портированные дистрибутивы — явление безусловно положительное. Я неоднократно уже говорил, что для освоившегося с системой портов FreeBSD возврат к дистрибутивам пакетным — сущее мучение. И радует, что идея эта все более приживается в мире Linux. Ну а то, что реализация ее — до Free’шного прототипа пока не дотягивает, так какие же их годы…