Современные версии ОС Unix. Архитектура ОС Unix. Архитектура ядра ОС Unix.

Современные версии Unix

Почти сразу после рождения Unix раскололся на две ветви:

· прародительская ветвь, которой владела Unix System Laboratory (фактически коммерческая ветвь);

· проект исследовательского института Беркли — ветвь в основном свободных (беcплатных) Unix’ов.

Особенности и различия этих ветвей прослеживаются и в современных реализациях Unix. Ниже в таблице приведены основные современные реализации Unix и указана принадлежность той или иной реализации к определенной ветви.

Ветви Unix
ATT BSD
Solaris 2.0 (Sun) UnixWare (Novell) IRIX (Silicon Graphics) SCO (Santa Cruz Operations) HP-UX (Hewlett Packard) SunOS или Solaris 1.x BSD/OS OSF/1 Ultrix Linux

Основное отличие различных реализаций Unix состоит в том, как проводится начальная загрузка системы (этот вопрос рассматривается во второй части курса). В остальном различия реализаций Unix можно считать несущественными.

Архитектура ОС Unix

Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенностей её архитектуры.

Ядро имеет набор услуг, предоставляемых прикладным программам:

· ввод/вывод;

· создание и управление процессами, их синхронизация и межпроцессное взаимодействие.

Все приложения запрашивают услуги ядра посредством «системных вызовов».

Второй (после ядра) уровень составляют приложения или задачи, как системные, определяющие функциональность системы, так и прикладные, обеспечивающие пользовательский интерфейс Unix. Несмотря на внешнюю разнородность приложений, схемы их взаимодействия с ядром одинаковы.

Архитектура ядра Unix

Ядро состоит из трёх основных подсистем:

· Файловая подсистема;

· Подсистема управления процессами и памятью;

· Подсистема ввода/вывода.

1) Файловая подсистема:

· Обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисках и к периферийным устройствам;

· Контролирует права доступа к файлу;

· Обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.

2) Подсистема управления процессами

Запущенная на выполнение программа порождает в системе один или более процессов (или задач).

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

· Создание и удаление процессов;

· Распределение системных ресурсов (памяти, вычислительных процессов) между процессами;

· Синхронизация процессов;

· Межпроцессные взаимодействия.

3) Подсистема ввода/вывода.

Выполняет запросы файловой подсистемы и подсистемы управления процессами для доступа к периферийным устройствам.

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

Структура файловой системы, типы файлов, состав стандартных каталогов.

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

Файлы в Unix:

· Хранят данные пользователей;

· Определяют привилегии пользователей, т.к. права пользователей в большинстве случаев контролируются с помощью прав доступа к файлам;

· Файлы обеспечивают доступ к периферийным устройствам компьютера;

Для приложений Unix доступ к дисковому файлу не отличим от доступа, например, к принтеру.

· Все программы, которые выполняются в системе (включая ядро) являются исполняемыми файлами.

Структура файловой системы

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

Современные версии ОС Unix. Архитектура ОС Unix. Архитектура ядра ОС Unix. - student2.ru

Рис. 2.3. Типичная файловая система Unix

Так как в Unix все доступное пользователем файловое пространство объединено в единое дерево каталогов, то полное имя любого файла начинается с символа '/' и НЕ содержит идентификатора устройства.

Типы файлов

В Unix существуют 6 типов файлов, различающихся по функциональному назначению и действиям ОС при выполнении тех или иных операций над файлами:

· Обычный файл

· Каталог

· Специальный файл устройства

· FIFO или именованный программный канал

· Связь (link)

· Сокет (socket)

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

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

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

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

Одно и то же внешнее устройство может одновременно быть представлено как блок-ориентированным, так и байт-ориентированным специальным файлом.

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

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

Связь (link).В файловой системе ОС Unix каталог содержит имена файлов и указатели на их метаданные (тип файла, права доступа к нему, длина, дата создания). Такой подход позволяет одному файлу иметь несколько имен в файловой системе. Имена жестко связаны с метаданными и, соответственно, с данными файла, в то время как сам файл существует независимо от того, как его называют в файловой системе.

Такая связь имени файла с его данными называется жесткой связью.

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

Сокет (socket-гнездо).Гнёзда предназначены для взаимодействия между процессами. Интерфейс гнёзд часто используется для доступа к сети TCP/IP. В системах ветви BSD Unix на базе гнёзд реализована система межпроцессного взаимодействия, с помощью которой работают многие системные сервисы, например, система печати.

Наши рекомендации