Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Информация и данные.doc
Скачиваний:
14
Добавлен:
13.08.2019
Размер:
807.94 Кб
Скачать

1.2.5.4. Файловые системы

Файловая система – это способ организации файлов на внешнем носителе. Она зависит от типа носителя и операционной системы. Для клона IBM PC наиболее известны ФС FAT (DOS, win3x, win9x), NTFS (NT, XP, win2000), CDFS (CD-ROM) и HPFS (OS/2).

Файловая система FAT

FAT16

FAT16 исторически самая старая ФС с 16 разрядной адресацией и максимальное количество кластеров на одном логическом диске не превышает 65536. FAT работает с дисками до 2 Гбайт. Следовательно, для такого диска размер кластера 32Кб.  большие потери дискового пространства.

В самом начале диска (0-я сторона, 0-я дорожка, 0-й сектор) записана BOOTRECORD – загрузочная запись – это небольшая программка, которая знает, где на диске лежит загрузчик операционной системы и как его загрузить в ОП. Что она и делает. Далее располагается область FAT (file allocation table), в которой записаны цепочки кластеров для каждого файла и для свободного пространства. Когда ОС необходимо записать файл на диск она берет свободные кластеры и записывает туда информацию. Поскольку эта область крайне критична к сбоям, на диске хранятся 2 экземпляра FAT.

Далее идет область DIR, где записываются имена и атрибуты (время, размер, R/O System Hidden и № первого кластера данных). Далее область данных.

FAT32

FAT32 – принципиально ничем не отличается от 16-разрядной версии. Размер записи увеличился до 32 разрядов (из них 4 зарезервированы), что позволяет увеличить размер раздела до 2 Террабайт, при этом, например, раздел в 8Гб имеет кластер всего 4Кб. При этом DOS - приложения могут работать с файлами размером не более 2Гб, а 32-разрядные приложения до 4Гб.

К основным недостаткам FAT могут быть отнесены следующие:

  • ограничения, налагаемые на размер файлов и дискового пространства;

  • ограничение длины имени файла;

  • фрагментация файлов, приводящая к снижению быстродействия системы и износу оборудования;

  • непроизводительные затраты памяти, вызванные большими размерами кластеров;

  • подверженность потерям данных.

Файловые системы Windows NT1

Windows NT (2000, XP) поддерживает две файловые системы: существовавшую ранее файловую систему FAT и собственную, новую файловую систему NTFS. (версии младше NT4.0 поддерживали также файловую систему HPFS, разработанную для операционной системы OS/2)

Файловая система FAT в Windows NT функционирует так же, как если бы она работала в среде MS-DOS или Windows. Практически можно без всяких опасений устанавливать Windows NT в существующем разделе FAT. Однако следует учитывать, что если были использованы какие-либо программы для сжатия или разбиения диска на разделы, то для чтения таких дисков скорее всего могут потребоваться специально разработанные для этих целей драйверы Windows NT. Файлы из разделов FAT могут безболезненно копироваться в разделы NTFS, но при выполнении обратной операции будет потеряна информация о правах доступа и об альтернативных связях файла.

Новая файловая система NTFS обладает лучшими показателями производительности и надежности по сравнению с FAT.

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

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

Каждый файл на томе NTFS представлен записью в специальном файле, называемом Главной таблицей файлов (Master File Table, MFT).

В отличие от разделов FAT и HPFS все пространство тома NTFS представляет собой либо файл, либо часть файла. Основой структуры тома NTFS является Главная таблица файлов (Master File Table, MFT), которая содержит, по крайней мере, одну запись для каждого файла тома, включая одну запись для самой себя. Каждая запись имеет длину 2К.

Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT. Каждый файл и каталог на томе NTFS состоит из набора атрибутов.

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

Загрузочный сектор тома NTFS располагается в начале тома, а его копия - в середине тома. Загрузочный сектор состоит из стандартного блока параметров BIOS, количества секторов в томе, а также начального логического номера кластера основной копии MFT и зеркальной копии MFT.

Файлы NTFS состоят, по крайней мере, из следующих атрибутов:

  • заголовок (H - header)

  • стандартная информация (SI - standard information)

  • имя файла ( FN - file name)

  • данные (data)

  • д ескриптор безопасности (SD - security descriptor)

Небольшие файлы (small). Если файл имеет небольшой размер, то он может целиком располагаться внутри одной записи MFT размером 2К (рис. 2.3). Из-за того, что файл может иметь переменное количество атрибутов, а также из-за переменного размера атрибутов нельзя наверняка утверждать, что файл уместится внутри записи. Однако обычно файлы размером менее 1500 байт помещаются внутри записи MFT.

Б ольшие файлы (Large). Если файл не вмещается в одну запись MFT, то этот факт отображается в значении атрибута "данные", который содержит признак того, что файл является нерезидентным, то есть, что файл находится вне таблицы MFT. В этом случае атрибут "данные" содержит виртуальный номер кластера для первого кластера каждого фрагмента данных (data run), а также количество непрерывных кластеров в каждом фрагменте (рисунок 2.4).

Очень большие файлы (huge). Если файл настолько велик, что его атрибут данных не помещается в одной записи, то этот атрибут становится нерезидентным, то есть он находится в другой записи таблицы MFT, ссылка на которую помещена в исходной записи о файле (рис. 2.5). Эта ссылка называется внешним атрибутом (external attribute). Нерезидентный атрибут содержит указатели на фрагменты данных.

С верхбольшие файлы (extremely huge). Для сверхбольших файлов внешний атрибут может указывать на несколько нерезидентных атрибутов (рис. 2.6). Кроме того, внешний атрибут, как и любой другой атрибут может храниться в нерезидентной форме, поэтому в NTFS не может быть атрибутов слишком большой длины, которые система не может обработать.

Каждый каталог NTFS представляет собой один вход в таблицу MFT, который содержит список файлов специальной формы, называемый индексом (index). Индексы позволяют сортировать файлы для ускорения поиска, основанного на значении определенного атрибута. Обычно в файловых системах FAT и HPFS используется сортировка файлов по имени. NTFS позволяет использовать для сортировки любой атрибут, если он хранится в резидентной форме.

Атрибуты файлов и каталогов

Каждый атрибут файла NTFS состоит из полей: тип атрибута, длина атрибута, значение атрибута и, возможно, имя атрибута.

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

Ниже приведен список атрибутов.

  • Attribute List - определяет список атрибутов, которые являются допустимыми для данного конкретного файла;

  • File Name - этот атрибут содержит длинное имя файла, а также номер входа в таблице MFT для родительского каталога; если этот файл содержится в нескольких каталогах, то у него будет несколько атрибутов типа "File Name"; этот атрибут всегда должен быть резидентным;

  • MS-DOS Name - этот атрибут содержит имя файла в формате 8.3;

  • Version - атрибут содержит номер последней версии файла;

  • Security Descriptor - этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле аудита, которое определяет, какого рода операции над этим файлом нужно регистрировать;

  • Volume Version - версия тома, используется только в системных файлах тома;

  • Volume Name - отметка тома;

  • Volume Information - номер версии NTFS ;

  • Data - содержит обычные данные файла;

  • MFT bitmap - этот атрибут содержит карту использования секторов на томе;

  • Index Root - корень B-дерева, используемого для поиска файлов в каталоге;

  • Index Allocation - нерезидентные части индексного списка B-дерева;

  • External Attribute Information - содержит номер первого кластера и количество кластеров нерезидентного атрибута;

  • Standard Information - этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с каким-либо из других атрибутов файла, например, время создания файла, время обновления и другие.

Короткие имена

NTFS поддерживает имена файлов длиной до 255 символов. Имена файлов NTFS используют набор символов UNICODE с 16-битовыми символами. NTFS автоматически генерирует поддерживаемое MS-DOS имя для каждого файла. Таким образом, файлы NTFS могут использоваться в сети операционными системами MS-DOS и OS/2. Это особенно важно для файловых серверов в организациях, которые используют персональные компьютеры с этими двумя или тремя операционными системами. Создавая имена файла по схеме 8.3, NTFS также позволяет приложениям MS-DOS и Windows 3.х работать с файлами, имеющими длинные имена NTFS .

Поскольку NTFS использует набор символов UNICODE для имен файлов, существует возможность использования некоторых запрещенных в MS-DOS символов. Для генерации короткого имени файла в стиле MS-DOS NTFS удаляет все запрещенные символы, точки (кроме одной), а также любые пробелы из длинного имени файла. Далее имя файла усекается до 6 символов, добавляется тильда (~) и номер. Например, каждому недублированному имени файла добавляется ~1, повторяющиеся имена файлов заканчиваются символами ~2, ~3 и т.д. Расширение имени файла усекается до 3 символов.

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

На FAT короткое имя образуется путем использования первых 6 символов от длинного плюс знак "~" плюс цифра. Далее следует расширение файла. Если в длинном имени имеются пробелы, то они игнорируются. Если имеется несколько файлов с длинными именами, различающимися деталями за пределами первых 6 символов, то у коротких имен, соответствующих им будет изменяться последняя цифра. Если таких похожих файлов больше четырех, то первые 6 символов определяются по специальному алгоритму, а окончание имени всегда одинаково: "~5".

Например, если файл имеет имя "длинное имя файла.русское", то его короткое имя "ДЛИННО~1.РУС". Если у какого-либо файла в этом каталоге первые 6 символов имени и три символа расширения окажутся такими же, например, "длинное письмо.руслан", короткий вариант будет выглядеть так: "ДЛИННО~2.РУС".

На NTFS короткое имя образуется по несколько иному алгоритму, когда за основу берутся не первые 6 символов длинного имени, а их эквивалент в UNICODE.

Например, для файла, длинное имя которого "Очень хороший файл. С расширением", короткое имя будет выглядеть следующим образом: 9а10~1.gif

Надежность NTFS

NTFS является восстанавливаемой (recoverable) файловой системой. Она гарантирует согласованность данных тома, используя стандартную процедуру регистрации транзакций. Каждая операция ввода-вывода, которая изменяет файл на томе NTFS , рассматривается файловой системой как транзакция.

При модификации файла специальная компонента файловой системы - сервис регистрации файлов (Log File Service) - фиксирует всю информацию, необходимую для повторения (redo) или отката (undo) транзакции в специальном файле с именем $LogFile. Если транзакция не завершается нормально, то NTFS пытается закончить транзакцию (повторить) или производит ее откат. Этот метод обеспечивает минимальное время восстановления, однако восстанавливаются только системные данные (метаданные), пользовательские же данные могут быть утеряны.

Для обеспечения сохранности пользовательских данных используется программная поддержка массивов RAID (Redundant Array of Inexpensive Disks). В сочетании с поддержкой зеркализации дисков или расщепления с контролем четности (RAID 5) NTFS может выдержать любой одиночный сбой.