Типы файловых систем. Организация файлов, контроль доступа к файлам
Одной из основных задач ОС является реализация эффективной работы пользователя с данными, хранящимися во внешней памяти ВС. Для решения этой задачи ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью.
Базовым элементом этой модели является файл.
Файл – это именованная область памяти, в которую могут записываться и из которой могут считываться данные.
Файл характеризуется своей логической и физической структурой.
Особенностью файла как объекта является тот факт, что к нему для выполнения каких-то операций обращаются по имени (к ячейкам памяти − по адресу, к внешним устройствам – по адресу, а к файлам − по имени).
По аналогии с адресным пространством при рассмотрении файлов иногда используют понятие пространства имен.
Пространство имен файлов характеризует совокупность всех допустимых имен файлов.
Это пространство (структура имен файлов) определяется характеристиками файловой системы.
Файловая система (ФС) − это часть ОС, включающая в себя:
· совокупность всех файлов на диске;
· наборы структур данных, используемых для управления файлами (каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на HDD);
· комплекс системных программных средств, реализующих различные операции над файлами (создание, уничтожение, чтение, запись, именование, поиск и др.).
ФС поддерживает несколько функционально различных типов файлов:
· обычные;
· каталоги (директории);
· специальные;
· именованные конвейеры (каналы);
· отображаемые.
Обычные файлы − содержат информацию произвольного характера, которую заносит в них пользователь или системные или пользовательские программы.
Большинство современных ОС не ограничивает и не контролирует содержимое и структуру обычного файла.
Содержимое обычного файла определяется приложением, которое с ним работает. ОС должна распознавать хотя бы один тип файлов – собственные исполняемые файлы.
Каталоги − особый тип файлов, которые содержат системную справочную информацию о наборе файлов сгруппированных пользователем по некоторому неформальному признаку.
В современных ОС в каталог могут входить другие каталоги (поддерживается вложенность каталогов).
За счет вложенности каталогов образуются древовидные структуры каталогов, которые позволяют организовать процедуры поиска необходимых файлов.
Каталоги устанавливают соответствие между именами файлов, которые включены в состав каталогов, и их характеристиками.
В число характеристик файлов входят тип файла, права доступа к файлу, его расположение на диске, размер, дата и время создания и др.
Специальный файл − это фиктивные файлы, ассоциированные с устройствами ввода/вывода. Используются для унификации механизма доступа к последовательным устройствам, таким как терминалы, принтеры и др.
Эти команды сначала обрабатываются средствами файловой системы, а затем на некотором этапе выполнения запроса преобразуются в команды управления устройством.
Например, Windows рассматривает монитор и клавиатуру как файл с именем con, а принтер – как файл prn.
Именованные конвейеры (каналы) – представляют собой циклические буферы, позволяющие выходной файл одного процесса соединить с входным файлом другого процесса (средство коммуникации между процессами)
Отображаемые файлы – это обычные файлы, отображенные на адресное пространство процесса по указанному адресу.
Основным устройством для хранения файлов в составе ВС в настоящее время являются жесткие диски.
Диск представляет собой совокупность пластин, покрытых магнитным материалом. На каждой стороне диска размечены концентрические кольца − это дорожки, на которых хранится информация. Совокупность дорожек одного радиуса называется цилиндром.
Каждая дорожка разбивается на фрагменты – сектора. Сектор имеет фиксированный размер (степень числа два), обычно 512 байт. Сектор – это наименьшая адресуемая единица обмена данными.
ОС при работе с дисками использует единицу дискового пространства – кластер (содержит несколько секторов в количестве, кратном степени числа два).
Дорожки и сектора создаются в результате выполнения физического (низкоуровнего) форматирования диска (перед использованием диска его обязательно надо отформатировать). Физическое форматирование диска не зависит от ОС, которая будет использовать этот диск.
Разметку диска под конкретный тип файловой системы выполняет процедура логического форматирования.
При этом определяется размер кластера, записывается файловая система и загрузчик ОС.
Но прежде чем выполнять логическое форматирование, диск необходимо разбить на разделы.
Раздел – это непрерывная часть физического диска, которую ОС предоставляет пользователю как логическое устройство (С:, Е: и др.).
В каждом разделе может создаваться своя файловая система.
Файловые системы могут предусматривать различные формы поддержки файлов.
1. Непрерывное размещение – простейший вариант физической организации файла. В этом случае файлу предоставляется последовательность кластеров диска, образующих непрерывный участок дисковой памяти.
2. Представление файла в виде связанного списка кластеров дисковой памяти. При таком способе в начале каждого кластера, который входит в состав файла, содержится указатель на следующий кластер файла.
3. Представление файла в виде связного списка индексов. В этом случае файлу выделяется память в виде связного списка кластеров. Номер первого (входного) кластера записывают в файле-каталоге. Остальная адресная информация хранится в отдельной таблице (FAT), загружаемой в ОП. Эта таблица хранит указатели на следующие кластеры файла.
4. Представление файла простым перечислением номеров кластеров, занимаемых этим файлом. Этот перечень служит и адресом файла.Такой подход используется в ОС UNIX. Метод перечисления адресов кластеров используется в NTFS (эта ФС используется в WindowsNT/2000/2003/XP).
Файлы — это частный, хотя и самый популярный, вид разделяемых ресурсов, доступ к которым операционная система должна контролировать.
Пользователи пытаются выполнить определенные операции с некоторым разделяемым ресурсом, а ОС должна решать, имеют ли пользователи на это право. Пользователи являются субъектами доступа, а разделяемые ресурсы — объектами. Пользователь осуществляет доступ к объектам операционной системы не непосредственно, а с помощью прикладных процессов, которые запускаются от его имени. Для каждого типа объектов существует набор операций, которые с ними можно выполнять. Например, для файлов это операции чтения, записи, удаления, выполнения; для принтера − перезапуск, очистка очереди документов, приостановка печати документа и т. д. Система контроля доступа ОС должна предоставлять средства для задания прав пользователей по отношению к объектам, дифференцирование по операциям, например, пользователю может быть разрешена операция чтения и выполнения файла, а операция удаления − запрещена.
У каждого объекта доступа существует владелец. Владельцем может быть как отдельный пользователь, так и группа пользователей Владелец объекта имеет право выполнять с ним любые допустимые для данного объекта операции. Различают два основных подхода к определению прав доступа.
Избирательный доступ имеет место, когда для каждого объекта сам владелец может определить допустимые операции с объектами. Исключение делается только для администратора, по умолчанию наделяемого всеми правами.
Мандатный доступ (от mandatory — обязательный, принудительный) — это такой подход к определению прав доступа, при котором система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен. От имени системы выступает администратор, а владельцы объектов лишены возможности управлять доступом к ним по своему усмотрению.
Мандатные системы доступа считаются более надежными, но менее гибкими, обычно они применяются в специализированных вычислительных системах с повышенными требованиями к защите информации. В универсальных системах используются, как правило, избирательные методы доступа.
Вопросы для самопроверки по теме 5.3
1. В чем заключается отличие файла от ячеек памяти, внешних устройств?
2. Чем отличается обычный файл от каталога?
3. Назовите состав файловой системы ОС.
4. Каким образом осуществляется доступ пользователя к файлам?
5. Чем отличается мандатный доступ от избирательного?