Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!1-25.doc
Скачиваний:
7
Добавлен:
28.10.2018
Размер:
2.62 Mб
Скачать

22.1 Архитектура unix. Ядро системы. Файловая система. Типы файлов.

Архитектура UNIX.UNIX- это многопользовательская и многозадачная операционная система. Архитектура ее базируется на наборе интуитивно ясных понятиях:

- пользователь – человек , пользующийся некоторыми ресурсами ЭВМ и имеющий набор привилегий в той или иной степени.

- интерфейс пользователя - способ взаимодействия пользователя с системой UNIX(обычно командный интерпретатор).

- привилегированный пользователь - администратор системы

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

- перенаправление ввода/вывода гибкий механизм ввода-вывода системы.

Ядро системы. Управляет ресурсами компьютера и предоставляет пользователям базовый набор услуг. Основные ф-ции : иниц-ия системы; управление процессами и нитями; управление памятью; управление файловой системой; коммуникационные средства; программный интерфейс. Основная часть ядра не зависит от архитектурных особенностей целевой платформы , что обеспечивает высокую мобильность системы. Машинно-зависимая часть традиционного ядра ОС UNIX включает следующие компоненты : раскрутка и инициализация системы на низком уровне; первичная обработка внутренних и внешних прерываний; управление памятью (в той части, которая относится к особенностям аппаратной поддержки виртуальной памяти); переключение контекста процессов между режимами пользователя и ядра; связанные с особенностями целевой платформы ; части драйверов устройств.

Структура файловой системы. Файловая система ОС UNIX имеетиерархическую структуру, образующую дерево каталогов и файлов. Корневой каталог обозначается символом "/", путь по дереву каталогов состоит из имен каталогов,разделенных "/", например:/usr/work/document. Имя файла содержит путь. Имя явл атрибутом файловой системы, а не набором некоторых данных на диске. В каждый момент времени с любымпользователем связан текущий каталог, то есть местоположение пользователя виерархической файловой системе.

Каждый файл имеет связь с несколькими метаданными, хрянящимися в inode.

Каждый файл ОСUNIX может быть однозначно специфицирован некоторой структурой данных,называемой описателем файла или дескриптором. Он содержит всю информацию о файле: тип файла, режим доступа, идентификатор владельца, размер, адрес файла, даты последнего доступа и последней модификации, дату создания и пр. Эта структура описана в файле<fcntl.h>, она занимает 64 байта и содержит следующую информацию:

struct dinode { unsigned shortdi_mode;/* режим доступа и тип файла */

shortdi_nlink; /* счетчик числа ссылокна файл */

shortdi_uid; /* идентификатор еговладельца */

shortdi_gid; /* идентификатор группы*/

off_tdi_size; /* счетчик числа байт вфайле */

chardi_addr[40]; /* указатели на блокидиска,в которыххранится сам файл */

time_tdi_atime; /* дата последнего доступа*/

time_tdi_mtime; /* дата последней модификацииметаданных*/

time_tdi_ctime; /* дата создания */ }

Поле di_mode состоит из 16-тиразрядов. Поле di_addr используется для хранения указателей местоположения блоков диска, содержащих информацию, помещенную в данный файл. В этом поле может храниться 13 указателей, из которых первые 10 относятся к первым десяти блокам файла. Если файл занимает больше места, то в 11-й указатель заносится информация о местоположении первичногоблока косвенности, состоящего из 128 32-битных указателей наблоки файла; 12-й указатель указывает на вторичный блок косвенности, содержащий128 указателей местоположения первичных блоков косвенности, а 13-й указатель,соответственно, указывает на местоположение третичного блока косвенности,включающего 128 указателей вторичного блока косвенности. Таким образом,используя эту схему адресации, можно обращаться к файлу, состоящему не более чем из (128x128x128+128x128+128+10) блоков. Все этирассуждения справедливы для блоков размером 512 (128x4) байт.

Обращение к файлу происходит по имени. Локальное имя файла представляет собой набор произвольных символов. Если среди этих символов встречается точка, то за ней следует т.н. расширение, которое обычно служит для определения типа файла. Расширений м.б. несколько (например, имя "progr.c.b" может означать старую версию (bak-файл) программы на языке С).

Локальное имя файла хранится в соответствующем каталоге. Путь к файлу от корневого каталога называется полным именем файла. Если обращение к файлу начинается с символа "/",то его поиск начинается с корневого каталога, в любом другом случае поиск файла начинается с текущего каталога.

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

     Обращение к файлу происходит по имени. Локальное имя файла представляет собой набор символов. В качестве символов следует использовать цифры, буквы латинского алфавита и символ ‘_’. Локальное имя файла хранится в соответствующем каталоге. Каталог – файл, содержащий имена. Путь к файлу от корневого каталога называется полным именем файла.

Типы файлов

В ОС UNIX сущ 6 типов файлов:обычные файлы, каталоги, специальные файлы, каналыFIFO, символьные связи link, сокеты..

Обычный файл (regular file) представляет собой последовательность байтов. Никаких ограничений на файл системой не накладывается, и никакого смысла не приписывается его содержимому: смысл байтов зависит исключительно от программ, обрабатывающих файл.

Каталог - это файл особого типа, отличающийся от обычного файла наличием структуры и ограничением по записи: осуществить запись в каталог может только ядро ОС UNIX. Каталог устанавливает соответствие между файлами (точнее, номерами описателей) и их локальнымиименами. Пример каталога для файловой системы ОС UNIX System V - Рис.1 (2 байта- номера описателей, 14 байтов -локальные имена).

Номер описателя

Имя файла

5412

81

3009

58

3413

0

3601

.

..

bin

work

text.txt

cross.c

move.c

Рисунок 1. Пример каталога ОСUNIX System V

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

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

Канал - это программное средство, связывающее процессы ОС UNIX буфером ввода/вывода. Например, запуск процессов ввиде $ процесс_1 | процесс_2 означает, что стандартный вывод процесса_1 будет замкнут на стандартный ввод процесса_2. При этом сначала создается канал, а потом на выполнение одновременно запускаются оба процесса, и общее время их выполнения определяется более медленным процессом.

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

Классы доступа user access(u); group access(g); other access(o).

Типы прав доступа – read (r); write (w); execute (x).

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