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

Восход свободного солнца: обзор ОС OpenSolaris 2008.11

Владимир «turbina» Ляшко (v.turbina@gmail.com)




Многих пользователей, интересующихся *nix-системами, привлекают технологии проприетарного Solaris. После выхода свободной версии OpenSolaris познакомиться с возможностями этой системы стало на порядок проще. Теперь каждый может попробовать, что собой представляют ZFS, DTrace, контейнеры и многое другое.

О проекте

Как несложно догадаться, OpenSolaris базируется на Solaris – коммерческой операционной системе с закрытыми исходными кодами, разрабатываемой компанией Sun Microsystems. «Солярка» снискала себе популярность среди администраторов, разработчиков и просто любопытных, благодаря своей надежности, производительности, масштабируемости и управляемости. Однако первые версии стоили недешево. Версия Solaris 9, вышедшая в 2002 году, стала бесплатно распространяться по лицензии CDDL, но без поддержки, документации и некоторого закрытого ПО (Value Added Software). Летом 2005 года в Sun было принято решение об открытии части исходного кода системы (по CDDL) и запуске проекта OpenSolaris (ru.opensolaris.org), в рамках которого усилиями сообщества должен разрабатываться свободный вариант Solaris для платформ SPARC, x86 и PowerPC.

Некоторое время OpenSolaris обозначал скорее проект, чем готовый дистрибутив. Дело пошло шустрее, когда летом 2007 Sun наняла основателя Debian Яна Мердока. И вот, почти год спустя, увидел свет OpenSolaris 2008.05, который сразу был хорошо принят пользователями, даже несмотря на некоторую сырость. В дальнейшем команда разработчиков обязалась выпускать релизы каждые полгода, поэтому сегодня мы имеем уже OpenSolaris 2008.11.

В OpenSolaris изначально поддерживается несколько языков, среди которых есть и русский. Система управления пакетами получила название IPS (Image Packaging System) и очень напоминает APT из Debian, что, в общем-то, неудивительно, учитывая присутствие Мердока. Установка приложений, обновление пакетов и дистрибутива выглядит так же просто, как и в Debian. Дистрибутив распространяется в виде LiveCD с возможностью установки на жесткий диск, содержит базовую операционную систему OpenSolaris и поддерживает все традиционные разработки и технологии, доступные в Solaris. Это 128-битная файловая система ZFS с функциями мгновенного отката и постоянной проверки контрольных сумм. Тут есть средство динамической трассировки задач DTrace. Оно обеспечивает безопасный и полный контроль параметров действующих систем для ускорения создания приложений и оптимизации работы ОС. Есть и контейнеры, изолирующие программные приложения или службы с использованием гибких, программно-определяемых границ (например, если сбой происходит в процессе пользовательского уровня, граница контейнера воспрепятствует распространению отказа на другие контейнеры). В настоящий момент для OpenSolaris реализованы многие компоненты и протоколы: IPsec, Kerberos, SASL, KMF, OpenSolaris Virtual Manager (xVM) и т.д. Правда, некоторые из проектов (полный список – www.opensolaris.org/os/projects) пока еще находятся на ранней стадии развития.

При закачке образа следует быть внимательным, так как по умолчанию предлагается «облегченный» образ с ограниченной локализацией (только основные языки) и ускоренной установкой. В образе, отмеченном буквой «g» (global), используется LZMA-компрессия. Это позволило добавить поддержку 12 языков рабочего стола. Кстати, диск можно получить по почте совершенно бесплатно. Для этого нужно выбрать на сайте проекта ссылку «Get Free Media» и заполнить форму.
Посмотрим, что собой представляет единственная открытая версия SVR4.

Загружаемся в LiveCD

Особых системных требований к компьютеру на сайте проекта не приведено. OpenSolaris запускается на 32- и 64-битных x86-системах, а также на виртуальных машинах VirtualBox и VMWare. Причем, в качестве виртуальной машины рекомендуется использовать именно VirtualBox (в начале 2008 года Innotek был приобретен Sun), OpenSolaris под ее управлением работает более стабильно. Работа в OpenSolaris на компьютере с минимальными 512 Мб ОЗУ не очень комфортна, поэтому памяти желательно побольше. Для установки потребуется, минимум, 3 Гб раздел (а лучше – 10 Гб). Этот раздел должен быть расположен ДО Linux swap, если таковой имеется (у обоих одинаковые идентификаторы, и OpenSolaris начинает путаться).

LiveCD загружается из меню GRUB, в котором можно выбрать OpenSolaris (графический режим или консоль) или загрузку с жесткого диска. Далее вводим цифры, соответствующие раскладке клавиатуры и языку рабочего стола (для русского это номера 29 и 10). Через некоторое время перед нами предстанет рабочий стол GNOME (версии 2.23.91 с композитным менеджером Compiz). Увы, никакого статус бара или информации о том, что сейчас происходит, не выводится. Учитывая большее, чем в Linux, время загрузки, это было бы очень кстати (так как поначалу создается впечатление, что все зависло).

Десктоп GNOME с четырьмя иконками (LiveCD, Device Driver Utility, «Начало работы в OpenSolaris» и «Установить Open Solaris»), в общем-то, стандартен. Интерфейс GNOME и приложений локализован практически полностью. Редкие подписи на английском (вроде Games) общего впечатления не портят. В этом вопросе, по сравнению с OpenSolaris 2008.05, виден явный прогресс. Несколько непривычно для пользователей Linux/Windows функционирует переключатель клавиатуры: по комбинации <Ctrl+пробел>.

После загрузки в системе имеются две учетные записи: jack с паролем jack и root с паролем opensolaris. Чтобы выполнить задачу с правами администратора, надо использовать «su» для переключения на эту роль – или «pfexec» (замена sudo), чтобы выполнить команду с нужными правами. Структура файловой системы напоминает Linux (логично, так как обе являются производными System V). Конечно, есть и свои особенности. Например, OpenSolaris отличается от System V режимами загрузки и для восстановления системы применяется «S» (single), управляемый скриптами в каталоге /etc/rcS.d. Все утилиты проекта GNU вынесены в каталог /usr/gnu.

Сетевые интерфейсы, ведомые подсистемой NWAM (Network Auto-Magic, opensolaris.org/os/project/nwam), настраиваются автоматически при помощи DCHP. Настройки NWAM находятся в файле /etc/nwam/llp. В моем случае он имел вид:

$ cat /etc/nwam/llp
e1000g0 dhcp

Вывод «ifconfig -a» показал, что e1000g0 - это не что иное, как название сетевого интерфейса. Чтобы указать статический адрес, можно использовать тот же «ifconfig», но почему-то этот вариант срабатывает не всегда. Поэтому лучше изменить настройки NWAM. Для этого достаточно отредактировать файл llp при помощи редактора VI (есть и GEdit):

e1000g0 static 192.168.1.160/24

После чего перезапустить службу nwam:

# svcadm restart nwam

Поддержка оборудования

Хотя платформа x86 развивается для Solaris довольно давно (с 1994 года), список поддерживаемых устройств на порядок меньше, чем в Linux. Некоторые компоненты в настоящее время усиленными темпами портируются из NetBSD и других операционок (при условии, что лицензия это позволяет) – например, Bluetooth стек (opensolaris.org/os/project/bluetooth). На начальном этапе находится разработка ACPI (Suspend/Resume) и DRI. Многие производители оборудования предоставляют собственные драйвера, что-то написано энтузиастами этой системы. В результате OpenSolaris поставляется с большим количеством драйверов для многих устройств. В меню «Приложения» даже присутствует программа настройки драйверов видеокарт Nvidia – Nvidia X Server Setting.

Перед установкой дистрибутива следует воспользоваться программой Device Driver Utility, ярлык для которой расположен на рабочем столе. Она поможет оценить поддержку оборудования в каждом конкретном случае и выдаст список рекомендаций с указанием необходимых драйверов. Количество неподдерживаемого оборудования отражается в строке «Driver Problems», а само проблемное оборудование подсвечивается красным цветом. В самом простом случае для установки драйвера достаточно нажать кнопку «Install Drivers». Чтобы помочь проекту в сборе данных, можно отправить информацию об оборудовании компьютера, нажав кнопку Submit.

Для поиска совместимого оборудования рекомендуется посетить ресурсы – Solaris OS: Hardware Compatibility Lists (www.sun.com/bigadmin/hcl), коллекцию драйверов для сетевых карт Free NIC drivers for Solaris (homepage2.nifty.com/mrym3/taiyodo/eng) и Open Sound System (opensound.com/oss.html).
Среди проектов обрати внимание на Device Manager, предлагающий уже практически готовую реализацию менеджера устройств (www.opensolaris.org/os/project/devicemgr).

Установка OpenSolaris

OpenSolaris можно установить как единую систему или как часть мультизагрузочной среды. Первый вариант самый простой, но требует наличия отдельного компьютера/диска. Во втором следует учитывать несколько особенностей. Так, программа установки OpenSolaris, вызываемая нажатием ссылки «Установить OpenSolaris», не имеет средств подготовки разделов диска и видит только первичные разделы жесткого диска. Расширенные разделы не отображаются, хотя первичный раздел, в котором они находятся, виден. Программа установки позволяет использовать уже существующий раздел Solaris или весь диск, поэтому в мультизагрузочной среде лучше подготовить нужный раздел заранее, используя специальные инструменты (например, диск SystemRescueCD, www.sysresccd.org). Система использования диска в OpenSolaris напоминает принятую в xBSD. В выбранном разделе создаются более мелкие подразделы – слайсы. В ходе установки будут выделены три слайса: загрузочный, корневой и своп. Просмотреть таблицу слайсов можно при помощи команды «format». В качестве корневой файловой системы устанавливается ZFS.

Для загрузки OpenSolaris используется адаптированный GRUB, информация об установленной Windows будет занесена в его конфигурационный файл автоматически. Если на компьютере установлен Linux, следует сохранить файл настройки загрузчика и перенести из него данные в menu.lst OpenSolaris'а.

Сам процесс установки системы, состоящий из семи шагов, не выглядит сложным и напоминает инсталлятор Ubuntu. В первом окне знакомимся с информацией по установке. Далее указываем раздел, куда будем ставить операционку. На следующем шаге при помощи карты выбираем часовой пояс, вводим дату и время. На странице «Локаль» выбираем язык, который будет использоваться по умолчанию, этот выбор определит прочие системные параметры (формат даты, времени и т.д.). В установленной системе можно сменить язык, закончив сеанс и выбрав нужный в окне «Регистрация». Затем набираем два раза пароль root и заводим обычную учетную запись. Вход с правами администратора невозможен ни в LiveCD режиме, ни в установленной системе (хотя такой вариант реализуем). Пользователь root в OpenSolaris является ролью; первая созданная в системе учетная запись будет иметь возможность переключения на нее.

Вот и все настройки. Теперь проверяем и при необходимости корректируем их. Чтобы начать установку, нажми кнопку «Установить». По окончании процесса будет выведена заключительная информация.

Файловая система ZFS

Появление ZFS в 2004 году наделало много шума, и до сих пор эта файловая является предметом горячих обсуждений. Поэтому ZFS – это еще один повод, ради которого многие устанавливают OpenSolaris. Разрядность в 128 бит позволяет хранить просто огромные объемы информации (максимальный размер любого объекта 16 эксабайт – 2^64 байт). Концепция виртуального пула хранения данных позволяет обойтись без системы управления томами, вроде LVM, а RAID-Z даст фору обычному RAID. В пределах одного пула можно создавать 2^64 файловых систем, размер которых менять по мере необходимости. Но это еще не все. Фрагментация данных отсутствует. Пользователь может самостоятельно выбирать размер блоков данных вплоть до 128 Кб; возможно использование компрессии данных (LZJB или GZip); предусмотрен контроль целостности информации; поддерживаются режимы клонирования и зеркалирования. Кроме того, в ZFS встроена функция создания снапшотов – моментальных снимков состояния файловой системы на определенный момент времени, в которых сохраняется информация об измененных блоках.
В настоящее время ZFS портируется в FreeBSD, Mac OS X, Linux. Из-за несовместимости лицензий в ядро Linux поддержка ZFS не может быть включена, поэтому адаптация ведется с использованием FUSE.

Управление элементами ZFS производится при помощи утилит zpool и zfs. Первая предназначена для управления пулами, вторая - файловыми системами. Например, создадим зеркальный пул из двух запоминающих устройств:

# zpool create myzfs mirror c1d0 c2d0

Теперь информацию о зеркале можно просмотреть командой «zpool list» или «zpool status -v». Устройства можно вводить в пул, отключать, заменять, экспортировать в другую систему и многое другое. Полный список команд ты найдешь на странице проекта в документации по ZFS (www.opensolaris.org/os/community/zfs/docs).
В итоге, несмотря на десктопную направленность OpenSolaris, наличие ZFS – хороший повод посмотреть на нее под другим углом: как на систему для хранения данных.

Пакетная система IPS

Приложений, идущих в поставке, достаточно для выполнения большинства стандартных задач. В меню находим: Firefox, Thunderbird, Evolution, Pidgin, Ekiga, Totem, Rhythmbox, GIMP, Digikam и другие. Остальное доустанавливаем при помощи системы управления пакетами IPS. Одной из особенностей этого пакетного менеджера является тесная связь с ZFS и использование некоторых ее возможностей: создание мгновенных снимков и копий файловых систем. Это позволяет при неудачном обновлении пакетов выполнить откат без переустановки системы или отдельного пакета, а также создавать несколько загрузочных окружений (boot environment - BE), которые могут быть использованы для тестирования новых версий ОС.

Все действия в IPS производятся при помощи команды «pkg». Достаточно ввести «pkg install название», – и выбранный пакет будет установлен. Для обновления всех установленных пакетов текущего образа до последней доступной версии достаточно выполнить команду:

# pkg image-update

Система поддерживает не только родные пакеты, но и солярисовские SVR4. Официальный репозитарий pkg.opensolaris.org насчитывает более 17000 пакетов. По мере роста популярности дистрибутива ожидается появление других репозитариев. Проекты sunfreeware.com и blastwave.org уже открыли собственные хранилища установочных файлов. Например, в комплекте OpenSolaris не поставляются кодеки для проигрывания файлов в закрытых форматах. Для их установки подключи репозитарий blastwave.org:

$ pfexec pkg set-authority -O http://blastwave.network.com:10000/ Blastwave

А затем накати пакеты mplayer, gstplugins, gstpluginsgood, gstpluginsbad, gstpluginsugly. Для установки удобнее использовать графический «Диспетчер пакетов». Сделан он по типу Synaptic, но функционально до него пока еще не дотягивает.

Из-за специфики IPS некоторые команды pkg выглядят не так просто, как в Debian. Например, для просмотра информации о пакете следует ввести:

# pkg contents -t dir,file,link,hardlink -o action.name,mode,pkg.size,path,target SUNWzfs

В итоге получим информацию, что куда и как устанавливается, включая права доступа и прочее. К используемым в IPS терминам придется привыкать. Под «образом» понимается место, куда устанавливается пакет, обычно это рабочая ОС. Каждый пакет характеризуется коллекцией объектов (файлы, каталоги, зависимости), где отдельный элемент называется «действием» (action). Как и APT, IPS позволяет легко самому создавать пакеты и репозитарии.

INFO

  • Ситуация в OpenSolaris напоминает RedHat/Fedora. Все новинки, создаваемые в рамках проекта, после тщательного тестирования могут попасть в Solaris.
  • Приятная мелочь: вставленная флешка подхватилась на лету.
  • В качестве альтернативного десктоп окружения обеспечена поддержка KDE 4.1.

WWW

WARNING

Раздел Linux Swap должен находиться после раздела Solaris.

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001