LXF79:Solaris

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

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

Конкуренция в мире Open Source обостряется: фирма Sun открыла исходные коды своей Unix-системы уровня предприятия. Майк Сондерс исследовал OpenSolaris и покажет вам, как с ним работать.

Содержание


Вторник, 14 июня 2005 года, можно считать одним из значительнейших дней в истории Open Source. В этот день Sun Microsystems открыла миру исходный код и процессы разработки своей первоклассной операционной системы Solaris из семейства Unix, под именем OpenSolaris. Пять лет назад такой ход состороны крупной коммерческой Unix-фирмы был бы немыслимым: ведь исходный код – главный козырь подобных фирм, и сама идея вовлечения посторонних в процесс разработки считалась ошибочным шагом. Подобные изменения демонстрируют, насколько движение Open Source и свободное ПО влияют на большой бизнес и как он реагирует.

Предназначенный для промышленности, Solaris не слишком популярен среди обычных пользователей, но является основой ряда важнейших компьютерных систем мира, обслуживая критические базы данных, крупномасштабные web-серверы и центры обработки данных таких фирм-гигантов, как Boeing, Viacom и Bank of America. Исторически Sun фокусировалась на собственной платформе SPARC для Solaris, но недавно фирма обнаружила, что соотношение «цена-производительность» ПК на x86 – слишком сильный аргумент для любого покупателя, чтобы его игнорировать, и, как следствие, поспешила с разработкой Solaris для обычных ПК.

Так что же подвигло Sun на столь дерзкий, можно сказать, исторический шаг – открыть свою флагманскую ОС? Sun «трубит» о своей истории поддержки открытых стандартов и выражает надежду, что открытие будет «способствовать инновациям и сотрудничеству, необходимым для формирования новых сообществ разработчиков и пользователей». Всё правда, но Sun, несомненно, еще и чувствуетнакал популярности Linux на рынке малых и средних серверов. Система Solaris заслужила репутацию надёжной и быстрой на многопроцессорных серверах – зачастую именно эту ОС выбирают для хранения и обработки больших объёмов данных, тогда как Linux считается сравнительно незрелым и неустойчивым. Но эта ситуация не вечна, и Sun понимает, что перемены уже витают в воздухе.

Зачем пробовать OpenSolaris?
  • Расширьте свои навыки работы в Unix – Solaris абсолютно независим от Linux.
  • Попробуйте функции класса предприятия на домашней системе.
  • Разрабатывайте и тестируйте программы на совместимость с коммерческим Solaris.
  • Поглядите на основного конкурента, с которым сталкивается Linux-сообщество.

Пословица Open Source «больше глаз, меньше ошибок» тоже относится к критическим факторам. У коммерческого Solaris есть огромное сообщество разработки и поддержки, но вовлечение ещё большего числа людей – мудрый шаг Sun, нацеленный на сокращение времени решения проблем и реализации функций в ОС. Предоставив миру Solaris под именем OpenSolaris (под своей одобренной OSI лицензией CDDL), Sun сможет воспользоваться преимуществами Open Source, сделав ряд своих высокотехнологичных функций доступными для всех и получив почет в ответ.

На следующих страницах мы расскажем вам, как поставить и запустить эту увлекательную систему, изучим её основные функции и «нырнём» поглубже. На прилагаемом диске вы найдете все необходимое, чтобы испытать эти знания на практике!

Запускаем OpenSolaris

Во-первых, OpenSolaris включает не всё, что есть в Solaris. Sun разрабатывает свою систему (бывшую SunOS) с 1980-х годов, и вложила колоссальные средства в высокотехнологичные функции, обеспечивающие потрясающую масштабируемость и надёжность, зачастую используя код, разработанный другими компаниями. Следовательно, по юридическим соображениям нельзя открыть всё разом, так что Sun выпустила пока «сердце» своей ОС, с надеждой позже добавить остальное. Это привело к появлению ряда «дистрибутивов» OpenSolaris, взявших открытый фирмой код и расширивших его до пригодной к использованию ОС, включив существующие свободные инструменты.

Система Belenix Live (belenix.sarovar.org), помещённая на наш диск, одна из таких ОС. Belenix использует ядро Solaris, библиотеки и «пространство пользователя» – userland (основные инструменты командной строки), предоставленные сообществу фирмой Sun, с более привыч-ными дополнениями (GNU и Open Source), увеличивающими общую полезность.

Среди других ОС, базирующихся на OpenSolaris – Nexenta, пытающаяся скрестить Solaris и Debian, и Schillix, представляющий собой компактный вариант. Будучи системой Unix, Solaris использует X Window System, как и Linux, и Belenix включает X.org 6.9.0 вместе с Xfce и KDE.

Внешне Belenix похож на многие дистрибутивы Linux. Solaris стремился к этому ещё до того как Sun открыл его код, так что Solaris 10 (текущий релиз) использует в качестве рабочего стола по умолчанию основанный на Gnome JDS. Но, копнув поглубже, вы найдете поразительно мощные функции и возможности, благодаря которым Solaris ходит в любимчиках у многих администраторов. Здесь нет функций, способных совершить революцию в работе с настольными системами, но на «большом железе» они могут оказаться очень ценными. Со многими из них мы познакомимся через мгновение…

  • Вставьте DVD в привод, перезагрузите компьютер, и – вперёд. Belenix – Live-версия OpenSolaris, так что работает непосредственно с диска и не требует установки: просто выберите её в загрузочном меню, нажмите Enter, и она запустится (требуется 256 МБ памяти). Опыт работы в Linux/Unix не помешает!
  • Теперь система готова к загрузке. Если вы увидите серьёзные ошибки во время процесса запуска, попробуйте перегрузиться и выбрать пункт «No ACPI» на первом шаге. Нужно будет выбрать раскладку клавиатуры и рабочий стол; пока что выберите Xfce, поскольку он быстр, а его меню содержит ссылки на полезные инструменты Solaris.
  • Если всё будет нормально, вы окажетесь в графическом окружении – Solaris под капотом, популярный GUI снаружи (KDE также доступен и великолепно запускается). Вы обнаружите множество знакомых приложений, но чтобы увидеть внутренности OpenSolaris, откройте терминал, щёлкнув левую иконку на нижней панели.
  • При желании вы можете установить Belenix на ваш жёсткий диск, хотя это требует технической подготовки и выходит за пределы этой статьи. Однако если вы всё же хотите сделать это, ознакомьтесь с hdinstall.html в разделе Distros/Belenix на нашем диске, затем введите hdinstaller в окне терминала…

Принимайтесь за вашу новую ОС

Загрузившись, приступим к изучению системы! Если вы регулярно работаете в Linux, файловая система и многие привычные команды будут вам знакомы – Unix есть Unix, как его ни пиши. К счастью, Belenix использует командную оболочку GNU Bash; однако вы обнаружите, что функциональность многих инструментов командной строки, используемых в Solaris, довольно ограниченна (как и в большинстве коммерческих Unix). Но в /usr/foss вы найдете настоящий оазис – набор признанных свободных инструментов.

Также обратите внимание, что окружение по умолчанию ориентировано скорее на администраторов, чем на разработчиков и конечных пользователей. Никаких подсвеченных ls-команд, виртуальные терминалы не активированы, и с большинством утилит почти отсутствует обратная связь. Если вы опробовали одну из BSD-систем с диска LXF77, то уже поняли, что проблема решается парой дополнительных нажатий на клавиши. (Попробуйте ls -F, для получения более подробного вывода). Это лишь небольшая хитрость, поскольку Solaris не отвлекается на украшательства консоли, будучи ориентированным на управление мощными рабочими станциями и серверами.

В качестве настольной системы OpenSolaris (включая его вариант Belenix) ведёт себя подобно любому популярному Linux. Он надёжен, работает на порядочной скорости и поддерживает известные открытые приложения типа Firefox и Gimp. Однако исторически сложившаяся ориентация на машины Sun SPARC означает, что уровеньподдержки оборудования PC, аналогичный Linux или FreeBSD, не обеспечивается – возможно, вам не удастся заставить работать все устройства. Поскольку Solaris разработан для рабочих станций и серверов, а не для настольных домашних систем, отсутствие поддержки видеокарты UltraMegaWhizzBang 4000 не является главным критерием выбора, но будем надеяться, что проект OpenSolaris выведет его на один уровень со своим открытым собратом.

Профилирование с DTrace

Даже учитывая быстрое вторжение Linux на рынок серверов, здесь всё ещё сильна конкуренция между коммерческими поставщи-ками Unix (Sun, HP и IBM), и исследования и разработки приводят к крупным обновлениям. Говоря о Sun, её самые последние разработки – это DTrace и Zones, и мы искренне аплодируем компании, сделавшей такие технологии доступными под открытой лицензией. Давайте взглянем на эти новомодные функции…

DTrace, система динамической трассировки, считалась одной из самых раскрученных функций в Solaris 10, выпущенном в январе 2005 года; и по праву. Устанавливая «щупы» (probe) DTrace в различных частях системы, администратор может определить узкие места производительности и убедиться, что всё работает как часы. Этими щупами динамически управляет ядро: оно устанавливает их в пространство исполняющихся процессов, и когда они срабатывают, можно запустить в ответ какие-то собственные действия.


Что делает DTrace столь мощной, так это отсутствие необходимости вносить изменения в систему – ни тебе отладочных режимов, ни перекомпиляции программ. Она разработана для использования на промышленных машинах для решения реальных проблем. Сложновато? Лучший способ во всём разобраться – посмотреть её в действии. Когда вы загрузитесь в Belenix, наберите и выполните следующий скрипт:

#!/usr/sbin/DTrace -s
syscall::write::entry
/execname == «bash»/
{
              printf(«Bash PID %d called write.\n», pid);
}

DTrace использует собственный язык сценариев «D», представляющий собой смесь C и Sh. В приведённом примере мы сперва вызываем интерпретатор DTrace и велим ему установить щуп на системный вызов write. Затем в строке execname мы указываем, что хотим узнать, когда оболочка Bash выполнит этот системный вызов. Так что, запустив этот скрипт, вы получите информацию, когда Bash вызовет write. Это базовый пример, но его достаточно, чтобы увидеть, как всё это работает.

В сочетании с D, DTrace является безмерно гибким (и порой трудным!) инструментом, уже доказавшим свою полезность. Разработчики Belenix используют сценарии DTrace для повышения скорости загрузки системы, и если вы заглянете в /opt/DTT/Bin, то найдёте кучу полезных скриптов для мониторинга производительности, сетевой активности и т.д.


Виртуальные зоны

Зоны – это виртуальные системы Solaris, нечто среднее между chroot и VMware. Например, вместо того чтобы устанавливать отдельные машины для почтового, web- и FTP-серверов или запускать их всех наодном компьютере, что неминуемо влечёт проблемы безопасности, вы можете построить виртуальные машины для них на одном компьютере. Другими словами, с виду это похоже на отдельные установки Solaris, но внутри все они работают поверх одной реальной ОС – в так называемой глобальной зоне.

Как я могу?
  • ВОЙТИ В СИСТЕМУ?

По умолчанию графический рабочий стол запускается автоматически, но если вам нужно ввести реквизиты, возьмите имя пользователя «root» и пароль «belenix».

  • НАЙТИ МОИ ДИСКИ?

Вы не найдете /dev/hd* или /dev/sd* – попробуйте заглянуть в /dev/disks, чтобы увидеть список узлов (node), представляющих ваши жёсткие диски. Числа соответствуют контроллеру диска, номеру диска и разделу или слайсу.

  • ЗАПУСТИТЬ X?

В отличие от большинства дистрибутивов Linux, команда startx в Belenix отсутствует; вместо неё нужно вводить xinit – запустится X с одним окном терминала. В этом терминале вы можете, набравшись храбрости, ввести startxfce3, startkde или даже twm…

  • ВЫКЛЮЧИТЬ СИСТЕМУ?

В командной строке наберите shutdown -g0 -i0, затем y (это отличается от обычного синтаксиса Linux).


Виртуальные зоны независимы, и если одна «упадёт» или будет взломана, на остальные это не повлияет. Тем самым снижаются затраты на оборудование и время восстановления безопасной работы: если зона вашего виртуального web-сервера будет скомпрометирована, вы сможете за несколько секунд просто удалить её и скопировать поверх резервную зону. Существует множество других применений, но если вы пользовались другими открытыми инструментами виртуализации, например, Xen или User-Mode Linux, вам всё это будет знакомо.

Для создания зоны определяется каталог на жёстком диске, который будет использоваться как файловая система зоны, а затем указывается, должна ли зона запускаться автоматически. Можно также настроить для зоны сетевые интерфейсы, и когда она будет запущена, входить в неё как в обычную систему, используя zlogin zone. Одна из интеллектуальных функций зон – возможность наследования зоной части дерева каталогов основной системы, так что вам не потребуется копировать кучу файлов (и затем разгребать проблемы, если чего-то не хватит).

Основными инструментами настройки зон в Belenix являются zonecfg и zoneadm (сюда также входит скрипт createzone, пока не свободный от ошибок). Полный процесс создания зоны длинноват и в этой статье не уместится – мы просто попытаемся дать небольшое введение. Он, впрочем, не сложен, и вы найдёте руководство на нашем диске в файле zonehowto.txt (в секции Distros/Belenix). Чтобы разобраться с большинством функций зон, поищите более подробные руководства в Интернете: одни из лучших находятся на сайте Sun (www.sun.com/bigadmin/content/zones).

Солнце и тень

Ресурсы

Основной сайт разработки, с исходным кодом и списками рассылки

Официальная страница Solaris

Дистрибутив Nexenta OpenSolaris

Дистрибутив Schillix OpenSolaris

Двоичные пакеты для Solaris

Информация о Solaris на PC x86

Итак, что ждёт OpenSolaris впереди? Показательно, что к середине февраля 2005 года более 11000 человек зарегистрировались на сайте проекта (из них в Sun работают только 1200), и было выполнено более 28000 загрузок исходного кода. Участие в реализации кода, впрочем, не столь велико: из 79 изменений в дерево кода, присланных сообществом, приняты только 34. Сильно беспокоиться не о чем, учитывая, что с момента открытия кода прошло меньше года, но нужно работать над улучшением ситуации. Будущие релизы основного продукта – Solaris – будут базироваться на OpenSolaris, так что чем больше участие, тем лучше.

В последние годы Sun много критиковали за явно двойственное отношение к Open Source; с одной стороны, она стремилась укрепить позиции Solaris в борьбе с Linux, но в то же время это был чрезвычайно полезный игрок сообщества в смысле приобретения и выпуска исходного кода OpenOffice.org. Теперь, когда большая часть Solaris открыта, есть надежда на появление ещё более тесных связей между Sun и миром свободного ПО. Будет ли свободный обмен кодом между Solaris и Linux, зависит от вопросов лицензирования; CDDL и GPL2 не совместимы, но ходят слухи, что Sun собирается перейти на другую лицензию. Поживём – увидим…

Но один код сам по себе не принесёт успеха, и Sun прилагает немало усилий, формируя для OpenSolaris сообщество, списки рассылки и доступную процедуру разработки. По всеобщему признанию, примерно то же происходит с OpenOffice.org, где большая часть пока что разрабатывается инженерами Sun. Вероятно, объяснением является чудовищная сложность кода OpenOffice.org, но мы надеемся, что Sun сможет создать вокруг OpenSolaris тот же уровень энтузиазма, что и у разработчиков Linux и BSD. Здесь заложен значительный потенциал – правильно использованный, он поможет всем: разработчикам свободного ПО, пользователям Solaris и всем, кто работает над каким-либо проектом операционной системы.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию