Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Забродин УНИХ основы командного интерфейса 2010

.pdf
Скачиваний:
160
Добавлен:
16.08.2013
Размер:
1.33 Mб
Скачать

назначения, что стали международными стандартами на структуру управляющих программ ОС. Стандарты UNIX легко “ложились” на различные архитектуры ВС и были приняты практически всеми ведущими компьютерными фирмами.

Поэтому далее мы будем изучать принципы работы с самыми различными операционными системами, построенными по стандартам UNIX.

Целью настоящего учебного пособия является изучение командного языка UNIX-подобных операционных систем, приемов использования возможностей UNIX и основ программирования на собственном языке UNIX. Эти возможности составляют интерфейс пользователя, работающего непосредственно за терминалом ВС при выполнении прикладного вычислительного задания. Собственно прикладные программы имеют свой интерфейс для доступа к ресурсам ВС – определенный набор семантических конструкций, используемых непосредственно в теле программы – набор системных вызовов. Системные вызовы здесь не изучаются, так как являются компетенцией системных программистов.

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

Перечень наиболее известных UNIX-подобных ОС ведущих компьютерных фирм:

MS DOS, Xenix, minix; SUN Solaris;

IBM AIX, System Y, MOS (для Main Frames); DEC OSF (VAX), BSD;

Linux и др.

11

ОПРЕДЕЛЕНИЕ: ОС – система управляющих программ, предназначенная для обеспечения эффективного управления и использования ресурсов ВС за счет автоматизированного управления их работой и предоставления пользователям удобных командных средств доступа к ресурсам ВС.

РЕСУРСЫ: процессор, дисковая память, ОП, принтеры, каналы связи, монитор, устройства ввода-вывода информации, управляющие программы самой ОС и пр..

Различают понятия – программное обеспечение (ПО) ВС и математическое обеспечение (МО) ВС. Последнее понятие более широкое.

Место ОС в системе математического обеспечения:

-ПО=ОС+прикл. программы,

-алгоритмы,

-инструкции использования ПО.

1.2. РЕЖИМЫ РАБОТЫ ОС

Функции любой ОС: интерпретация семантических или графических элементов интерфейсов ОС и выполнение закодированных в них функций по управлению ресурсами, а также вычислительными заданиями, задачами и данными.

Задание при выполнении на компьютере разбивается на шаги задания. Для каждого шага строится и выполняется отдельная задача (процесс) по обработке данных с использованием выделяемых ресурсов компьютера.

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

Для каждого шага операционной системе для планирования вычислений с помощью средств интерфейса ОС надо передать:

-информацию о программе задачи данного шага (где размещается программа, имя программы и пр.);

-информацию о данных для обработки этой задачей (где, адрес, объем);

-информацию о необходимых для задачи шага устройствах

ВС.

12

Всоответствии со способами реализации этих действий различают команд и процедур. Именно эти средства ОС составлют интерфейс конечного пользователя ВС, оснащенной два основных режима обработки заданий под управлением ОС: диалоговый и

пакетный.

Вдиалоговом режиме пошаговое управление выполнением заданий осуществляется в темпе работы пользователя с применением средств собственного командного языка ОС. Причем команды в случае наличия некоторой графической оболочки (например, X- Window) могут быть представлены некоторыми графическими образами.

Впекетном режиме (иначе – режим отложенного счёта) осуществляется автоматическое управление заданиями, когда шаги задания описываются с помощью средств языка программирования процедур (язык программирования Shell). В этом случае процедура представляет собой слитный текст программы, включающий команды ОС или операторы Shell. Процедура может быть запущена для выполнения одноразово или многократно в нужные моменты времени. Процедура выполняется в режиме покомандной интерпретации команда за командой, т.е. без построения промежуточной формы программы.

Вданном учебном пособии изучаются приёмы управления заданиями с использованием операционной системой UNIX.

1.3.ВИДЫ ИНТЕРФЕЙСОВ ПОЛЬЗОВАТЕЛЯ ОС UNIX

Интерфейсы пользователя – средства пользователя для управления ресурсами ВС и вычислительными заданиями. Операционные системы UNIX имеют ярко выраженную иерархическую централизованную слоистую структура. В центре этой структуры – ядро ОС, выше последовательно располагаются утилиты – тексты программ, реализующих команды и так называемая оболочка (Shell), интерпретатор команд. Каждый слой программного обеспечения имеет свой интерфейс с соседним (вышележащим или нижележащим) слоем. Управляющие программы ОС осуществляют на физическом уровне управление устройствами, данными, прерываниями.

Разновидности интерфейсов пользователя:

графический интерфейс предназначен для массового пользователя, уровень управления заданиями (уровень так называемого

13

конечного пользователя, использующего в основном готовые программные продукты); графический интерфейс – средство надстройки над собственно ОС (X-Window);

командный интерфейс позволяет использовать возможности ОС и ВС более гибко, предназначен для разработки прикладных программ и вычислительных заданий, управления вычислительными работами на уровне задач, данных и устройств (уровень прикладного программиста); командный интерфейс – средство оболочки Shell, которая выполняет функции интерпретатора команд и собственных операторов;

программный интерфейс — набор системных вызовов для непосредственного эффективного управления ресурсами и вычислительными процессами на уровне архитектуры ОС и ВС из тела системной программы (уровень системного программиста).

1.4. ОСНОВНЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ ОС

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

Принцип 1. Единый язык написания программных модулей ОС и обрабатывающих программ язык «СИ».

Использование единого языка обеспечивает важнейшее свойство UNIX-подобных ОС – переносимость или возможность работы ОС на различных АП. Но в случае ОС нельзя добиться полной переносимости, так как любая ОС включает программные модули, управляющие непосредственно устройствами на уровне архитектуры аппаратных платформ (например, райверы устройств, модули ядра ОС). Поэтому в случае UNIX около 80 % программных модулей ОС написано на языке «СИ», а около 20 % —на языках конкретной архитектуры АП (язык — ассемблер).

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

14

Принцип 3. Открытость ОС для расширения и модификаций, например, возможность использования различных драйверов или их модификация, расширяемый набор утилит команд ОС и пр.

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

Например, 0 – системное имя стандартного устройства ввода данных (клавиатуры), 1 – системное имя стандартного устройства вывода данных (экрана терминала пользователя), 2 – устройство для вывода листинга обрабатывающих программ.

ВDOS используются следующие логические имена: PRN, LPT, CON, COM (устройства вв-выв), A, B(дисководы):и.т.д.

ВUNIX: так как UNIX многопользовательская система, то логические имена разделяемых устройств в явном виде не указываются, необходимая функция и устройство кодируются в символьном коде команды, например:

$pr fil3 – заявка на печать будет поставлена в очередь к некоторому системному принтеру (или принтеру сети),

$ [0] > fil4 – ввод с файла клавиатуры в файл fil4, или

$ > fil4 – то же, но системное имя файла клавиатуры не указано,

$ cat

fil5 [>1] – вывод в системный файл, 1 – экран, можно не

указывать,

 

$ cat

fil5

– то же.

Для нестандартных устройств в UNIX необходимо знать и использовать полные системные маршрутные имена соответствующих файлов этих устройств, например:

/dev/rmt/cot3dobest – файл (системный буфер) магнитной ленты.

15

Для работы с нестандартными устройствами могут использоваться как стандартные, так и нестандартные (специальные) коман-

ды UNIX.

Принцип 5. Иерархическая структура ОС с четко определенными функциями слоев программного обеспечения ОС и четкими программными интерфейсами между слоями ПО.

Принцип 6. Стандартизация на уровне архитектуры ОС. Базовыми понятиями архитектуры являются «процесс» — соб-

ственно задачи шагов заданий — и «ресурс», т.е. что выделяется процессу для выполнения этих задач. Процесс – это образ задачи шага задания в ОП компьютера. Процесс представлен в памяти в виде таблицы – дескриптора процесса. Дескриптор включает:

исполняемый текст программы задачи; управляющую информацию (контекст процесса), необходимую

для выделения и использования выделенных процессу ресурсов: приоритет, необходимое адресное пространство, вектор прерывания (слово состояния программы), величину кванта процессорного времени, признаки состояния процесса и пр.

Дескрипторы процессов составляют упорядоченный по приоритетам список – очередь процессов, в соответствии с которыми они получают необходимые им ресурсы.

Очередь пороцессов управляется планировщиком процессов. Процесс строится системой автоматически для каждой задачи шага задания.

Концепция процессов обеспечивает свойство многозадачности ОС, т.е. когда в активном состоянии могут находиться несколько задач, между которыми разделяется процессорное время.

Принцип 7. Стандартный командный и программный интерфейс для пользователей всех ОС одного типа независимо от фирмразработчиков. Внешние пользовательские интерфейсы отвечают международным стандартам:

Стандарт Windows – стандарт на графический интерфейс

(MSDOS7, OS/2, X Window, Windows NT, Windows 2000);

Стандарт MSX — стандарт на командный интерфейс ОС персо-

нальных компьютеров (MS DOS 6, MS DOS, PC DOS IBM, TD DOS Toshiba);

Стандарт Posix на командный и программный интерфейс UNIXподобных ОС;

16

Стандарт на программный интерфейс OS/360/370/390 – ОС мно-

гопроцессорных суперЭВМ (Main Frames) — (S/390, Open VMS,

ОС ЕС).

Надо отметить, что всем современным ОС присуще свойство переносимости на различные архитектуры аппаратных платформ. Поэтому для каждого кластера ЭВМ могут использоваться ОС практически любого типа.

Вопросы для самоконтроля

1.Основные особенности и обзор операционных систем семейства UNIX.

2.Режимы обработки вычислительных заданий под управлением ОС. Cредства управления заданиями в ОС UNIX.

3.Разновидности и назначение интерфейсов ОС UNIX. Командный язык ОС UNIX.

4.Основные принципы построения операционных систем.

5.Принцип независимости программ от внешних устройств в ОС UNIX. Примеры.

17

2. ЗНАКОМСТВО ПОСЛЕ ИНСТАЛЛЯЦИИ

2.1. СОСТАВ ОС UNIX

UNIX-подобные ОС создавались изначально как многопользовательские ОС. Отсюда и основные особенности и характеристики UNIX, обеспечивающие одновременную работу с ВС многих пользователей:

-ОС поддерживает многопользоватьельский доступ ко всем ресурсам ВС через различные удаленные терминалы;

-режим разделения времени центрального процессора. Каждому процессу выделяются определенные интервалы времени, что обеспечивает псевдопараллельное выполнение задач;

-свопирование содержимого оперативной памяти на диск позволяет работать при реально ограниченном объеме физической ОП. Достигается за счет страничной организации памяти ВС;

-кеширование диска – это использование части оперативной памяти ВС для временного хранения данных с диска, что существенно ускоряет доступ к часто используемым программам и задачам;

-поддержка нескольких форматов различных файловых систем, в том числе файловых систем ОС других типов;

-возможна организация мультипроцессорной параллельной обработки заданий;

-работа на различных аппаратных платформах ВС (например на различных клонах микропроцессоров Intel или др.);

-совместимость по прикладным программам различных UNIX-подобных ОС, а также разработанным и для других ОС (DOS, OS-2, Windows-95 и пр.); в последнем случае с использованием сооответствующих программных эмуляторов;

-многозадачность обеспечивается назависимостью представления и управления в ВС как прикладными, так и системными процессами, а также фактическим режимом разделения времени между процессами;

-многочисленность командных утилит и неограниченные возможности их наращивания;

-открыты для модификаций и развития;

-расширяемые функциональные возможности ядра ОС (в основном за счет инсталирования драйверов устройств);

18

-единый программный и командный интерфейс;

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

Все свойства UNIX обеспечиваются прежде всего перечисленными выше принципами построения современных операционных систем и характерными особенностями структуры ОС семейства

UNIX.

ЯДРО ОС UNIX составляют следующие управляющие программы.

Файловая система. Существенным отличием современных версий ОС UNIX от классической структуры является наличие виртуальной файловой системы (например в Linux), позволяющей одновременно работать с файловыми системами различных типов (Ext2, Proc, VFAT и др.). Файловые системы размещаются на устройствах памяти с блочным принципом обмена информации и используют буферную КЭШ-память магазинного типа.

Подсистема управления процессами включает:

-средства межпроцессного взаимодействия (IPC –Inter Process Communication – сигналы, семафоры, программные каналы, сокеты, общие области физической памяти);

-супервизор управления памятью, реализующий концепцию виртуальной памяти и наиболее эффективно использующий ресурсы физической памяти ВС; каждый процесс выполняется в своем собственном защищенном адресном пространстве фиксированного размера (4 Гбайт для Linux);

-планировщик процессов, выбирающий из очереди процессов наиболее приоритетный процесс и передающий ему управление на определенный квантвремени (реализует режимразделения времени).

Подсистема управления устройствами обеспечивает управле-

ние всеми устройствами компьютера (кроме процессора и оперативной памяти). Подсистема включает драйверы устройств с посимвольным принципом передачи информации (com-порт, параллельный порт) и устройств с блочным принципом обмена информацией (жесткий диск, CD ROM).

Прикладные и системные программы взаимодествуют с ядром посредством системных вызовов.

19

Ядро включает также программы, исполняющие функции внутренних команд ОС, использующихся наиболее часто, и поэтому интегрированные в состав ядра.

УТИЛИТЫ ОС UNIX реализуют внешние команды. Утилита – это исполняемый файл со своим именем (имя команды), который может храниться как в системной области памяти ОС, так и в области памяти, выделяемой пользователю. Содержимое этой памяти описывается в соответствующих каталогах. Число утилит может быть увеличено практически без ограничений. Тем самым обеспечивается расширяемость командного языка ОС. Вызываются утилиты для исполнения по своему имени (имени команды).

ОБОЛОЧКИ ОС UNIX (shell) интерпретируют имя введенной команды и вызывают для исполнения соответствующую утилиту. В UNIX может быть инсталировано одновременно несколько оболочек, например, для каждого имеющегося терминала пользователей. Строго говоря, каждый отдельный терминал может обслуживаться несколькими оболочками, даже оболочками разных типов, обеспечивающих отличающиеся возможности для пользователей (различную СРЕДУ работы пользователя). Эта особенность структуры ОС UNIX обеспечивает одновременную работу многих пользователей, в том числе и работу в составе компьютерных сетей.

Так, в частности, для UNIX разработаны и имеют хождение множество типов оболочек. И каждая из них имеет свои возможности настройки среды. Наиболее распространены следующие оболочки:

-sh -shell Bourne – первая базовая широко используемая обо-

лочка, размещается в файле /usr/old/bin/sh (bosh – для Linux);

-csh - Californiy shell ( Berkly) – развитие sh – /usr/bin/csh;

-ksh – Korn shell (Berkly) sh+csh (по сути, это стандарт Posix) /usr/bin/ksh.

Для каждого пользователя при настройке ОС может быть скон-

фигурирована среда для индивидуальной работы – набор команд, требуемый набор функций ОС, доступные устройства и пр.

20