Понятие файловой системы

Одной из основных функций операционной системы является обеспечение хранения и доступа к информации на дисковых и ленточных накопителях. Единица хранения информации, имеющая к тому же, уникальное имя, получила название файл. Первоначальный смысл слова «файл» - картотека. Файловая система обеспечивает хранение, учёт и систематизацию информации (программ и данных) в виде файлов, упорядоченное управление этими объектами.

На операционные системы персональных компьютеров наложила глубокий отпечаток концепция файловой системы, лежащей в основе операционной системы  UNIX, созданной в начале 70-х годов ХХ века. В OC UNIX подсистема ввода и вывода унифицирует способ доступа как к файлам, так и к периферийным устройствам. Файловые системы операционных систем создают для пользователей некоторое виртуальное представление внешних запоминающих устройств ЭВМ, позволяя работать с ними не на низком уровне команд управления физическими устройствами (например, обращаться к диску с учётом особенностей его адресации), а на высоком уровне наборов и структур данных. Файловая система скрывает от пользователей картину реального расположения информации во внешней памяти, обеспечивает независимость программ от особенностей конкретной конфигурации ЭВМ, или как ещё говорят, логический уровень работы с файлами. Файловая система также обеспечивает стандартные реакции на ошибки, возникающие при обмене данными. Пользователь, работая в контексте решения прикладной или программистской задачи, обычно использует файлы как поименованные совокупности данных, хранимые во внешней памяти и имеющие определённую структуру. При работе с файлами пользователю предоставляются средства для создания новых файлов, операции по считыванию и записи информации, не затрагивающие конкретные вопросы работы канала по пересылке данных, управлению внешними устройствами.

Роль учётного механизма, позволяющего обслуживать десятки и сотни файлов, в файловой системе очень важна. Общим приёмом является сведение учётной информации о расположении файлов на магнитном диске в одно место – его каталог (директории). Каталог представляет собой список элементов, каждый из которых описывает характеристики конкретного файла используемые для организации доступа к этому файлу: имя файла, его тип, местоположение на диске и длину файла.  В простых операционных системах местоположение единственного каталога на магнитном диске (дискете) и его размер фиксированы. В более сложных системах каталог может находиться в любом месте диска, но на него должна иметься ссылка в так называемой метке тома, находящейся в фиксированном месте, формируемая при инициализации диска. Более того, каталогов может быть большое число и они могут быть логически связаны в какие-либо информационные структуры. Так, наиболее развитая многоуровневая файловая система UNIX поддерживает иерархическую (древовидную) систему каталогов.

 

Организационная диаграмма

 

 

         Каждый пользователь может работать в составе этой структуры со своей системой каталогов (со своим поддеревом). Полное имя в данной структуре задаёт путь переходов между каталогами в логической структуре каталогов. Файл обладает уникальным идентификатором (именем), обеспечивающем доступ к файлу. Идентификатор включает в себя собственно имя – буквенно-цифровое обозначение файла, которое может содержать специальные символы (подчёркивание, дефис и т.д.), и расширение имени файла (обычно отделяемое от имени файла точкой). Если имена создаваемых файлов пользователь может задавать произвольно, то в использовании расширений следует придерживаться традиции, согласно которой расширение указывает на тип файла, характер его содержимого. Например, в операционной системе  Windows (по-наследству от MS-DOS) файлы с расширениями:

.com

.exe – исполняемые

.bat

 

.txt

.doc – текстовые

 

.dbf – файл базы данных

 

.htm – файл, содержащий веб-страницу

 

.jpg

.gif– файлы для графических изображений

.bmp

 

.wav – файлы, содержащие звук

.mp3

 

.avi – видео файлы

.mpg

 

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

         В различных ОС существуют определённые ограчения на длину имени и расширения имени файла. Так, в MS-DOS длина имени файла не должна превышать восьми символов, а расширение – трёх. В OS UNIX и MS-Windows ограничения значительно менее жёсткие, в частности в MS-Windows допустимо использование русских букв в именах файлов, как строчных, так и прописных.

         Для упорядочения файлов, облегчения доступа к ним, файловые системы обеспечивают организацию файлов в директории или каталоги (так это называется в Unix, MS-DOS) или папки (такое название принято в Windows). Директории образуют деревья (древообразные графовые структуры), начинающиеся с корневого директория. По математической традиции корень дерева размещается наверху.

         Имена директориев начиная от корневого, образующие путь к файлу, отделяемые при записи друг друга косой чертой (\ в DOS и Windows, / в UNIX), также как и обозначение диска, относятся к идентификатору файла. Например, в Windows

d:\документы\факультет\5группа\список.doc

         есть файл с именем «список» и расширением doc, указывающим на то, что это текст документа (в формате текстового процессора Word), полный путь к которому:

d: - диск d;

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

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

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

         Многопользовательские файловые системы обеспечивают также защиту и разделение данных, хранящихся в файлах, при работе с ними разных пользователей. Так, например, после входа в системы Windows (NT,2000 и XP), а так же UNIX (в которых вход производится по паролю) пользователь получает доступ к ряду системных, групповых и личных каталогов и файлов. Каждый файл и каталог имеет владельца. Обычно это пользователь, создавший их. Владелец может затем назначить тип защиты файла от трёх категорий пользователей:

·              Владельца (самого себя);

·              Представителей той же группы пользователей, что и владелец (понятие группы полезно при совместной работе над какими-либо проектами);

·              Всех остальных пользователей системы.

Каждый файл (каталог) имеет три вида расширения на доступ:

·  Полностью не доступен;

·  Открыт для чтения – можно просматривать содержимое файла(каталога);

·  Открыт для изменения (записи) – можно менять содержимое файла (создавать или удалять файлы в каталоге).

 

Часть II.

Файловая система (ФС) является важной частью любой операционной системы, которая отвечает за организацию хранения и доступа к информации на каких-либо носителях. Рассмотрим в качестве примера файловые системы для наиболее распространенных в наше время носителей информации – магнитных дисков. Как известно, информация на жестком диске хранится в секторах (обычно 512 байт) и само устройство может выполнять лишь команды считать/записать информацию в определенный сектор на диске.

Рассмотрим более подробно структуру жесткого диска. Базовой единицей жесткого диска является раздел, создаваемый во время разметки жесткого диска. Каждый раздел содержит один том, обслуживаемый какой-либо файловой системой и имеющий таблицу оглавления файлов - корневой каталог. Некоторые операционные системы поддерживают создание томов, охватывающих несколько разделов. Жесткий диск может содержать до четырех основных разделов. Это ограничение связано с характером организации данных на жестких дисках IBM-совместимых компьютеров. Многие операционные системы позволяют создавать, так называемый, расширенный (extended) раздел, который по аналогии с разделами может разбиваться на несколько логических дисков.

В первом физическом секторе жесткого диска располагается головная запись загрузки и таблица разделов (табл. 1). Головная запись загрузки (master boot record, MBR) - первая часть данных на жестком диске. Она зарезервирована для программы начальной загрузки BIOS (ROM Bootstrap routine), которая при загрузке с жесткого диска считывает и загружает в память первый физический сектор на активном разделе диска, называемый загрузочным сектором (Boot Sector). Каждая запись в таблице разделов (partition table) содержит начальную позицию и размер раздела на жестком диске, а также информацию о том, первый сектор какого раздела содержит загрузочный сектор.

Размер (байт)

Описание

446

Загрузочная запись (MBR)

16

Запись 1 раздела

16

Запись 2 раздела

16

Запись 3 раздела

16

Запись 4 раздела

2

Сигнатура 055AAh

Табл. 1. Таблица деления диска

В широком смысле понятие "файловая система" включает:

*            совокупность всех файлов на диске,

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

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

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

Современные операционные системы стремятся обеспечить пользователя возможностью работать одновременно с несколькими файловыми системами. В этом случае ФС рассматривается как часть подсистемы ввода-вывода. В большинстве операционных систем (Windows 98, 2000, XP, OS/2) реализуется механизм переключения файловых систем (File System Switch, FSS), позволяющий поддерживать различные типы ФС. В соответствии с этим подходом информация о файловых системах и файлах разбивается на две части – зависимую от ФС и не зависимую. FSS обеспечивает интерфейс между ядром и файловой системой, транслируя запросы ядра в операции, зависящие от типа файловой системы. При этом ядро имеет представление только о независимой части ФС.

Файловая система представляет многоуровневую структуру, на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS). Он обеспечивает интерфейс между приложением и конкретной файловой системой, к которой обращается приложение. Переключатель файловых систем преобразует запросы к файлам в формат, воспринимаемый следующим уровнем - уровнем драйверов файловых систем. Для выполнения своих функций драйверы файловых систем обращаются к драйверам конкретных устройств хранения информации.

FAT

Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт.

В FAT применяются следующие соглашения по именам файлов:

*     имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов "/\[]:;|=,^*?

*     Длина имени не превышает 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов.

*     регистр символов в именах файлов не различается и не сохраняется.

Структура раздела FAT изображена на рисунке 2. В блоке параметров BIOS содержится необходимая BIOS информация о физических характеристиках жесткого диска. Файловая система FAT не может контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры (clusters). Таким образом, уменьшается общее количество единиц хранения, за которыми должна следить файловая система. Размер кластера в FAT является степенью двойки и определяется размером тома при форматировании диска (табл. 2). Кластер представляет собой минимальное пространство, которое может занимать файл. Это приводит к тому, что часть пространства диска расходуется впустую. В состав операционной системы входят различные утилиты (DoubleSpace, DriveSpace), предназначенные для уплотнения данных на диске.

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

Блок параметров BIOS (BPB)

FAT

FAT
(копия)

Корневой каталог

Область файлов

Рис. 2

Свое название FAT получила от одноименной таблицы размещения файлов. В таблице размещения файлов хранится информация о кластерах логического диска. Каждому кластеру в FAT соответствует отдельная запись, которая показывает, свободен ли он, занят ли данными файла, или помечен как сбойный (испорченный). Если кластер занят под файл, то в соответствующей записи в таблице размещения файлов указывается адрес кластера, содержащего следующую часть файла. Из-за этого FAT называют файловой системой со связанными списками. Оригинальная версия FAT, разработанная для DOS 1.00, использовала 12-битную таблицу размещения файлов и поддерживала разделы объемом до 16 Мб (в DOS можно создать не более двух разделов FAT). Для поддержки жестких дисков размером более 32 Мб разрядность FAT была увеличена до 16 бит, а размер кластера - до 64 секторов (32 Кб). Так как каждому кластеру может быть присвоен уникальный 16-разрядный номер, то FAT поддерживает максимально 216, или 65536 кластеров на одном томе.

Размер раздела

Размер кластера

Тип FAT

< 16 Мб

4 Кб

FAT12

16 Мб – 127 Мб

2 Кб

FAT16

128 Мб – 255 Мб

4 Кб

FAT16

256 Мб – 511 Мб

8 Кб

FAT16

512 Мб – 1023 Мб

16 Кб

FAT16

1 Гб – 2 Гб

32 Кб

FAT16

Табл. 2

Поскольку загрузочная запись слишком мала для хранения алгоритма поиска системных файлов на диске, то системные файлы должны находиться в определенном месте, чтобы загрузочная запись могла их найти. Фиксированное положение системных файлов в начале области данных накладывает жесткое ограничение на размеры корневого каталога и таблицы размещения файлов. Вследствие этого общее число файлов и подкаталогов в корневом каталоге на диске FAT ограничено 512.

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

Содержание

Размер (байт)

Имя файла

8

Расширение

3

Байт атрибутов

1

Зарезервировано

10

Время

2

Дата

2

Номер начального кластера с данными

2

Размер файла

4

Табл. 3. Элемент каталога

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

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

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

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

FAT 32

В настоящее время появляются новые поколения жестких дисков, имеющие все бoльшие объемы дискового пространства, в то время как возможности FAT уже достигли своего предела (FAT может поддерживать разделы размером до 2 Гб).

FAT32 - усовершенствованная версия файловой системы VFAT, поддерживающая жесткие диски объемом до 2 терабайт. Впервые файловая система FAT32 была включена в состав ОС Windows  95 OSR 2. В FAT32 были расширены атрибуты файлов, позволяющие теперь хранить время и дату создания, модификации и последнего доступа к файлу или каталогу.

Из-за требования совместимости с ранее созданными программами структура FAT32 содержит минимальные изменения. Главные отличия от предыдущих версий FAT состоят в следующем. Блок начальной загрузки на разделах с FAT32 был увеличен до 2 секторов и включает в себя резервную копию загрузочного сектора, что позволяет системе быть более устойчивой к возможным сбоям на диске. Объем, занимаемый таблицей размещения файлов, увеличился, поскольку теперь каждая запись в ней занимает 32 байта, и общее число кластеров на разделе FAT32 больше, чем на разделах FAT. Соответственно, выросло и количество зарезервированных секторов.

Необходимо отметить, что официально Microsoft не поддерживает разделы FAT32 объемом менее 512 Мб. Однако в версии утилиты FDISK, поставляемой вместе с OSR2, имеется недокументированный флаг /FPRMT, позволяющий отформатировать под FAT32 разделы объемом менее 512 Мб. Microsoft также не поддерживает FAT32-разделы с размером кластера меньшим, чем 4 Кб. Размеры кластера, предлагаемые по умолчанию при форматировании FAT32 дисков, приведены в таблице 5. Параметр /Z утилиты FORMAT позволяет самостоятельно установить размер кластера на разделе FAT32: FORMAT <диск> /Z:n, где n – число секторов в кластере.

Размер раздела

Размер кластера

< 260 Мб

512 байт

260 Мб – 8 Гб

4 Кб

8 Гб – 16 Гб

8 Кб

16 Гб – 32 Гб

16 Кб

> 32 Гб

32 Кб

Табл. 5

Корневой каталог в FAT32 больше не располагается в определенном месте, вместо этого в блоке BPB хранится указатель на начальный кластер корневого каталога. В результате снимается ранее существовавшее ограничение на число записей в корневом каталоге.

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

В данный момент FAT32 поддерживается в следующих ОС: Windows 95 OSR2, Windows 98, Windows ME, Windows 2000 и Windows XP.

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

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

Развитие файловых систем привело к изменению самого понятия "файл" от первоначального толкования как упорядоченная последовательность логических записей, до понятия файла, как объекта, имеющего набор характеризующих его атрибутов (включая имя файла, его псевдоним, время создания и собственно данные),

 

Hosted by uCoz