LXF122:OpenSolaris

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

OpenSolaris: Попробуйте другой Unix

Достигли вершин мастерства в Linux? Этим у нас немудрено блеснуть – истинные хакеры, такие как Андрей Соколов, пользуются настоящим Unix.

Возможность применения серверной ОС в домашних условиях очень важна для ее продвижения. Установив Solaris на личный компьютер или ноутбук, программисты и администраторы могут привыкнуть к нему и изучить его в лучшем виде. Вот почему Sun продвигает OpenSolaris.

Для установки OpenSolaris 2009.06 на x86‑й ПК необходимо как минимум 512 МБ оперативной памяти (желательно – не менее 1 ГБ) и 3–3,5 ГБ места на жестком диске, в зависимости от объема ОЗУ. Установка выполняется с LiveCD, который можно бесплатно получить по почте (http://oscd.sun.com) или скачать с httpz;//www.opensolaris.com/get; вы также найдете образ на LXFDVD.

Приготовления

При загрузке с LiveCD вам будет предложено указать локаль (в 2009.06 их 21) и раскладку клавиатуры (43). В обоих случаях можно выбрать русскую; переключение раскладок производится нажатием Ctrl+Shift. Если же вы планируете не только посмотреть, но и установить OpenSolaris на жесткий диск, оставьте английскую раскладку, иначе при первом старте вы не сможете ввести реквизиты латинскими буквами: ваш выбор здесь влияет на параметры установленной системы, но переключение раскладок в ней автоматически не настраивается.

Device Driver Utility любезно сообщит, какое оборудование потребует дополнительной настройки. В данном случае не распозналась звуковая карта.

После загрузки с LiveCD на экране появится Gnome. На рабочем столе присутствует ярлык программы Device Driver Utility, сообщающей, какое оборудование поддерживается системой «из коробки», а для какого придется поискать драйверы. При установке OpenSolaris 2009.06 на три компьютера особых проблем с оборудованием не возникло, но на одном не определилась звуковая карта, а на втором – сетевая. Ниже мы покажем, как добавить их драйверы вручную. На третьем, самом современном ПК, были опознаны все устройства.

Для установки требуется дважды щелкнуть по ярлыку Установить OpenSolaris. Инсталлятор выглядит так же, как и во всех предыдущих версиях. Процедура проходит в четыре этапа (см. Шаг за шагом ниже). Установщик работает около 40 минут, попутно демонстрируя слайды, поясняющие основные возможности OpenSolaris.

Имеющаяся ОС Windows распознается инсталлятором и помещается в меню Grub автоматически. Если у вас на диске есть Linux, скопируйте его файл /boot/grub/menu.lst в безопасное место и добавьте соответствующие записи в /rpool/boot/grub/menu.lst файловой системы Solaris после завершения установки.

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

Первые шаги

После входа в свежеустановленную систему вы увидите все тот же Gnome и стандартный набор ПО: web-браузер Firefox, клиенты электронной почты Thunderbird и Evolution, интернет-пейджер Pidgin (поддерживаются ICQ/Jabber/IRC и прочие), простой текстовый редактор с подсветкой синтаксиса GEdit, проигрыватели Totem и Rhythmbox, собранные на основе GStreamer, просмотрщик изображений и фотоальбом gThumb, Evince для чтения PDF и PostScript и т. д.

В качестве файловой системы OpenSolaris использует ZFS, которая обладает массой интересных возможностей. Мы остановимся на двух: снимках (snapshots) и сжатии.

Снимок представляет собой копию файловой системы, доступную только для чтения. Его создание происходит почти мгновенно, а место на диске он начинает занимать только при изменении исходной ФС (по сути, сохраняются различия между снимком и ее текущим состоянием). Доступ к файлам в снимках осуществляется из каталога .zfs/snapshot в корне файловой системы ZFS. Можно сделать откат к состоянию, зафиксированному в снимке, или восстановить из него отдельные файлы.

Рассмотрим для примера создание снимка домашнего каталога. Для начала выясним имя файловой системы, смонтированной на него, командой zfs list. В моем случае это rpool/export/home/keremet. Для создания снимка с именем monday введите

#pfexec zfs snapshot rpool/export/home/keremet@monday

В результате снимок будет смонтирован на каталог /export/home/keremet/.zfs/snapshot/monday/. Пожелав откатиться к нему, просто наберите:

#pfexec zfs rollback rpool/export/home/keremet@monday

Для удаления снимка служит команда

#pfexec zfs destroy rpool/export/home/keremet@monday

Чтобы делать снимки не всего домашнего каталога, а только его части, можно создать в пуле ZFS дополнительную файловую систему. Считая, что она будет называться test, скомандуйте:

#pfexec zfs create rpool/export/home/keremet/test

В результате созданная ФС будет смонтирована на каталог /export/home/keremet/test, владельцем которого является root. Исправим это:

#pfexec chown keremet:staff /export/home/keremet/test

Команда zfs list показывает, что новая файловая система занимает 18 KБ. По умолчанию сжатие на ней выключено. Для проверки скопируем в каталог test файл в формате BMP, содержащий черный прямоугольник размером 3072×2304 – ее размер увеличится до 27,1 МБ. Удалим его и включим сжатие:

#pfexec zfs set compression=on rpool/export/home/keremet/test

После повторного копирования рисунка размер ФС станет равным 1,82 МБ. Включать и выключать сжатие можно в любой момент, что очень удобно: одни файлы (текст и т. п.) можно упаковывать, записывая их при включенном сжатии, а другие (JPG, MP3, AVI) – оставлять как есть.

Устраним недостатки

Да, именно так. Прежде всего, следует найти и установить недостающие драйвера. Начнем с идентификации «проблемного» оборудования. Это можно сделать командой pfexec /usr/X11/bin/scanpci, выводящей информацию обо всех PCI-устройствах. Вот что она сообщает о моей аудиокарте:

pci bus 0x0000 cardnum 0x07 function 0x05: vendor 0x1106 device 0x3058
VIA Technologies, Inc. VT82C686 AC97 Audio Controller

Полный список поддерживаемого оборудования (Hardware Compatibility List) со ссылками на сайты, откуда можно скачать драйверы, находится по адресу http://www.sun.com/bigadmin/hcl, но в моем случае ссылка в HCL оказалась нерабочей. Проблема решилась установкой Open Sound System (OSS): в Linux эта звуковая подсистема признана устаревшей и заменена ALSA, но в других Unix это не так. Я просто скачал с http://www.opensound.com пакет формата SVR4 (Solaris 10/11 x86/AMD64) и установил его командой pfexec pkgadd -d oss-solaris-v4.1-1052-i386.pkg. После этого потребовалось перезагрузиться. Тестирование звуковой карты выполняется командой osstest, выдающей звук сначала на левую колонку, потом на правую, затем на обе.

Аналогично, с использованием HCL, решилась проблема с сетевой картой. Дополнительно можно посетить сайт http://homepage2.nifty.com/mrym3/taiyodo/eng/, содержащий большую коллекцию драйверов сетевых карт для Solaris.

Начав работу, русскоязычный пользователь сразу же обратит внимание на то, что некоторые символы вводятся не так, как изображено на клавиатуре. Например, запятая в русской раскладке – Shift+6, а буквы «Ё» вообще нет. В качестве решения предлагается настроить X.org и отключить IIIM (Internet/Intranet Input Method).

Чтобы создать конфигурационный файл X.org, следует сначала остановить сервер. Для этого выключите сервис GDM:

#pfexec svcadm disable gdm

Далее, из консоли, запустите Xorg -configure и скопируйте полученный файл на его законное место. Затем можно вернуться в графику:

#pfexec /usr/X11/bin/Xorg -configure
#pfexec cp xorg.conf.new /etc/X11/xorg.conf
#pfexec svcadm enable gdm

Откройте конфигурационный файл X.org

#pfexec gedit /etc/X11/xorg.conf

и отредактируйте секцию InputDevice, относящуюся к клавиатуре, дописав в нее следующие строки (LXF117):

Section “InputDevice”
  ...
  Option “CoreKeyboard”
  Option “XkbRules” “xorg”
  Option “XkbModel” “pc105”
  Option “XkbLayout” “us,ru(winkeys)”
  Option “XkbOptions” “grp:ctrl_shift_toggle,grp_led:scroll”
EndSection

Чтобы добавить поддержку буквы «Ё», потребуется отредактировать раздел xkb_symbols “winkeys” в файле /usr/X11/lib/X11/xkb/symbols/pc/ru. Предварительно его нужно сделать доступным для записи:

#pfexec chmod a+w /usr/X11/lib/X11/xkb/symbols/pc/ru
#gedit /usr/X11/lib/X11/xkb/symbols/pc/ru &

После всех строк key <…> {…} (но перед закрывающей раздел фигурной скобкой) следует написать:

xkb_symbols “winkeys” {
  …
  key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
};

Закройте GEdit и вновь сделайте файл доступным только для чтения:

#pfexec chmod a-w /usr/X11/lib/X11/xkb/symbols/pc/ru

Конечно, вносить изменения в подобные файлы вручную не вполне корректно. Скорее всего, проблема с буквой «Ё» будет исправлена в следующем релизе OpenSolaris.

Наконец, перейдите в меню Система > Параметры > Сеансы и снимите флажок IIIM Startup. Настройка завершается перезапуском X.org – например, нажатием Alt+Ctrl+BackSpace. Любители редактора Vim, разумеется, могут ограничиться одной перезагрузкой.

После установки OpenSolaris в системе выполняется много лишних для домашнего пользователя сервисов, которые потребляют ресурсы; отключим их. Для этого можно воспользоваться командой svcadm, графическим менеджером Gnome (Система > Администрирование > Службы) или более продвинутым smfgui (http://os-solaris.ru/pakety/system/), предоставляющим гораздо более удобный интерфейс и информацию о службах и их зависимостях.

На мой взгляд, следует отключать следующие сервисы:

  • svc:/application/pkg/update:default Периодически проверяет наличие новых пакетов в репозиториях. Разумеется, при этом вы не будете получать уведомления о них и, помимо прочего, можете пропустить какое-нибудь важное исправление.
  • svc:/network/ssh:default Позволяет получить доступ к машине по протоколу SSH.
  • svc:/system/filesystem/autofs:default Отслеживает попытки доступа к файловым системам, описанным в файле /etc/auto_master, и монтирует их по мере необходимости. Размонтирование происходит по тайм-ауту.
  • svc:/system/filesystem/rmvolmgr:default Несмотря на то, что в документации этот сервис описан как необходимый для автоматического монтирования съемных носителей, при его отключении «флэшки» монтируются быстрее.

Добавим приложений

Следующее действие – установка недостающих прикладных программ одним из четырех доступных способов: через специальный инсталлятор, с использованием менеджера пакетов IPS, из пакепакетов старого формата (SVR4) и в крайнем случае – сборкой из исходных текстов.

Первым способом, например, устанавливается OpenOffice.org, взятый с официального сайта. По умолчанию, в нем отсутствует проверка орфографии русского языка. Чтобы исправить этот недочет, надо выбрать пункт меню Сервис > Язык > Словари в интернет. В результате в браузере откроется сайт с расширениями для OOo. Загрузите отсюда словарь, затем выберите в OOo пункт меню Сервис > Управление расширениями, в появившемся окне нажмите Добавить и укажите скачанный файл.

Родная для OpenSolaris система управления пакетами называется IPS (Image Packaging System). Команда pkg позволяет создавать, устанавливать, искать, обновлять и удалять пакеты, полностью проверяя зависимости между ними. В качестве графической альтернативы можно использовать Package Manager, имеющий интуитивно понятный интерфейс а-ля Synaptic.

Для поиска нужных пакетов можно использовать репозитории http://pkg.opensolaris.org, http://pkg.sunfreeware.com:9000 и http://blastwave.network.com:10000/.

Достаточно большое количество программ распространяется в пакетах старого формата, как OSS. Их можно найти на сайтах http://sunfreeware.com, http://www.sunfreepacks.com, http://www.solaris4you.dk/sunsolaris.html.

Иногда разыскать необходимое приложение для Solaris не удается, однако оно существует для Linux. Примерами могут служить бизнес-приложения, разработанные на заказ, и различное проприетарное ПО. Такие программы можно запустить в OpenSolaris в так называемой типизированной зоне. Наряду с ZFS, зоны (zones) – одно из широко рекламируемых преимуществ Solaris: за дополнительной информацией можно обратиться к http://opensolaris.org/os/community/brandz/install/.

Давайте рассмотрим, как запустить Linux-приложение в типизированной зоне на примере Skype. Можно воспользоваться руководством, опубликованным на http://blogs.sun.com/twisti/entry/skype_on_solaris, но есть и более простой способ. Первым делом создадим и настроим зону:

# pfexec zonecfg -z linuxzone
linuxzone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:linuxzone> create -t SUNWlx
zonecfg:linuxzone> set zonepath=/export/linuxzone
zonecfg:linuxzone> add net
zonecfg:linuxzone:net> set physical=rge0
zonecfg:linuxzone:net> set address=192.168.1.3/24
zonecfg:linuxzone:net> end
zonecfg:linuxzone> add attr
zonecfg:linuxzone:attr> set name=”audio”
zonecfg:linuxzone:attr> set type=boolean
zonecfg:linuxzone:attr> set value=true
zonecfg:linuxzone:attr> end
zonecfg:linuxzone> commit
zonecfg:linuxzone> exit

Для управления зонами служит команда zonecfg. Как можно видеть, мы создаем (create) зону linuxzone типа ‘lx’ (Linux), корневая файловая система которой (zonepath) расположена в /export/linuxzone. Затем к ней добавляется поддержка сети (физический интерфейс rge0 – первая сетевая карта Realtek; адрес 192.168.1.3 с маской подсети 255.255.255.0) и атрибут audio, значение которого устанавливается в true – это предоставит Skype доступ к звуковой подсистеме OpenSolaris.

Затем требуется скачать с сайта (или взять с LXFDVD) http://opensolaris.org/os/community/brandz/ образ зоны centos_fs_image.tar.bz2 (как нетрудно догадаться, он базируется на CentOS). Команда zoneadm понимает только формат tar.gz, так что необходимо выполнить перепаковку:

#bunzip2 < centos_fs_image.tar.bz2|gzip > centos_fs_image.tar.gz

Установим зону с полученного образа

#zoneadm -z linuxzone install -v -d /export/home/keremet/centos_fs_image.tar.gz

и загрузим ее командой:

#zoneadm -z linuxzone boot

В зоне имеется единственный пользователь root с паролем root, но этого достаточно, чтобы подключиться к ней по SSH с X-пробросом. Для проверки работы звуковой подсистемы в зоне можно использовать любую команду, которая выдаст короткий аудиосигнал:

# cat /etc/passwd > /dev/dsp

При помощи команды scp копируем в зону архив skype_static-2.0.0.72‑oss.tar.bz2 и распакуем его. Попытка запуска Skype обречена на провал, поскольку в зоне отсутствуют необходимые библиотеки. Команда ldd показывает, что не хватает libasound.so.2, libXss.so.1, libXfixes.so.3, libXinerama.so.1, libstdc++.so.6. Я просто скопировал необходимые файлы из Kubuntu 6.06, в котором Skype работает без проблем. При желании, вы можете поступить более изящно, ведь зона – это виртуальная Linux-машина, на которую у вас есть полные права, в том числе возможность устанавливать любые пакеты из сетевых репозиториев. Так или иначе, теперь мы можем наслаждаться общением в Skype из OpenSolaris, по крайней мере, пока его использование в России не признают незаконным. Предупреждая ваш вопрос, сразу скажу: увы, Windows-зоны в Solaris не предусмотрены.

Для упрощения запуска Skype можно настроить SSH-доступ к зоне по ключу и создать скрипт, который будет запускаться по нажатию кнопки на панели GNOME:

#!/bin/bash
 if [ “`pfexec zoneadm list -cv|grep linuxzone|awk '{print $3}'`” !=“running” ]; then
  pfexec zoneadm -z linuxzone boot;
 fi;
 ssh -X root@192.168.1.3 /root/skype_static-2.0.0.72-oss/skype
 while [ “$?” != “0]; do
   echo попытка соединения с зоной
   sleep 1;
   ssh -X root@192.168.1.3 /root/skype_static-2.0.0.72-oss/skype
 done

Данный сценарий загружает зону, если она еще не выполняется, и запускает программу skype. От момента начала загрузки до подключения по SSH проходит 5–10 секунд.

Среди препятствий для использования OpenSolaris в домашних условиях выделяют сложность его настройки, малое количество игр, недостаточный объем русскоязычной документации, низкую производительность драйвера файловой системы FAT. Однако есть люди, для которых эти недостатки не являются существенными, а потому вполне довольные OpenSolaris, установленным на домашнем компьютере. Попробуйте – может быть, вы тоже входите в их число?

Шаг за шагом: Устанавливаем OpenSolaris 2009. 06

Шаг 1

1 Диск
Выберите раздел для установки OpenSolaris или создайте таковой. Доступные диски и их размеры в ГБ перечислены в верхней части окна. Переключатель устанавливается в одно из положений: Использовать весь диск или Раздел диска; существующие первичные разделы отображаются ниже. Для выбора раздела надо указать пункт ‘Solaris’ в выпадающем списке слева: установщик создаст на нем пул ZFS и область подкачки. Не забудьте сохранить все важные данные!

Шаг 2

2 Часовой пояс
Здесь указываются часовой пояс, дата и время. В верхней части панели отображается карта мира, на которой отмечены крупные города; внизу расположены выпадающие списки. Часовой пояс можно выбрать с помощью карты щелчком по городу, или из выпадающих списков (регионов, стран и часовых поясов). Содержимое каждого списка определяется выбором в предыдущем.

Шаг 3

3 Национальная настройка
На данном шаге устанавливается системная локаль – текущий (выбранный при старте LiveCD) вариант будет отмечен по умолчанию. Инсталлировав OpenSolaris, вы сможете изменить данную настройку в любое время и для конкретного сеанса: достаточно нажать кнопку Параметры в диалоговом окне входа в систему.

Шаг 4

4 Пользователи
Введите пароль суперпользователя-root, а также реальное и регистрационное имена обычного пользователя и его пароль. Вы также можете изменить здесь имя компьютера. Только не забудьте указанные вами реквизиты!

Сходство и различия

Несмотря на Unix-подобие, внутри Solaris значительно отличается от типового дистрибутива Linux. Вы можете видеть это уже по структуре файловой системы и основным командам. Для многих из них в OpenSolaris предусмотрены две версии: родная в /usr/bin и GNU – в /usr/gnu/bin. Стремясь упростить переход для пользователей Linux, разработчики поместили /usr/gnu/bin первым в переменной PATH.

Однако для ряда инструментов GNU-аналоги не предусмотрены, что может вызвать проблемы. Хорошим примером является ifconfig: начав пользоваться им, вы быстро почувствуете непривычность синтаксиса. Различаются даже названия интерфейсов: вместо eth0 вы увидите nge0 или bge0, в зависимости от драйвера сетевой карты. Чтобы изучить новые команды, потребуются некоторые усилия.

Различия в файловой системе
Linux OpenSolaris
/home /export/home
/var/log /usr/adm, /var/adm, /var/log
/tmp /var/tmp
/sys /devices
/dev /dev
/lib/modules/foo/* /kernel/drv/*
/boot/grub /rpool/boot/grub
Различия в командах
Linux OpenSolaris Назначение
sudo pfexec Выполнить команду от имени root
apt-cache search foo pkg search -r foo Поиск пакета, содержащего foo
apt-get install foo pkg install foo Установить пакет foo
apt-get dist-upgrade pkg image-upgrade Обновить все пакеты, для которых доступны свежие версии
lsmod modinfo Вывести загруженные драйверы
insmod modload Загрузить драйвер
rmmod modunload Выгрузить драйвер
top top, prstat Вывести информацию о выполняющихся процессах
free vmstat Вывести сведения о виртуальной памяти
cat /proc/cpuinfo psrinfo -v, cpuinfo Вывести информацию о процессоре
ifconfig ifconfig -a Вывести список сетевых интерфейсов
parted format Отформатировать диск
Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию