Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Физическая организация FAT



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

· загрузочные сектора главного и дополнительных разделов;

· загрузочные сектора логических дисков (разделов);

· корневой каталог;

· область данных;

· цилиндр для выполнения диагностических операций чтения-записи.

На дискетах, в отличие от жесткого диска, нет загрузочных секторов главного и дополнительных разделов и диагностического цилиндра. Эти структуры создаются программой Fdisk, которая не применяется для дискет, так как они на разделы не разби­ваются. Чтобы установить на один жесткий диск несколько операционных систем, его надо разбить на разделы. В загрузочном секторе главного раздела создается таблица списка разделов.

Загрузочный сектор главного раздела (называемый главной загрузочной записью ­Master Boot Record - MBR) является первым сектором на жестком диске (цилиндр О, головка 0, сектор 1) и состоит из двух элементов:

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

2. главный загрузочный код - небольшая программа, которая выполняется систе­мой BIOS. Основная функция этого кода - передача управления в раздел, кото­рый обозначен как активный (загрузочный).

Загрузочный сектор раздела содержит:

1. блок параметров диска, в котором содержится информация о разделе (размер, количество секторов, размер кластера, метка тома и др.);

2. загрузочный код - программа, с которой начинается процесс загрузки операци­онной системы (для MS DOS и Windows 9x -файл Io.sys).

Загрузочные секторы логических дисков создаются программой Format. Они похожи на загрузочные диски разделов. Однако при загрузке выполняется код только того сектора, который находится в активном разделе.

Логический диск, отформатированный программой Fdisk, состоит из следующихобластей (рис. 4. 24):

· загрузочный сектор;

· основная FAT-таблица, содержащая информацию о размещении файлов и катало­гов на диске;

· копия FAT-таблицы;

· корневой каталог - фиксированная область (16 Кбайт для жесткого диска), позволяющая хранить 512 записей о файлах и каталогах (каждая запись состоит из 32 байтов);

· область данных для размещения всех файлов и каталогов, кроме корневого каталога.

Первые две записи FAT зарезервированы и содержат информацию о самой FAT, все остальные указывают на соответствующие кластеры диска. Индексный указатель принимает значение, характеризующее состояние связанного с ним кластера (для FAT16):

· кластер свободен (OOOOh);

· кластер используется (любое значение, кроме специальных);

· последний кластер файла (FFF8h - FFFFh);

· кластер поврежден (FFF7h);

· резервный кластер (FFF6h).

Размер FAT-таблицы определяется количеством кластера. Разрядность индексного указателя FAT-таблицы должна быть такой, чтобы можно было задать максимальный но­мер кластера диска определенного объема. В соответствии с разрядностью дискового ука­зателя существует несколько разновидностей FAT: FAT12, FAT16, FAT32 (соответственно 212, 216и 232кластеров). Тип используемой FAT определяется программой Fdisk, хотя и записываются они в процессе форматирования высокого уровня программы Format. На всех дискетах применяется FAT12, на жестких дисках до 512 Мбайт - FAT 16, на жестких дисках, имеющих большую емкость при использовании Windows 95 OSR2 и Windows98 ­FAT32 ообще размер кластера может быть от 1 до 128 секторов или от 512 байт до 64 Кбайт). Максимальный размер раздела FAT32 практически не ограни-

чен (232 кластеров по 32 Кбайт).

Пример

За копией FAT-таблицы следует корневой каталог - база данных, содержащая ин-

формацию о записанных на диске данных. Каждая запись в ней имеет длину 32 байта и

содержит всю информацию о файле, которой располагает операционная система. Фор-

мат записи приведен ниже.

Информация о расположении файла, т. е. о расположении оставшихся кластеров,

содержится в FAT-таблице. В процессе работы системы кластеры файла могут оказаться

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

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

пример размещения двух файлов.

В корневом каталоге имеются записи не только о файлах, но и подкаталогов. Эти

записи имеют точно такую же структуру, что и записи корневого каталога. Признак под-

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

циальный файл. Структура атрибутивного байта показана ниже.

Как уже отмечалось, выбор типа FAT-системы во многом определяется емкостью жесткого диска. При использовании FAT 16 нельзя создать раздел емкостью более 2 Гбайт. Для устранения этого ограничения фирма Microsoft разработали FAT32. Она работает как FAT 16, но имеет отличие в организации хранения данных. Кроме того, FAT32 можно уста­новить с помощью программы Fdisk. Впервые FAT32 была реализована в Windows 95 OEM Service Release 2 (0SR2). Она встроена и в Windows 98/Me/NT/2000.

Основное преимущество FAT32 - возможность использования 32-разрядных записей вместо 16-разрядных, что приводит к увеличению кластеров (вместо 216= 65536) до 268 435 456 в разделе. Это значение в Windows 95 OSR2 эквивалентно 228, а не 232, поскольку 4 бита из 32 зарезервированы для других целей.

При использовании FAT 32 размер раздела может достигать 2 Тбайт при кластере размером 8, 16 или 32 Кбайт. Новая файловая система может иметь 232кластеров размером 512 байт, а размер единичного файла может составить 4 Гбайт. Реально FAT 32 поддерживает максимальный размер тома до 32 Гбайт. Это связано с тем, что в Windows 2000 это ограничение обусловлено программой Format. Вообще максимально возмож­ный том - 2 Тбайт при кластере 32 Кбайт.

Существует важное отличие FAT 32 от ее предшественниц - положение корневого каталога: он может располагаться в любом месте раздела и иметь любой раздел. Это обеспечивает динамическое изменение размера раздела. Независимые разработчики ис­пользовали это свойство. Так, фирма Power-Quest создала программу Partion Magic, по­зволяющую переопределять разделы после их создания.

Файловая система FAT32 также использует преимущество двух копий FAT. Как и в FAT 16, в FAT32 первая копия является основной и периодически копирует данные в до­полнительную копию FAT. При проблемах с главной копией FAT системы переключа­ются в дополнительную копию, которая становится главной.

Примечание: Программа Fdisk автоматически определяет размер кластера на осно­ве выбранной файловой системы и размеров раздела. Однако существует недокументи­рованный параметр команды Format, позволяющий явно указать размер кластера: For­mat/z:n, где п -размер кластера в байтах, кратный 512.

Набор файловых операций

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

Create (создание). Файл создается без данных. Этот системный вызов объявляет о появлении нового файла и позволяет установить некоторые его атрибуты.

Delete (удаление). Ненужный файл удаляется, чтобы освободить пространство на диске.

Open (открытие). До использования файла его нужно открыть. Данный вызов по­зволяет прочитать атрибуты файла и список дисковых адресов для быстрого досту­па к содержимому файла.

Close (закрытие). После завершения операций с файлом его атрибуты и дисковые адреса не нужны. Файл следует закрыть, чтобы освободить пространство во внут­ренней таблице.

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

Write (запись). Данные записываются в файл в текущую позицию. Если она нахо­дится в конце файла, его размер автоматически увеличивается. В противном случае запись производится поверх существующих данных.

Append (добавление). Это усеченная форма предыдущего вызова. Данные добавля­ются в конец файла.

Seek (поиск). Данный системный вызов устанавливает файловый указатель в опре­деленную позицию.

Get attributes (получение атрибутов). Процессам для работы с файлами бывает не­обходимо получить их атрибуты.

Set attributes (установка атрибутов). Этот вызов позволяет установить необходи­мые атрибуты файлу после его создания.

Rename (переименование). Этот системный вызов позволяет изменить имя файла. Однако такое действие можно выполнить копированием файла. Поэтому данный системный вызов не является необходимым.

Execute (выполнить). Используя этот системный вызов, файл можно запустить на выполнение.

Рассмотрим примеры файловых операций в ОС Windows 2000 и UNIX. Как и в дру­гих ОС, в Windows 2000 есть свой набор системных вызовов, которые она может выпол­нять. Однако корпорация Microsoft никогда не публиковала список системных вызовов Windows, кроме того, она постоянно меняет их от одного выпуска к другому [37]. Вме­сто этого Microsoft определила набор функциональных вызовов, называемый Win 32 API (Win 32 Application Programming Interface). Эти вызовы опубликованы и полно­стью документированы. Они представляют собой библиотечные процедуры, которые либо обращаются к системным вызовам, чтобы выполнить требуемую работу, либо вы­полняют прямо в пространстве пользователя.

Философия Win 32 API заключается в предоставлении всеобъемлющего интер­фейса, с возможностью выполнить одно и то же требование несколькими (тремя-че­тырьмя) способами. В ОС UNIX все системные вызовы формируют минимальный ин­терфейс: удаление даже одного из них приведет к снижению функциональности ОС.

Многие вызовы API создают объекты ядра того или иного типа (файлы, процессы, по­токи, каналы и т. д.). Каждый вызов, создающий объект, возвращает вызывающему процессу результат, называемый дескриптором (небольшое целое число). Дескриптор ис­пользуется впоследствии для выполнения операций с объектами. Он не может быть пере­дан другому процессу и использован им. Однако при определенных обстоятельствах деск­риптор может быть дублирован и передан другому процессу защищенным способом, что предоставляет второму процессу контролируемый доступ к объекту, принадлежащему первому процессу. С каждым объектом ассоциирован дескриптор безопасности, описы­вающий, кто и какие действия может, а какие не может выполнять с данным объектом.

Основные функции Win 32 API для файлового ввода-вывода и соответствующие или системные вызовы ОС UNIX приведены ниже.

Аналогично файловым операциям обстоит дело с операциями управления ка­талогами. Основные функции Win 32 API и системные вызовы UNIX для управления каталогами приведены ниже.

Контроль доступа к файлам

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

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

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

У каждого объекта доступа существует владелец. Владелец объекта имеет право вы­полнить с ним любые допустимые для данного объекта операции. Во многих ОС существует особый пользователь - администратор «superuser», который имеет все пра­ва по отношению к объектам системы, необязательно являясь их владельцем. Эти права (полномочия) необходимы администратору для управления политикой доступа.

Различают два основных подхода к определению прав доступа:

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

Мандатный доступ (от mandatory - принудительный) - подход к определению прав доступа, при котором система (администратор) наделяет пользователя или группу определенными правами по отношению к каждому разделяемому ресурсу. В этом случае группы пользователей образуют строгую иерархию, причем каждая группа пользуется всеми правами группы более низкого уровня иерархии.

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

Каждый пользователь (группа) имеют символьное имя, а также уникальный чис­ловой идентификатор. При выполнении процедуры логического входа в систему поль­зователь сообщает свое символьное имя или пароль. Все идентификационные данные, а также сведения о вхождении пользователя в группы хранятся в специальном файле (UNIX) или базе данных (Windows NT).

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

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

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

Возможна комбинация двух подходов - детальный уровень и укрупненный. Напри­мер, в Windows NT/2000/2003 администратор работает на укрупненном уровне, а при желании может перейти на детальный.

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

Поэтому она хранится по частям, т. е. для каждого файла и каталога создается список управления доступом (Access Control List, ACL), в котором описываются права на вы­полнение операций пользователей и групп пользователей по отношению к этому файлу или каталогу. Список управления доступом является частью характеристик файла или каталога и хранится на диске в соответствующей области. Не все файловые системы поддерживают списки управления доступом, например FAT не поддерживает, посколь­ку разрабатывалась для однопрограммной, однопользовательской ОС MS DOS.

Обобщенно формат списка управления доступом (ACL) можно представить в виде набора идентификаторов пользователей и групп пользователей, в котором для каждого идентификатора указывается набор разрешенных операций над объектом. Сам список ACL состоит из элементов управления доступом (Access Control Element, АСЕ), которые соответствуют одному идентификатору. Список ACL с добавлением идентификатора владельца называют характеристиками безопасности.

Рассмотрим организацию контроля доступа в ОС Windows NT/2000/XP. Система управления доступом в этой операционной системе отличается высокой степенью гибкости, которая достигается за счет большого разнообразия субъектов и объектов до­ступа и детализации операций доступа.

Для разделяемых ресурсов в Windows XP применяется общая модель объекта, которая содержит такие характеристики безопасности, как набор допустимых опера­ций, идентификатор владельца, список управления доступом.

Проверки прав доступа для объектов любого типа выполняются централизованно с помощью монитора безопасности (Security Reference Monitor), работающего в приви­легированном режиме.

Для системы безопасности Windows характерно большое количество различных встроенных (предопределенных) субъектов доступа - отдельных пользователей и групп (Administrator, System, Guest, группы Users, Administrators, Account, Operators и др.). Смысл этих встроенных пользователей и групп состоит в том, что они наделены оп­ределенными правами. Это облегчает работу администратора по созданию эффективной системы разграничения доступа. Во-первых, за счет того, что нового пользователя можно внести в какую-либо группу. Во-вторых, можно добавлять (изымать) права встроенных групп. Наконец, можно создавать новые группы с уникальным набором прав.

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

В Windows NT/2000/XP администратор может управлять доступом пользователей к каталогам и файлам только в разделах диска, в которых установлена файловая систе­ма NTFS, разделы FAT не поддерживаются, так как в этой ФС у файлов и каталогов от­сутствуют атрибуты для хранения списков управления доступом.

Разрешения в Windows бывают индивидуальные (специальные) и стандартные. Индивидуальные относятся к элементарным операциям над каталогами и файлами, а стан­дартные разрешения являются объединением нескольких индивидуальных раз­решений.

На рис. 4.27 и 4.28 приведены шесть стандартных разрешений (элементарных операций), смысл которых отличается для каталогов и файлов. На рис. 4.29 показана возможность установки индивидуальных разрешений для файлов.





Дата публикования: 2014-11-04; Прочитано: 1640 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.019 с)...