287649
.pdfМосковский государственный технический университет имени Н.Э. Баумана
Е.В. Галямова, И.С. Абанин
СИСТЕМНЫЕ СЕРВИСЫ
Z/OC UNIX
Методические указания к выполнению лабораторной работы по курсу «Операционная система z/OC UNIX
и виртуальная среда Mainframe»
Москва
Издательство МГТУ им. Н.Э. Баумана
2010
УДК 004.451.9 ББК 32.97
Г17
Р е ц е н з е н т И.П. Иванов
Галямова Е.В.
Г17 Системные сервисы z/OC UNIX : метод. указания к выполнению лабораторной работы по курсу «Операционная система z/OC UNIX и виртуальная среда Mainframe» / Е.В. Галямова, И.С. Абанин. — М.: Изд-во МГТУ им. Н.Э. Баумана, 2010. — 28 с.: ил.
Изложены основы реализации системных сервисов UNIX в операционной системе z/OS. Дано краткое описание иерархической файловой системы, скриптового языка Awk, способов доступа к операционной системе z/OS, а также процесса выполнения приложений. Приведены примеры скриптов Shell и Awk, а также простой программы на языке С.
Для студентов, обучающихся по специальности «Компьютерные системы, комплексы и сети».
УДК 004.451.9 ББК 32.97
Учебное издание
Галямова Елена Валентиновна Абанин Илья Саввич
СИСТЕМНЫЕ СЕРВИСЫ Z/OC UNIX
Редактор О.М. Королева Корректор Г.С. Беляева
Компьютерная верстка С.А. Серебряковой
Подписано в печать 31.12.2009. Формат 60×84/16. |
|
Усл. печ. л. 1,63. Тираж 100 экз. Изд. № 64. Заказ |
. |
Издательство МГТУ им. Н.Э. Баумана. |
|
Типография МГТУ им. Н.Э. Баумана. |
|
105005, Москва, 2-я Бауманская ул., 5. |
|
© МГТУ им. Н.Э. Баумана, 2010
ВВЕДЕНИЕ
Значительная часть современных серверных приложений написана для операционной системы UNIX. Операционной системе z/OS для больших корпоративных серверных машин (мейнфреймов) необходима поддержка *nix приложений.
Реализация UNIX-среды в z/OS называется USS (Unix Subsystem Services) и опирается на общеизвестный набор стандартов, который позволяет использовать операционную систему UNIX на любой платформе.
Несмотря на жесткую стандартизацию, работа с USS имеет свои особенности, которым и посвящены данные методические указания.
Цели лабораторной работы:
•знакомство с основами использования системных сервисов операционной системы z/OS UNIX для большой ЭВМ;
•изучение структуры иерархической файловой системы HFS (Hierarchic File System) операционной системы z/OS и основных команд для работы с ней;
•изучение командной оболочки Shell и скриптового языка Awk;
•создание простой C-программы.
1.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1.Основы z/OS UNIX
Вz/OS UNIX реализовано два открытых системных интерфейса: интерфейс системных вызовов API (Application Program Interface) и интерактивный интерфейс пользователя Shell.
Интерфейс системных вызовов API позволяет запускать стандартные UNIX-приложения, написанные на языке C, в операционной системе z/OS. Интерактивный интерфейс пользователя Shell позволяет выполнять UNIX-команды, утилиты и скрипты в z/OS.
3
Ядро z/OS UNIX интегрировано в базовую управляющую программу z/OS и служит для реализации функций интерфейса системных вызовов (API UNIX), связанных с управлением процессами, файловой системой HFS и коммуникациями. Ядро активизируется при загрузке операционной системы z/OS и работает в собственном адресном пространстве MVS (Multiple Virtual Storage).
Основная единица работы в операционной системе UNIX — это процесс, он соответствует находящейся в стадии выполнения программе со всеми выделенными ей ресурсами. Процессы выполняются исключительно в адресных пространствах MVS. При использовании функции системного вызова fork() всегда создается новое адресное пространство, являющееся копией родительского. С помощью функции системного вызова spawn() может быть сформировано новое адресное пространство, а также запущена новая задача внутри родительского адресного пространства АS (Address Space).
Процессы бывают системные (например демоны, работающие в фоновом режиме и предназначенные для поддержки вспомогательных системных сервисов: вывод на печать, электронная почта, запуск программ по расписанию и т. д.) и пользовательские.
Рис. 1. Процессы в z/OS UNIX:
ASID (Address Space IDentificator) — идентификатор адресного пространства; PID (Parent IDentificator) — идентификатор процесса; PPID (Parent Process IDentificator) — идентификатор родительского процесса
4
Каждый процесс имеет уникальный идентификатор PID (Parent ID) и может по своей инициативе порождать новые (дочерние) процессы с помощью функций системных вызовов fork() и spawn(). Каждый процесс имеет родительский процесс, который определяется идентификатором родительского процесса PPID (Parent Process ID, рис. 1).
Механизм выполнения приложения UNIX в z/OS показан на рис. 2. Для ядра z/OS UNIX во время инициализации системы создается отдельное адресное пространство OMVS (Original Multiple Virtual System), функционирование которого зависит от настроек в разделе BPXPRMxx системного реестра SYS1.PARMLIB. Одновременно с этим формируются файловая система HFS и адресное пространство BPXOINIT, реализующее процесс-прародитель (PID = 1) для всех процессов. В первую очередь BPXOINIT порождает необходимые системные процессы UNIX.
Рис. 2. Механизм выполнения приложения UNIX в z/OS:
HFS (Hierarchic File System) — иерархическая файловая система; SYS1.PARMLIB и SYS1PROCLIB — библиотеки системных модулей операционной системы z/OS; BPXPRMxx; BPXAS, BPXOINIT — модули, отвечающие за работу подсистемы UNIX; WLM (Work Load Manager) — менеджер рабочей нагрузки; z/OS UNIX Kernel — ядро подсистемы UNIX в операционной системе z/OS; INETD — процесс-демон, обеспечивающий доступ к оболочке Shell для удаленных пользователей в TCP/IP-сети с использованием протоколов telnet и rlogin; Shell — командный интерпретатор (оболочка)
5
Новые адресные пространства для UNIX-приложений создаются по запросу ядра к менеджеру управления рабочей нагрузкой WLM (Work Laod Manager), который для формирования нового адресного пространства BPXAS использует специальную STCпроцедуру.
Как правило, для каждого интерактивного пользовательского сеанса командные интерпретаторы Shell запускаются в отдельных адресных пространствах. Команды и утилиты пользователя могут запускаться как внутри адресного пространства Shell, так и в новых адресных пространствах. Процесс-демон INETD обеспечивает доступ к оболочке Shell для удаленных пользователей в TCP/IPсети с использованием протоколов telnet и rlogin.
1.2. Иерархическая файловая система HFS
Файлы UNIX обрабатываются системой как простая совокупность байтов без деления на логические записи. Имена файлов могут содержать до 255 алфавитно-цифровых символов, при этом различают прописные и строчные буквы.
В UNIX выделяют следующие типы файлов:
•обычные, т. е. файлы общего назначения, используемые для хранения программ и данных любого типа;
•каталоги, которые служат для размещения справочной информации о размещении файлов, принадлежащих данному каталогу;
•устройства, ассоциируемые с устройствами ввода-вывода;
•символические ссылки, содержащие ссылки на другие файлы;
•именованные каналы, которые предназначены для обмена данными между процессами;
•сокеты, которые служат для реализации сетевого взаимодействия.
Для работы с файлами и каталогами в z/OS UNIX используется командная оболочка Shell. С помощью специальных команд можно создавать и удалять каталоги и файлы, изменять права доступа, работать с жесткими и символическими ссылками. Файлы группируются по директориям, образуя иерархическую древовидную структуру (рис. 3). Вершиной дерева и единой точкой входа в файловую систему является корневой каталог, который обозначается символом «/». Таким образом, у каждого файла существует полное
6
или абсолютное имя, однозначно определяющее его местоположение в файловой системе. Примеры абсолютных имен файлов: /u/user1/docs/abc, /u/user2/prg.
Наиболее важные системные программы, данные и конфигурационные файлы UNIX размещаются в специальных каталогах: /bin — команды и утилиты; /usr — файлы для поддержки решения пользовательских задач; /dev — специальные файлы устройств ввода-вывода; /etc — утилиты администрирования и конфигурационные файлы; /lib — включаемые библиотеки C/C++; /tmp — временные файлы; /var — сообщения и системные журналы; /samples — примеры программ и настроечных файлов.
Все особенности иерархической файловой системы HFS поддерживаются системными сервисами UNIX в z/OS.
Рис. 3. Иерархическая файловая система:
Directory — каталог; File — файл
Для размещения файлов UNIX и реализации иерархической структуры доступа создаются специальные однотомные SMSуправляемые наборы данных, получившие название наборов данных HFS (рис. 4). Каждый набор данных HFS содержит определенный сегмент файловой системы, точкой входа в который является один из каталогов.
7
Рис. 4. Иерархическая файловая система. Назначение каталогов:
/bin — команды и утилиты; /dev — специальные файлы устройств вводавывода; /etc — утилиты администрирования и конфигурационные файлы; /u — корневой каталог пользователя; /tmp — временные файлы; /lib — включаемые библиотеки C/C++; /usr — файлы для поддержки решения пользовательских задач; /var — сообщения и системные журналы; OMVS.USERS.HFS, OMVS.USER1.HFS, OMVS.USER2.HFS — наборы данных операционной системы z/OS; /u/user2/filed — полное (абсолютное) имя файла в файловой системе HFS
Объединение сегментов HFS (монтирование) проводится с помощью специальной операции, выполняемой на этапе инициализации системы или динамически. Первым всегда монтируется сегмент, содержащий корневой каталог файловой системы, к которому затем могут добавляться другие сегменты. Создание и управление наборами данных HFS осуществляется стандартным компонентом DFSMS операционной системы z/OS.
1.3. Скриптовый язык Awk
Утилита Awk предназначена для обработки данных, содержащихся в файлах. Она включает в себя простой скриптовый язык, позволяющий создавать простые программы для обработки текстовых данных. Утилита Awk сканирует входные текстовые файлы
8
и обрабатывает строки, удовлетворяющие условиям, определенным в программе. Максимальный размер строки — 256 символов. Программа Awk состоит из следующих компонентов: полей данных, стандартных переменных, массивов, паттернов (образцов) и действий.
Паттерн (образец) состоит из регулярных выражений, выражений отношений и комбинаций паттернов, а также ключевых слов BEGIN и END. Внутри BEGIN { } определяется набор действий, которые необходимо выполнить до начала обработки файлов. Внутри END { } указывается набор действий, выполняемый после обработки входных данных.
Действие — это последовательность выражений, разделенных знаком «;». Утилита Awk поддерживает стандартный набор арифметических операций. Каждая строка входного файла обрабатывается как совокупность полей и разделительных символов (по умолчанию — пробелов). Для обращения к полю с номером n достаточно написать $n. Переменные и массивы принимают значения в зависимости от контекста.
Для запуска Awk-программы необходимо ввести следующую команду:
Awk — f <имя файла с Awk-программой > <имя обрабатываемого файла>
1.4. Режимы доступа пользователей к z/OS UNIX
Для пользователей z/OS UNIX применяются несколько различных режимов интерактивного доступа к системным сервисам UNIX, как с помощью Shell, так и некоторыми другими способами (рис. 5).
Первый режим подключения (терминал пользователя через TCP/IP-соединение) является традиционным для пользователей z/OS и основан на компонентах TSO/E и ISPF (Interactive System Productivity Facility). В TCP/IP-сети терминалы TSO поддерживаются на основе протокола TN3270, представляющего собой адаптированный вариант стандартного протокола telnet.
Второй режим доступа к сервисам UNIX основан на использовании стандартных прикладных протоколов TCP/IP rlogin и telnet. Для работы в этих режимах применяется асинхронный ввод, возможно использование текстового редактора vi, но ограничен дос-
9
туп к командам TSO. Необходима предварительная настройка серверных компонентов telnet и rlogin, а также разрешений на доступ в профиле пользователя в подсистеме RACF (Recource Access Control Facility).
Рис. 5. Режимы доступа пользователей к z/OS UNIX:
MVS (Multiple Virtual Storage) — операционная система, обеспечивающая мультипрограммирование с произвольным числом процессов; HFS (Hierarchic File System) — иерархическая файловая система; JES2 (Job Entry Subsystem) — подсистема операционной системы z/OS, обеспечивающая запуск задач на исполнение; TSO/ISPF (Time Shared Options/Interactive System Productivity Facility) — подсистемы операционной системы z/OS, обеспечивающие взаимодействие с пользователем; UNIX shell — командный интерпретатор операционной системы UNIX; FTP (File Transfer Protocol) — протокол передачи данных; Submit — команда на выполнение задачи подсистеме JES2; Omvs, Ishell, Oshell — команды запуска оболочки UNIX Shell; DD Path (DataSet Definition Path) — путь к набору данных; BPXBATCH — модуль, выполняющий функции связи с оболочкой UNIX Shell; TCP/IP (Transmission Control Protocol/Internet Protocol) — протокол сетевого взаимодействия / Интернет-протокол; TN3270, telnet, rlogin, ftp — протоколы связи между пользователем и операционной системой z/OS большой ЭВМ
10