- •Требования к аппаратуре.
- •Основные черты unix, определяющие ее долгожительство.
- •Архитектура unix.
- •Ядро системы.
- •Подсистема управления процессами.
- •Подсистема ввода/вывода.
- •Файловая система ос unix.
- •Структура файловой системы unix.
- •Именование файлов
- •Создание связи с файлом.
- •Механизмы защиты файлов и изменение прав доступа
- •Определение прав доступа
- •Файловая подсистема
- •Базовая файловая система System V
- •Индексные дескрипторы
- •Каталог
- •Недостатки файловой системы s5fs
- •Файловая система bsd unix
- •Каталог файловой системы ffs
- •Архитектура виртуальной файловой системы
- •Виртуальные инднексные дискрипторы
- •Перенаправление ввода/вывода
- •После этого файл можно вызвать на выполнение командой
- •Oc windows 95
- •Функции ос
- •Виртуальная адресация памяти
- •Многозадачность
- •Диспетчер установленных файловых систем
- •Мультизадачность
- •Модель памяти flat.
- •Файловая система.
- •Драйверы.
Основные черты unix, определяющие ее долгожительство.
Код ОС написан на языке высокого уровня С, что сделало ее простой для понимания, изменений и переноса на другие платформы.
Система на языке С имеет на 20-40% больший размер, а производительность ее на 20% ниже аналогичной системы, написанной на ассемблере. Однако ясность и переносимость сыграли решающую роль в ее популярности.
UNIX – многозадачная многопользовательская система с широким спектром услуг. Один мощный сервер может обслужить запросы большого количества пользователей. Система может выполнять различные функции – работать как вычислительный сервер, обслуживающий сотни пользователей, как сервер базы данных, как сетевой сервер, поддерживающий важнейшие сервисы сети (telnet, ftp, электронную почту, службу имен DNS и т. д.), или даже как сетевой маршрутизатор.
Наличие стандартов. Несмотря на многообразие версий UNIX, основой всего семейства являются принципиально одинаковая архитектура и ряд стандартных интерфейсов. Опытный администратор без большого труда может обслужить другую версию системы, для пользователей переход на другую версию и вовсе может оказаться незаметным.
Простой, но мощный модульный пользовательский интерфейс. Имеется ряд утилит, каждая из которых решает узкую специализированную задачу, из них можно конструировать сложные комплексы.
Использование единой, легко обслуживаемой иерархической файловой системы. Файловая система – это не только доступ к данным, хранящимся на диске. Через унифицированный интерфейс файловой системы осуществляется доступ к терминалам, принтерам, магнитным лентам, сети и даже к памяти.
Большое количество приложений, в том числе свободно распространяемых, начиная от простейших текстовых редакторов и заканчивая мощными системами управления базами данных.
ОС UNIX многозадачная система, предназначенная для работы на станциях, имеющих множество подключенных терминалов. Для обслуживания терминалов в мультипрограммном режиме требуется большой объем оперативной и внешней памяти (8 Мбайт ОЗУ, 1-100 Гбайт ПЗУ) и достаточное быстродействие. В качестве терминалов могут быть различные периферийные устройства: ПК, модемы, факсы, принтеры. Программы могут запускаться с терминала и использовать все доступные в данный момент ресурсы рабочей станции. Поэтому нет необходимости доводить ПК до большой мощности. Особенно эффективны UNIX-сервера для распределенной обработки данных. Для них разработаны СУБД типа Oracle, Informix, которые информацию, разбросанную по разным рабочим станциям, разными знаками представляют одной единой БД.
При обработке больших массивов информации используется интерфейс клиент-сервер, когда пользователь работает только с той информацией, которая его интересует, а не со всем объемом.
ОС UNIX является альтернативой вычислительной сети. Скорость передачи данных на порядок выше чем в ВС.
Подключение ПК в локальную сеть с UNIX-серверами осуществляется по протоколу TCP/IP с помощью пакета PC-NFS. При этом пользователи могут использовать:
а) рабочую станцию как файл-сервер.
б) могут эмулировать на ПК терминал UNIX-сервера (режим TELNET).
в) организовать систему клиент-сервер (ПК формирует SQL-запросы, UNIX-сервер их обрабатывает).
г) непосредственный обмен файлами между ПК по протоколу FTP.
Процесс – одно из основных понятий этой системы. Процесс представляет собой совокупность выполняющейся программы или нескольких программ, которые вызываются при исполнении команды, и данных, обрабатываемых программой: здесь имеются в виду не машинные команды, а системные. Все действия в ОС UNIX определены как процессы. Функционирование ОС можно рассматривать как взаимодействие нескольких связанных процессов. Характерным является наличие механизмов межпроцессорной связи для организации взаимодействия параллельных процессов (каналы, сигналы, очереди сообщений, семафоры, разделение сегментов памяти). Их тип можно выбирать с учетом специфики решаемых задач. Программа, построенная из одновременно выполняющихся процессов называется параллельной, что значительно сокращает время выполнения задачи. Положенные в основу UNIX механизмы поддерживают многопроцессорность. При наличии одного процессора процессы выполняются в режиме разделения времени.
С каждым процессом связаны открытые файлы:
стандартного ввода (дескриптор 0) – терминал или файл.
стандартного вывода (дескриптор 1) – терминал или файл.
сообщений об ошибках (дескриптор 2) – терминал или файл.
Часть процессов не может быть размещена в оперативной памяти из-за ее ограниченного объема и перемещается в область внешней памяти (свопинг). Процесс для выполнения выбирается на основании вычисленного приоритета.
При выполнении программы в среде ОС UNIX взаимодействуют ядро, оболочка Shell и прикладные программы.
Ядро – управляющая программа, взаимодействующая с аппаратными средствами. Ее функции:
Управление памятью и процессором.
Обслуживание внешних устройств.
Обслуживание исполнения всех программ.
Все действия, связанные с вводом-выводом и вызовом программ, выполняются в ОС UNIX с помощью системных вызовов. Системные вызовы реализуют интерфейс между программами и ядром (программный интерфейс).
Интерпретатор команд Shell (оболочка) обеспечивает интерфейс пользователь-ядро при введении пользователем команд с терминала (командный интерфейс). Shell интерпретирует такие команды, вводимые из командного файла.
Существуют различные типы интерпретаторов команд Shell: B-Shell фирмы Telephone Laboratories – бурновский интерпретатор; C-Shell – новая редакция B-Shella: V-Shell – визуальный Shell и т. д.
Shell выполняет следующие функции:
в начале работы выводит на терминал знак-приглашение;
интерпретирует введенную с терминала или из файла строку (командная строка содержит имя команды, может включать обозначаемые знаком минус флаги (опции), задающие различные варианты работы команды, параметры и специальные символы – метасимволы);
ищет файл команды, вызывает его на выполнение и передает его параметры;
выдает сообщение об ошибке, если что-нибудь выполняется неверно;
после выполнения команды выдаем на терминал знак-приглашение.
Shell является также языком программирования, на котором пишут командные файлы (Shell-файлы). Язык содержит конструкции, характерные для языка высокого уровня: условный оператор, операторы циклов, команду ветвления по многим направлениям, команду управления прерыванием и другие.
При входе в ОС пользователь получает копию интерпретатора Shell в качестве родительского процесса. Далее после ввода команды пользователем создается порожденный процесс. Это называется порождением процесса, а порожденный процесс – процессом-потомком или дочерним процессом. То есть после запуска ОС каждый новый процесс функционирует только как процесс-потомок уже существующего процесса.
Встроенные команды интерпретатор выполняет сам(без создания нового процесса), в остальных случаях вызывается файл команды для выполнения и анализа.
Если файл команды является скомпилированной и скомпонованной программой, то порожденный процесс будет выполнять файл команды и родительский процесс будет ждать завершения процесса-потомка. Программист может создавать свои собственные команды, помещая их в файл.
Программные средства ОС UNIX позволяют динамически порождать процессы и организовывать взаимодействие параллельных процессов.
Для порождения процессов используются системные вызовы.
Атрибутами процесса являются: идентификатор процесса (каждый процесс имеет уникальный номер); идентификатор родительского процесса; набор открытых файлов; текущий каталог, переменные округления; идентификаторы пользователя и группы (пользователь, принадлежащий некоторой группе).
Порожденный процесс наследует у родительского большинство атрибутов.
Механизм коллективного использования файлов позволяет объединять действия пользователей. Возможность работы в составе локальных и распределенных сетей разных UNIX-обеспечивается наличием стандартных сетевых и телекоммуникационных средств. В UNIX периферийные устройства называются именами специальных файлов и обмен информации с ними осуществляется также как с файлами. Пользователь может переводить выдачу результатов работы программы с одного ПУ на другие. Можно послать информацию по E-mail другому пользователю. Есть так называемая прямая связь с пользователем и средства общения с пользователями, работающими в другой системе.