Единое окно доступа к образовательным ресурсам

Операционная система Solaris: Учебное пособие

Голосов: 2

Курс предназначен для самостоятельного освоения ОС Solaris. По мере изучения курса читатель сможет познакомиться с основными принципами систем UNIX, на практике выполнять задачи администрирования систем Solaris. Кроме этого, курс дает возможность научиться самостоятельно находить информацию при работе с системой и предлагает конкретные способы ее поиска. Вторая задача курса - снабдить читателя справочным материалом, достаточным для практической работы системного администратора. Для студентов высших учебных заведений, обучающихся по специальностям в области информационных технологий. Приведены оглавление, введение и первая глава книги.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
    Лекция 1                                      Для начинающих работать в UNIX


      Лекция 1. Для начинающих работать в UNIX

     Эта книга рассчитана на тех, кто уже представляет себе, что такое
операционная система. Более того, мы полагаем, что читатель знаком с
какой-нибудь системой, например с Windows. Сейчас, когда российская
пресса полна публикаций о борьбе с пиратством и установке бесплатной
Linux в учреждениях образования и в корпорациях вместо пиратской
Windows, было бы естественно ожидать, что количество опытных и зна-
комых с UNIX людей уже достаточно велико. На самом деле и сейчас
находится немало людей, которые только начинают думать о переходе на
системы UNIX.
     Именно для тех, кто еще не знаком с этим семейством систем, напи-
сана первая глава. Если вы уже имели дело с Linux, FreeBSD, QNX, Solaris
или с любой другой системой UNIX, перелистните несколько страниц –
или прочтите главу по диагонали, если любите чувствовать, что читаете
давно знакомые мысли и формулировки, живущие в вашей голове уже
не первый год, месяц или день.

           Открытые системы и их преимущества
     Возможно, вам доводилось бывать в пивных ресторанах, где процесс
пивоварения можно наблюдать из обеденного зала, глядя сквозь прозрач-
ную стену на медные трубы и чаны с будущим пивом. Конечно, никто при
этом не дает вам гарантии, что вы пьете свежее пиво, сваренное именно
в этих чанах, но по крайней мере вы вольны верить созданной иллюзии.
В маленьком ресторанчике в Хейдельберге, где варят самое плотное пиво
в мире, эта иллюзия в самом деле воплощена в реальности: сам смотришь,
как пиво из чана переливается в бочки, канистры и затем – в пивные
кружки посетителей.
     Первое, самое очевидное преимущество открытых систем (то есть
систем, исходный код которых доступен публике) состоит в том же самом:
каждый может взять исходный код продукта, откомпилировать его само-
стоятельно и получить операционную систему – такую как ему хотелось.
В любой момент вы можете просмотреть этот исходный код и убедиться,
что в нем нет вредоносных «закладок», которые на официальном языке
называются «недокументированными возможностями». Если вы запо-
дозрили, что система работает с ошибками, вы сами можете обнаружить
источник ошибки в исходном коде.
     Второе преимущество открытой системы в том, что она бесплатна.
Нам неизвестны продукты с открытым кодом, которые бы продавались
за деньги. С этим связано и третье преимущество: так как производитель

                                  23


Курс                                         Операционная система Solaris


системы должен на чем-то зарабатывать деньги, то он обычно предлагает
удобную и качественную поддержку. Качество поддержки в этом случае
может быть выше, чем у тех систем, которые сами по себе продаются
за деньги, так как разработчики, открывающие код, живут только под-
держкой, и снижение ее качества – верное самоубийство для них. Кстати,
качество кода – это еще один из плюсов открытых систем, потому что
разработчику хочется признания коллег, а не насмешек, и код часто ока-
зывается эффективным, понятным и хорошо откомментированным.
      Четвертое преимущество открытых систем – широкое тестирование
и быстрота обновлений. Вокруг каждого открытого продукта образу-
ется не только группа разработчиков, но и сообщество пользователей,
которые после выхода свежей версии быстро обнаруживают ошибки и
рассказывают о них разработчикам, а те быстро исправляют ошибки и
выпускают обновления.
      Есть и пятое преимущество – сертифицировать открытый код
проще, ибо не требуется никаких согласований для передачи его в серти-
фицирующую организацию.
      Если вы еще не стали убежденным сторонником открытого кода к
этому абзацу, попытаемся впечатлить вас тем, что подавляющее боль-
шинство открытых систем не подвержены заражению существующими
компьютерными вирусами. Это не значит, что открытость системы спаса-
ет ее от вторжения, это лишь подчеркивает тот факт, что пока количество
вирусов для открытых программ невелико, а безопасность этих программ
разработчики поддерживают на высоком уровне.
      Вполне естественно, что небольшие группы – разработчики про-
граммного обеспечения, получающие основной доход от продажи плодов
своего труда, могут относиться негативно к идее открытого кода: что же
тогда будет приносить им доход, если открывать код всем желающим?
Одному из нас пришлось наблюдать постепенное «просветление» такой
группы разработчиков, которой на переговорах с цифрами в руках пока-
зали, что количество пользователей открытых программ растет лави-
нообразно и доход от технической поддержки быстрорастущей массы
пользователей с лихвой покроет отсутствие выручки за продажу самого
программного обеспечения.
      К 2008 году во всем мире сформировалось две новых бизнес-модели,
связанных с информационными технологиями, – бизнес технической
поддержки открытых решений (типа поддержки Solaris компанией Sun
Microsystems) и предоставление платного доступа к удаленным службам
(типа Google Documents или Google Maps). В следующих главах мы рас-
скажем о работе с системой Solaris – одной из ярких иллюстраций успеш-
ности, новизны и динамики современного рынка IT.


                                  24


Лекция 1                                       Для начинающих работать в UNIX


             Краткая история семейства UNIX

                           Общая история
     Первая версия многозадачной многопользовательской системы
UNIX была разработана в 1969 году сотрудниками подразделения Bell Labs
фирмы AT&T Деннисом Ритчи (Dennis Ritchie) и Кеном Томпсоном (Ken
Thompson). Она была написана на ассемблере для компьютера PDP-7.
К лету 1972 года система была переписана на язык высокого уровня С,
что позволяло перенести ее на любую аппаратную платформу. Создатели
UNIX впервые сделали операционную систему, полностью написанную
на языке высокого уровня.
     Первым компьютером, которым управляла новая версия системы,
стал компьютер PDP-11 компании Digital Equipment Corporation (DEC).
Несколько десятилетий спустя, в 90-е годы XX века, DEC была переиме-
нована в Digital, затем поглощена компанией Compaq, которая, в свою
очередь, слилась с Hewlett Packard.
     В начале 70-х годов XX века вдохновленные новыми идеями UNIX
выпускники Университета в Беркли (University of California – Berkeley)
начали работу над собственной версией UNIX.
     В 1977 году вышла первая версия Berkeley Software Distribution
(BSD) – ныне широко известной версии UNIX. Так как эта система была
основана на коде AT&T, для ее использования была необходима лицензия
от AT&T. Разработчики BSD, подстегиваемые ростом цен на лицензии,
полностью переписали исходный код системы к 1991 году.
     После этого разработки UNIX в мире пошли в двух направлениях:
одни команды разработчиков взяли за основу версию Беркли, другие –
версию System V Release 4 (часто это название сокращают до SVR4 и
обычно произносят как «систэм файв релиз четыре»), которая была раз-
работана AT&T.
     Этот краткий экскурс в историю UNIX необходим нам для того,
чтобы понимать, отчего все диалекты UNIX имеют много схожего, но
некоторые отличия между разными вариантами систем иногда удивляют
или раздражают нас.

                         Новейшая история

     Solaris относится к ветви System V. Это означает, что в этой системе
приняты стандартные для указанной ветви структура каталогов с файла-
ми конфигурации, порядок загрузки ОС и системные утилиты, а также
их ключи.


                                   25


Курс                                           Операционная система Solaris


     С другой стороны, в Solaris используются некоторые весьма специ-
фичные именно для этой системы соглашения, которые не имеют отно-
шения ни к System V, ни к BSD, поэтому такие случаи будут оговорены
особо, чтобы не дезориентировать тех читателей, которые уже имеют
опыт работы с другими UNIX’ами.
     В настоящее время широкое распространение получили несколько
систем UNIX: Solaris, FreeBSD, Linux, QNX и ряд других, включая осно-
ванную на UNIX систему Mac OS X от Apple. Все системы Linux основаны
на ядре, которое разрабатывается большой командой разработчиков под
общим руководством Линуса Торвальдса (Linus Torvalds). Различные дис-
трибутивы Linux используют ядро, которое собрано из одних и тех же
исходных кодов, доступных на сайте linux.org. Таким образом, отличия
Red Hat Linux от Slackware Linux или Debian Linux связаны скорее с ком-
плектованием дистрибутива и работой различных утилит, а ядро одной и
той же версии в любой системе Linux функционирует одинаково.
     В то же время системы UNIX, отличные от Linux, такие, как Solaris,
FreeBSD и другие, имеют схожую архитектуру, очень похожие системные
команды и их ключи, но могут незначительно отличаться друг от друга.
Рассматриваемые ниже текстовый и графические интерфейсы присут-
ствуют во многих системах UNIX, так как все эти системы совместимы по
исходным кодам и отвечают стандарту POSIX. Поэтому, если ваша работа
в UNIX не связана с администрированием системы и ограничивается,
скажем, набором текстов или редактированием фотографий, не исключе-
но, что перехода от FreeBSD к Solaris вы можете и не заметить.

                     Новейшая история Solaris

     Говоря о Solaris, надо четко обозначить тот факт, что есть несколько
дистрибутивов Solaris: Solaris, Solaris Express, OpenSolaris (выпускаемые
и поддерживаемые Sun Microsystems) и основанные на открытом коде
Solaris системы Nexenta, Belenix, Schillix, marTux и Milax, которые с Sun
не связаны. Мы не будем касаться последних пяти в этой книге; если вам
интересно больше узнать об этих системах, следуйте ссылкам с сайта
opensolaris.org.
     Solaris Express – это дистрибутив, предназначенный для ознаком-
ления разработчиков и других потенциальных пользователей Solaris с
новыми технологиями, которые проходят тестирование перед их включе-
нием в основной дистрибутив Solaris. Можно использовать Solaris Express
как для тестирования стабильности самой системы, так и для освоения
новых технологий, пока еще не включенных в основную версию Solaris
(сейчас ее новейшая версия – Solaris 10 update 5, или, что то же самое,
Solaris 10 05/08). Система Solaris Express доступна для скачивания с сайта

                                   26


Лекция 1                                        Для начинающих работать в UNIX


opensolaris.org, установочный DVD-диск с ней можно заказать по почте
(в некоторых странах, включая Россию, бесплатно, подробности на сайте
developers.sun.ru). Solaris Express выпускался в двух реализациях – Solaris
Express Community Edition, SXCE и Solaris Express Developer Edition,
SXDE. Первый выходил раз в две недели, второй – раз в три месяца (раз-
ница была в том, что в SXDE вносили только существенные улучшения,
а в SXCE включали все сделанные улучшения к моменту выпуска. С
мая 2008 года компания Sun перестала распространять Solaris Express,
и теперь раз в полгода будет выходить очередная версия OpenSolaris.
Дистрибутивы SXDE и OpenSolaris доступны только для платформы x86,
в 2008 году предполагается выпустить OpenSolaris для SPARC.
     Платную техническую поддержку и полный спектр обновлений Sun
Microsystems предоставляет для Solaris и OpenSolaris, а ограниченную под-
держку – для Solaris Express Developer Edition. Также важно заметить, что
любая версия Solaris бесплатна для любого использования (коммерческого
или некоммерческого).

                Какую систему UNIX выбрать?
     Каждый из нас хотя бы раз в жизни задавал себе этот вопрос. Если
вы еще не делали это, попробуйте прямо сейчас!
     Разумеется, ответ на него зависит от задачи, которую вы собираетесь
решать. Если вам только что подарили Mac Book Pro, то весьма вероятно,
что ваше решение на сегодня – Mac OS X, потому что именно она там уже
установлена и прекрасно подходит для очень многих задач.
     Если требуется спроектировать вычислительный кластер из несколь-
ких тысяч узлов, вы можете выбрать Solaris (и проверить, действительно
ли Sun Grid N1 такое удобное средство управления распределенной
вычислительной сетью, как говорят рекламные проспекты).
     Если ваша задача – обеспечивать хостинг двух десятков веб-сайтов
своих друзей, с ней легко справится практически любая система UNIX,
хотя выбор Solaris в этом случае может дополнить вашу затею высочай-
шей масштабируемостью (если количество друзей резко вырастет и сайты
себе захотят сделать все ваши знакомые из vkontakte.ru).
     В сущности, любая система UNIX на достаточно мощном оборудо-
вании может решить любую современную задачу – от поддержки почто-
вого сервера организации до файлового сервера большого университета;
прочие сетевые службы, равно как и управление технологическими про-
цессами, также проблемы не представят.
     Фактически, сейчас при выборе операционной системы следует
исходить из следующего:
1. какое оборудование требуется для решения задачи;

                                    27


Курс                                         Операционная система Solaris


2.   каковы специфические условия задачи (например, требуется частое
     резервное копирование больших объемов данных, или работа в
     режиме реального времени, или поддержка нестандартных внешних
     устройств, или совместимость со строго определенным программ-
     ным обеспечением – скажем, SAP R/3);
3. есть ли необходимость и возможность получать квалифицированную
     техническую поддержку при установке и эксплуатации системы;
4. есть ли персонал (или возможность его обучения), способный управ-
     лять системой.
     Иногда необходимое оборудование сразу определяет выбор систе-
мы. Например, ОС Solaris является единственной эффективной системой
для управления серверами на платформе SPARC, которые наилучшим
образом подходят для решения ряда задач, а иногда уже просто интегри-
рованы в решение более высокого уровня (систему автоматизации расче-
тов, оборудование телекоммуникационной станции, систему управления
производством и т. п.) Некоторые из них можно заставить работать и под
Linux, но в большинстве случаев этого просто не требуется.
     Как правило, Solaris имеет хорошие шансы везде, где необходима
масштабируемость и распространение операционной системы на раз-
личные аппаратные платформы или требуется унификация систем, уста-
новленных на разном оборудовании – от лэптопов до мощных серверов,
так как Solaris есть и для SPARC, и для x86, и работает на оборудовании
любого масштаба.
     С другой стороны, системный администратор или менеджер может
выбрать систему раз в жизни, в самом начале профессиональной карьеры,
и затем следовать этому выбору в силу привычки, а также наработанных
и теперь ставших родными приемов работы. Такой выбор нередко обу-
словливается самыми иррациональными причинами – например тем,
какую систему уже установил более опытный приятель. Ибо приятелю
предстоит отвечать первый месяц или год на все вопросы новоявленного
администратора UNIX.
     Как ни странно, выбор «по примеру приятеля» может оказаться
самым верным. Хорошая техническая поддержка и разумный совет – это
главное подспорье для новичка в деле администрирования систем. Если
у вас есть друг или коллега, готовые делиться с вами знаниями днем и
ночью, стоит поинтересоваться их мнением, какую систему устанавли-
вать. Даже если их совет окажется неоптимальным с точки зрения соот-
ветствия системы вашим задачам, вы первое время будете избавлены от
мук одиночества в часы затруднений и ночных бдений у монитора.
     Если проблема технической поддержки для вас – не главное, начи-
нать делать выбор придется «от Адама». Прежде всего следует определить,
какую функцию будет выполнять тот компьютер, на который надо уста-

                                  28


Лекция 1                                       Для начинающих работать в UNIX


новить новую систему. После определения функции станут ясны требо-
вания к оборудованию, к программному обеспечению. Обычно на этом
этапе контуры будущей системы уже вырисовываются.
     Традиционно в России в конце XX – начале XXI века коммуника-
ционные сетевые серверы работали под FreeBSD, серверы приложений
(web-серверы и т. п.) – под Linux, а везде, где требовалась большая мощ-
ность (скажем, в крупных серверах баз данных), стремились устанавли-
вать Solaris. Сейчас ситуация изменилась, и Solaris готов работать во всех
перечисленных областях, конкурируя и с FreeBSD, и с Linux, занимая
также и нишу рабочих мест обычных офисных пользователей. От того,
как близко и умело вы познакомитесь с Solaris, зависит, будет ли задей-
ствован в полной мере его потенциал для решения всех этих задач.
     Свое мнение о том, насколько эта книга помогла вам освоиться с
Solaris, вы можете высказать на форумах developers.sun.ru – чтобы ее сле-
дующая редакция оказалась еще более информативной.

                    Быстрый взгляд внутрь UNIX

     В любой системе UNIX есть ядро, системные библиотеки, систем-
ные службы и служебные утилиты. Solaris в этом смысле подобен другим
системам UNIX. Solaris – это многоплатформенная ОС, работающая
с архитектурами SPARC (это – 64-разрядная архитектура) и x86 (32- и
64-разрядные). Эта система разработана компанией Sun Microsystems;
история системы началась в 1992 году, когда Sun объявила о создании
принципиально новой версии системы Sun OS, которая получила имя
Solaris.
     Исполняемый код в Solaris работает в одном из двух пространств –
пространстве ядра или пространстве пользователя. В пространстве ядра
задействовано только ядро и часть кода функций системных библиотек.
Код, функционирующий в пространстве пользователя, не имеет доступа
к памяти, отнесенной к пространству ядра, чем гарантируется стабиль-
ность работы системы: никакое пользовательское приложение не может
ее нарушить.
     Ядро – это набор системных таблиц и подпрограмм работы с ними.
В ядро также входят драйверы устройств: небольшие программы, обе-
спечивающие системе интерфейс для общения с аппаратурой компью-
тера – дисками, видеоподсистемой, сетевыми интерфейсами и т. п. Ядро
состоит из статической части, которая загружается при старте системы и
модулей. Модули могут динамически загружаться при старте системы или
во время работы, при необходимости поддержки той или иной функции.
В частности, подсистема поддержки NFS и драйверы внешних устройств
оформлены в виде модулей.

                                   29


Курс                                            Операционная система Solaris


      Основная часть ядра Solaris состоит из двух компонент – genunix и
unix. Это статическая часть кода ядра. Независимый от платформы файл
genunix содержит общие для всех ядер Solaris компоненты, а файл unix –
это зависимый от платформы файл. Специфичный для платформы файл
называется /platform/`uname –i`/kernel/unix. Конструкция «обратные
апострофы» (` `) обозначает, что часть названия (а именно название
аппаратной платформы), можно узнать по команде uname –i (в ранних
версиях Solaris рекомендовалось использовать uname -m).
      В файле конфигурации ядра /etc/system можно установить значение
переменной moddir, которая содержит список каталогов, разделенных
пробелом. Предполагается, что в этих каталогах находятся загружаемые
модули ядра. Минимальное значение по умолчанию

       /kernel /usr/kernel

но это значение может быть различным для различных платформ.
Наиболее частым значением для большинства платформ является

       /platform/<platform-name>/kernel /platform/<hardware-class-name>/
        kernel /kernel /usr/kernel

       Конкретное значение platform-name сообщает команда

       uname -i

       Значение hardware-class-name сообщает

       uname -p

     Файл конфигурации ядра в Solaris – /etc/system (для получения
детальной информации о нем следует ознакомиться со страницей руко-
водства system(4)), это можно сделать командой

       man -s 4 system

     В системах, работающих на процессорах SPARC, файл unix называ-
ется /platform/`uname -i`/kernel/sparcv9/unix. Когда загрузчик поместит
оба этих файла (genunix и unix) в память, они становятся одним целым –
ядром. Затем это ядро загружает модули.
     Подробнее о процессе загрузки рассказывает лекция 11.
     Системные службы – это серверные приложения или их группы,
отвечающие за обработку запросов от других (клиентских) программ.

                                    30


Лекция 1                                     Для начинающих работать в UNIX


В системах UNIX такое серверное приложение обычно называют демона-
ми (или, если произносить это вернее, даймонами – daemons).
     Служебные утилиты – это программы, которые нужны для выпол-
нения разных базовых работ в системе: копирования файлов, управления
процессами, назначения прав доступа и т. п.
     В разных системах UNIX используются разные файловые системы,
причем часто система поддерживает несколько разных файловых систем.
Например, Linux умеет работать с ext2, ext3 (это ее родные файловые
системы), UFS, HPFS, NTFS, FAT и другими. Solaris, как и некоторые
другие ОС UNIX, использует файловую систему типа UFS. В Solaris 10
впервые в мире была реализована поддержка новой транзакционной
128-разрядной файловой системы ZFS. О системе ZFS более подробно
рассказано в лекции 8.
     UNIX – это многопользовательская многопроцессная система, т. е.
в ней может одновременно быть запущено несколько процессов от имени
разных пользователей. Число процессов, которые можно одновременно
запустить, ограничивается размерами таблицы процессов в ядре и други-
ми настройками ядра.
     Каждый процесс в UNIX работает в своем собственном адресном
пространстве, поэтому сбой в работе одного процесса никак не влияет на
работу других. Подсистема виртуальной памяти, являющаяся частью ядра,
запрещает процессам обращаться к чужим адресным пространствам.
     Одной из функций ядра является планирование процессов, т. е.
передача управления от одного процесса к другому. Для этого в ядре
есть отдельная подпрограмма, называемая планировщиком процессов или
планировщиком задач. Процессы получают управление от планировщика
задач в соответствии со своим приоритетом. Планировщик задач через
определенное количество микросекунд решает, следует ли передать
управление следующему в очереди процессу.
     Ядро представляет собой отдельный процесс, выполняющийся с
наивысшим приоритетом. В большинстве систем UNIX, включая Solaris,
реализована возможность выполнения несколько параллельных подпро-
цессов внутри процесса. Эти подпроцессы называют потоками (threads).
Более подробно этот аспект процессов рассмотрен в лекции 9.
     Каждый пользователь в UNIX имеет свою собственную учетную
запись пользователя (account). Она содержит имя пользователя, пароль,
идентификатор пользователя (UID), идентификатор главной группы
пользователя (GID), описание пользователя, его домашний каталог и
путь к командному процессору, который следует запустить при интерак-
тивном входе пользователя в систему.
     Пользователь, работающий в UNIX, имеет уникальное имя пользо-
вателя и уникальный идентификатор. Идентификатор пользователя (User

                                  31


Курс                                           Операционная система Solaris


ID, UID) – это целое число от 0 до 2147483647. Обычные пользователи в
Solaris имеют идентификатор в диапазоне от 100 до 60000, а пользователи
с идентификаторами со значениями выше 60000 имеют различные огра-
ничения при работе, поэтому реальным пользователям эти идентифика-
торы, как правило, не назначают.
      Пользователю не надо знать свой идентификатор, потому что он
используется только системой; для входа в систему пользователь указы-
вает свое имя (username). Имя пользователя может состоять из латинских
букв и цифр; длина имени должна быть от 1 до 8 символов. Первый
символ должен быть буквой, и по крайней мере один символ должен
быть буквой нижнего регистра. Имя пользователя назначает системный
администратор при создании новой учетной записи. Имя пользователя в
руководствах часто называют «логин» (login) или «username».
      Пользователи объединены в группы. Каждая группа имеет свое имя
и уникальный идентификатор (Group ID, GID). В группе может быть
сколько угодно пользователей, и каждый из них может быть участником
любого количества групп. Однако у каждого пользователя есть главная
группа – она указывается в свойствах любого файла, который создает
пользователь. Идентификатор группы имеет значение от 100 до 60000,
если только это не специальная группа. Для специальных (предопреде-
ленных) групп зарезервирован диапазон от 0 до 99.
      Пользователей объединяют в группы для того, чтобы было удоб-
нее администрировать систему. Например, если право редактировать
содержимое web-сайта надо предоставить нескольким ответственным, то
достаточно создать специальную группу, например webedit, и включить их
всех в эту группу.
      Предположим, что эти ответственные – пользователи ivan, lena и
kira. Тогда в файл /etc/group следует добавить новую группу:

       webedit::101:ivan,lena,kira

     Концепция прав доступа в UNIX требует объединять пользователей
в группы всегда, когда нужно предоставить одинаковые права доступа к
файлам или каталогам группе людей. Разумеется, в Solaris 10 есть и графи-
ческий интерфейс для создания и модификации состава групп – редакти-
ровать /etc/group в текстовом редакторе не обязательно.
     Домашний каталог и путь к командному процессору играют роль
только при интерактивном входе пользователя в систему. В UNIX каждый
пользователь может работать с системой как непосредственно (набирая
команды ОС на клавиатуре), так и обращаясь через сеть к тем или иным
службам, запущенным на компьютере под UNIX.


                                     32



    
Яндекс цитирования Яндекс.Метрика