Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 129, СЕНТЯБРЬ 2009 г.

Нашествие мутантов. Обзор необычных *nix-дистрибутивов

Александр «АК-47» Калашников (tuxodriver@yandex.ru)

Существует достаточно операционок со свободными лицензиями - GNU/Linux, xBSD, OpenSolaris, но не все юниксоиды удовлетворены возможностями, заложенными разработчиками. Поэтому практически с первых дней предпринимались попытки собрать удачные идеи и наработки в одном дистрибутиве. В итоге, на сегодня мы имеем целый ряд интересных гибридных систем, – они развиваются годами и вполне готовы как к домашнему, так и к промышленному применению.

Slackware + pkgsrc из NetBSD = Draco GNU/Linux

Слака, любимая многими пользователями, все же неудобна с точки зрения новичка, как минимум, потому, что система управления пакетов оставляет желать лучшего. В начале 2006 года два норвежца Stian Andreassen и Ole Andre Rodlie решили создать более удобную систему пакетов к этому дистрибутиву. Правда, спустя несколько месяцев кропотливой работы на проекте пришлось поставить крест - двум энтузиастам такая задача оказалась просто не под силу. Но Ole не опустил руки и начал прикручивать к Slackware систему управления пакетами pkgsrc, разрабатываемую в рамках проекта NetBSD (pkgsrc интересна тем, что работает с Free/Open/DragonFlyBSD, Linux, Solaris, QNX, IRIX, Mac OS X и даже виндой через «Службы Windows для UNIX», www.microsoft.com/windows/sfu). Так появился Draco GNU/Linux.

В настоящее время в дистрибутиве доступно около 1000 «своих» пакетов. Все они с командами для установки перечислены на странице www.dracolinux.org/packages.html. Но основным источником приложений для Draco все же являются пакеты из NetBSD, коих в настоящее время ~7900.

«Дракон» распространяется в нескольких вариантах - для сетевой установки (draco-boot), без GUI (draco) и с KDE 3.5.10 (draco-k3). Версии с XFCe и Fluxbox, разрабатываемые ранее, ныне недоступны. Поддерживается установка с CD, USB и харда.

Текущая стабильная версия 0.3.1 использует ядро 2.6.23 с оптимизацией под i486 платформу и распространяется только в варианте без GUI. Инсталлятор «Draco setup», кроме цвета (красный!), ничем не отличается от инсталлятора слаки. Привыкшим к спартанскому интерфейсу детища Патрика Фолькердинга разобраться будет просто. При помощи fdisk/cfdisk следует вручную создать раздел, подготовить и активировать своп (mkswap/swapon), а затем начать установку командой setup. Созданные по ходу процесса разделы можно отформатировать в ext2/ext3, ReiserFS, XFS и JFS. Предлагается семь групп пакетов (system, disk, devel, network, extra, drivers, firmware) с возможностью выбора индивидуальных приложений. Чтобы узнать, какие пакеты включены в группу, проще всего заглянуть в одноименный каталог на CD. Далее заводим учетную запись, ставим LILO и указываем сервисы для загрузки. Процесс установки и последующей загрузки системы проходит довольно быстро.

Дистрибутив по умолчанию включает минимум приложений. Все остальное поможет установить менеджер пакетов DracoPKG. Команды очень напоминают APT и просты для запоминания. Для поиска пакета вводим «dp search <name>», для установки - «dp install <package_name>», удаление производится командой «dp remove <package_name>», а получить информацию о пакете поможет «dp info <package_name>». Есть команды для аудита и обновления системы, работы с сервисами и гибернацией. Чтобы обновить систему, достаточно ввести:

# dp audit update
# dp audit system
# dp update system
# dp audit system
# lilo

Linux + NetBSD = SSD/Linux

Дистрибутив SSD/Linux (www.plathome.com) разрабатывается японской компанией Plat'Home и используется, в первую очередь, в качестве встроенной ОС для продаваемых ей мини-серверов OpenMicroServer и OpenBlockS. Сервачки поставляются в виде готовых решений, запакованных в герметичный корпус, который приспособлен для работы в экстремальных условиях (рабочий диапазон температур окружающей среды – от 0 до 50 С). Потребляет такое устройство всего ничего, около 8 Ватт энергии, и имеет просто нереальное время наработки на отказ - 48 лет. Таких характеристик удалось добиться, в том числе благодаря тому, что в системе используется SSD-накопитель.

По нынешним меркам системные требования просто смешные: i486 CPU, 8 Мб ОЗУ и 350 Мб свободного места на харде. Для сравнения взглянем на запросы Ubuntu 9.04 Netbook Remix: Intel Atom, 384 Мб ОЗУ и 1 Гб диск. Конечно, это два разных дистрибутива, ориентированных на свои задачи, но пользователь SSD/Linux может самостоятельно «допилить» систему до нужного уровня «удобство/производительность». Собственно, адаптация под флеш-карты и нетребовательность к ресурсам и привлекает к SSD/Linux пользователей нетбуков, знающих, как собрать систему, и разочаровавшихся в производительности поставляемой с компьютером ОС.

Самая же главная необычность SSD/Linux состоит в том, что в нем сочетается ядро Linux 2.6.х с базовым программным окружением и библиотеками из NetBSD, плюс реализована BSD-подобная конфигурация через /etc/rc.conf. Такой странный выбор сами разработчики никак не объясняют, кроме того, что они создают решения на основе обеих систем еще с девяностых и четко осознают достоинства и недостатки каждой из них. Поэтому можно предположить, что все дело в моде.

Так, использование торговой марки Linux, которая сегодня у всех на слуху, может прибавить вес конечному продукту, а значит, привлечь покупателей. И не секрет, что ядро Linux развивается на порядок быстрее своих xBSD собратьев, нововведения здесь появляются раньше, кроме того, для Linux поставляется больше драйверов (хотя часто это идет в ущерб стабильности). Использование же в качестве окружения NetBSD позволяет разработчикам SSD/Linux выбрать лицензию, отличную от GNU GPL, и вносить в код системы закрытые патчи. Что, собственно, и сделано - SSD/Linux распространяется под BSD-подобной лицензией.

Дистрибутив не содержит ничего лишнего, поэтому даже без GUI при наличии некоторых знаний использовать его очень просто. Для загрузки доступны установочный ISO (правда, на момент написания статьи для последней версии 0.5 его еще не было) или образ для VMware Player. После загрузки регистрируемся в консоли как root (без пароля), разбиваем хард при помощи fdisk и запускаем sysinst:

# sysinst
SSD/Linux 0.5-20090707/2.6.29 Installer

Are you sure to install [y/N] ?
Setup Filesystem

После чего будет выведена таблица разделов с предлагаемыми точками монтирования. Чтобы изменить параметры раздела, следует ввести его номер (он указан в первой позиции таблицы). Раздел, который сейчас редактируется, помечается значком '>'. Для перехода к следующему пункту нажимаем «x». Выбираем букву (a,c,f,m,b), соответствующую нужному действию:

a. Toggle use this partition - использовать этот раздел;
c. Toggle mke2fs/mkswap with fsck - запустить mke2fs/mkswap с проверкой fsck;
f. Toggle fs type ext2/ext3 - изменить тип файловой системы ext2 на ext3 и наоборот;
m. Enter/Change mount point - изменить точку монтирования;
b. Change block size - изменить размер блока.

По окончании настройки разделов диска будет предложено указать активный раздел. Подтвердить установки можно буквой «t». Следующее меню предлагает выбрать устанавливаемые компоненты. По умолчанию на хард копируются: ядро, базовая система, компиляторы и маны. Если нужны исходники, жмем «8» и «х», чтобы перейти дальше. Указываем источник установки, по умолчанию CD-ROM, но если будут обнаружены сетевые карты, то они также появятся в списке. Начинаем установку. После того, как файлы скопируются, дважды вводим пароль рута. Вот и все. Перечень утилит, включенных в дистрибутив, можно найти на странице «Command List» (www.plathome.com/support/ssdlinux/command.html). Дальнейшие действия очень просты. Получаем сетевые настройки, если в сети используется DHCP-сервер:

# dhclient eth0

Чтобы указать статический IP, редактируем ifconfig.ethX:

# echo "inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255" > /etc/ifconfig.eth0

Теперь шлюз и адрес DNS-сервера:

# echo "192.168.1.1" > cat /etc/mygate
# echo "nameserver 192.168.1.1" /etc/resolv.conf

Как вариант, можно занести все эти настройки в /etc/rc.conf. Для примера установим веб-сервер thttpd (www.acme.com/software/thttpd):

# cd /usr/src/contrib/thttpd
# bmake && bmake install

Дистрибутивный файл будет автоматически скачан с ftp://ftp.plathome.co.jp/pub/ssdlinux/0.5-20090707/distfiles, распакован, скомпилирован и установлен.

Собрать роутер (как вариант, почтовый, веб, DHCP, SQL, VoIP, LDAP, VPN сервер) на старом компьютере с помощью SSD/Linux - минутное дело. Единственный минус дистрибутива - малое количество драйверов, встроенных в дефолтное ядро, а значит, без пересборки не обойтись. К сожалению, на сайте проекта по поводу поддержки оборудования ничего не сказано. «Железо» приходится подбирать методом научного тыка.

OpenSolaris + Ubuntu = Nexenta Core Platform

Проект Nexenta Core Platform (www.nexenta.org) начат более двух лет назад с целью создания свободной ОС на базе OpenSolaris, которою можно было бы использовать как на серверах, так и десктопах. NCP также является гибридом; на этот раз сочетание таково - ядро OpenSolaris и программное окружение Ubuntu 8.04. Для обычного пользователя подобный симбиоз интересен тем, что можно изучать технологии OpenSolaris (в NCP имеется полноценная поддержка файловой системы ZFS, изолированных зон, DTrace и т.д.), работая в привычной среде и не испытывая недостатка в утилитах. Размер репозитория программ, созданного на базе убунтовского «Hardy Heron», насчитывает более 13 тысяч пакетов.

Текущая версия 2.0 основана на сборке OpenSolaris build 104+ с некоторыми критическими исправлениями. Дистрибутив включает в себя последние на момент релиза версии компонентов: X.Org, dpkg/APT, GCC, Binutils, Coreutils, Perl, Python, Ruby, Qt и GTK+. Из ряда нововведений стоит отметить появление поддержки SMF (Service Management Facility) для таких серверных приложений, как Apache, MySQL, PostgreSQL, Exim. Служба SMF является заменой старичку init и обеспечивает параллельный запуск служб с поддержкой зависимостей, автоматический перезапуск при сбое, возможность работы от непривилегированной учетной записи и многое другое.
NCP 2.0 распространяется в виде ISO-образа размером 506 Мб.

Установка возможна на любой x86 компьютер, имеющий 256 Мб ОЗУ. Кроме жесткого диска, поддерживается установка на USB-флешку, о чем после загрузки рапортует «NexentaCore Installer». Сам инсталлятор обладает псевдографическим интерфейсом, но для подготовленного пользователя процесс установки трудностей не составит. Указываем раскладку клавиатуры, регион, выбираем диск и размечаем. Доступен вариант разметки автоматом. Далее дистрибутив распаковывается на хард, вводим два раза пароль рута, заводим обычного пользователя и настраиваем сеть. Все!

После установки в системе минимум приложений, но, учитывая наличие dpkg/apt, это не проблема. Например, чтобы получить рабочую среду на базе XFce, пишем:

# apt-get update
# apt-get install xfce4 xorg

Необходимость допиливания системы после установки не всем пришлась по вкусу. В результате появился польский проект StormOS (www.stormos.org), первый релиз которого получил название «Hardy Hail». StormOS предлагает десктоп-вариант NCP, работающий из коробки. После установки пользователь получает рабочий стол XFСe 4 с большим количеством приложений (Abiword, Gnumeric, Gimp, Rhythmbox, Firefox, Synaptic и т.п.).

Ubuntu + Windows = andLinux

Дистрибутив andLinux (www.andlinux.org) создан на базе Ubuntu. Возможно, ничего необычного в этом и не было бы (решений, базирующихся на Ubuntu, сегодня предостаточно, и удивить ими кого-либо сложно), но дело в том, что andLinux предназначен для запуска из-под 32-битных версий Windows, построенных на ядре NT (2000/XP/2003/Vista/Se7en). Если быть точнее, то дистрибутив полностью интегрирует приложения Linux во враждебную для пингвина среду Windows. Пользователь получает все Linux-приложения без обычного рабочего стола, а утилиты из разных сред могут взаимодействовать между собой. Возможна доустановка приложений при помощи APT/Synaptic.

Основой andLinux послужил нашумевший после своего появления в 2004 году проект Cooperative Linux (www.colinux.org). Он представляет собой специальный драйвер, позволяющий запускать ядро Linux одновременно с другой ОС на одной и той же машине, без использования средств виртуализации. Работает сoLinux в своем адресном пространстве; драйвер по мере необходимости «переключает компьютер» между coLinux и Windows. Производительность в итоге на порядок выше, чем при использовании виртуальной машины, и практически сравнима с реальным запуском приложения в Linux. Остальные составляющие coLinux: Xming (www.straightrunning.com/XmingNotes) - это X-сервер для Windows, собранный при помощи MinGW (нэйтивный порт GCC под Windows, www.mingw.org), и кроссплатформенный звуковой сервер PulseAudio (www.pulseaudio.org).

Системные требования andLinux невысоки. Объем ОЗУ определяется используемой версией Windows. Так для запуска в Win2k/XP/2k3 достаточно всего 128 Мб (лучше 192 Мб). Диск должен быть отформатирован в NTFS (FAT32 не поддерживает файлы более 4 Гб). В настоящее время проект предлагает две версии дистрибутива: с рабочим столом KDE и XFCe; для установки понадобится, соответственно, 4.5 и 2.5 Гб свободного места.

Дистрибутив доступен в виде exe-шника (дожили), его установка стандартна для Windows. По ходу предстоит указать, сколько памяти можно отдать под coLinux. Затем идут настройки Х-сервера, например, можно выбрать специфическое разрешение, но лучше ничего не трогать и оставить, как есть. Включаем звук, выбираем один из шести вариантов запуска, указываем логин и пароль для входа, метод доступа к разделам Windows. Далее все просто: ты получаешь доступ к приложениям Linux из Windows, запуская их по мере необходимости. Если чего-то не хватает, к твоим услугам Synaptic. Пиктограммы с Linux приложениями размещаются на панели задач, рядом с программами Windows. В меню появляются дополнительные пункты, позволяющие открыть каталог при помощи файлового менеджера (Thunar в XFCe), некоторые типы файлов сопоставляются Linux-приложениям. Так что, andLinux - хороший повод познакомиться с утилитами Unix или перейти на GNU софт.

Кроме andLinux, на основе технологий coLinux построены дистрибутив Topologi-linux (topologi-linux.sf.net), использующий в качестве базовой системы слаку, и свободная система с открытым кодом ReactOS (www.reactos.org), разработчики которой планируют создать полноценную замену WinNT.

Debian с сердцем демона

История знает несколько попыток скрестить Linux и BSD-системы в разных комбинациях, но не все они удачны. Особенно в части экспериментов популярен Debian - Debian GNU/NetBSD (www.debian.org/ports/netbsd), Debian GNU/kFreeBSD (www.debian.org/ports/kfreebsd-gnu) и Debian GNU/FreeBSD. Последний проект приказал долго жить, поэтому о нем говорить не будем. Первые два в качестве ядра используют соответственно кернелы из NetBSD и FreeBSD (буква «k» в kFreeBSD как раз и обозначает kernel, чтобы отличать от Debian GNU/FreeBSD). Debian GNU/NetBSD наилучшим образом подходит для запуска на экзотических платформах, не поддерживаемых Linux'ом (NetBSD славится своей работоспособностью практически на любом «железе»). Что касается Debian GNU/kFreeBSD, то после 10-ти лет разработки проект особых успехов не имел, и результат, можно сказать, плачевный. Есть проблемы с определением оборудования, мало документации, работы ведутся вяло. Если все-таки желаешь познакомиться с Debian GNU/kFreeBSD, присмотрись к Ging (Ging Is Not Ging, glibc-bsd.alioth.debian.org/ging), который предлагает LiveCD-образ этого дистрибутива.

Linux Unified Kernel

Помимо того, что Windows учат понимать Linux при помощи coLinux, есть и проекты с обратной задачей. Кроме всем известного Wine (www.winehq.org), представляющего собой «эмулятор» Windows API, существует еще один не менее интересный проект - Linux Unified Kernel (LUK или Longene, longene.sf.net). Задача LUK - обеспечить возможность использования в Linux драйверов и приложений, написанных для Windows, причем результат - больше чем эмуляция. Команда разработчиков, спонсируемая китайской компанией Insigma Technology Co., должна обеспечить полную бинарную совместимость программ и научить Linux поддержке всех основных механизмов Windows (системные вызовы, реестр, механизмы управления процессами и виртуальной памятью). В качестве основы Win32 API использован код Wine, ReactOS, NDISwrapper и Kernel-Win32. Причем, учитывая, что LUK является все-таки надстройкой над Wine, он следует его возможностям. Другими словами, все, что доступно в Wine, можно сделать через LUK (а если чего-то нет, придется подождать). Реализован LUK в виде модулей и патчей к ядру Linux. Примечательно, что размер самих патчей совсем небольшой.

INFO

  • SSD/Linux поддерживает три аппаратные архитектуры: i386, Mipsel и PowerPC.
  • Мини-сервера OpenMicroServer и OpenBlockS могут быть использованы в качестве Mail/Web/SQL/VoIP/LDAP/VPN/DHCP-сервера или роутера.
  • Первоначальное название Nexenta Core Platform - NexentaOS.
  • В базовую поставку Nexenta Core Platform 2.0 включены текстовый редактор vim, консольный оконный менеджер screen и утилита apt-clone, являющаяся надстройкой над apt-get.
  • Учитывая малое количество документации по NCP, можно сказать, что дистрибутив ориентирован больше на специалистов или желающих таковыми стать, чем на новичков.
  • MirOS BSD (https://www.mirbsd.org) основана на OpenBSD и NetBSD.
  • Проект Gentoo/FreeBSD (Gentoo/FBSD, G/FBSD, www.gentoo.org/proj/en/gentoo-alt/bsd/fbsd), не успев получить статус официального, был заморожен разработчиками из-за несовместимости лицензий. Хотя на зеркалах все необходимое для его установки есть.

WWW

Сайты проектов:

Содержание
ttfb: 7.0469379425049 ms