Файловые системы
Одной из основных задач операционной системы (ОС) является предоставление удобств пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью.
Файловая система
(ФС) — это часть операционной системы, включающая:
· совокупность всех файлов на диске;
· наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;
· комплекс системных программных средств, реализующих различные операции над файлами, такие как создание, уничтожение, чтение, запись, именование и поиск файлов.
Файловая система позволяет программам обходиться набором достаточно простых операций для выполнения действий над некоторым абстрактным объектом, представляющим файл. При этом программистам не нужно иметь дело с деталями действительного расположения данных на диске, буферизацией данных и другими низкоуровневыми проблемами передачи данных с долговременного запоминающего устройства. Все эти функции файловая система берет на себя. Файловая система распределяет дисковую память, поддерживает именование файлов, отображает имена файлов в соответствующие адреса во внешней памяти, обеспечивает доступ к данным, поддерживает разделение, защиту и восстановление файлов.
Таким образом, файловая система играет роль промежуточного слоя, экранирующего все сложности физической организации долговременного хранилища данных, и создающего для программ более простую логическую модель этого хранилища, а также предоставляя им набор удобных в использовании команд для манипулирования файлами.
Существует несколько файловых систем: FAT, NTFS, ufs, s5 и др. Мы будем рассматривать только FAT и NTFS, так как они являются наиболее используемыми.
Операционными системами Windows используется, разработанная еще для MS-DOS файловая система FAT, в которой для каждого раздела и тома MS-DOS имеется загрузочный сектор, а каждый раздел MS-DOS содержит две копии таблицы размещения файлов (file allocation table – FAT).
FAT представляет собой матрицу, которая устанавливает соотношение между файлами и папками раздела и их физическим местоположением на жестком диске.
Перед каждым разделом жесткого диска последовательно расположены две копии FAT. Подобно загрузочным секторам, FAT располагается за пределами области диска, видимой для файловой системы.
При записи на диск файлы не обязательно занимают пространство, эквивалентное их размеру. Обычно файлы разбиваются на кластеры определенного размера, которые могут быть разбросаны по всему разделу.
В результате таблица FAT представляет собой не список файлов и их местоположения, а список кластеров раздела и их содержимого, а в конце каждого описания содержится ссылка на следующий занимаемый файлом кластер.
Элементы таблицы FAT представляют собой 12-, 16- и 32-битовые шестнадцатеричные числа, размер которых определяется программой FDISK, а значение непосредственно создается программой FORMAT.
Все гибкие диски, а также жесткие диски размером до 16 Мбайт используют в FAT 12-битовые элементы. Жесткие и съемные диски, имеющие размер от 16 Мбайт и более, обычно используют 16-битовые элементы.
Файловая система FAT использовалась во всех версиях MS-DOS и в первых двух выпусках OS/2 (версии 1.0 и 1.1). Каждый логический том имел собственный FAT, который выполнял две функции: содержал информацию распределения для каждого файла в томе в форме списка связей модулей распределения (кластеров) и указывал, какие модули распределения свободны.
Когда таблица FAT была изобретена, это было превосходное решение для управления дисковым пространством, главным образом, потому что гибкие диски, на которых она использовалась, редко были размером более, чем несколько Mb.
Когда Windows NT впервые вышла в свет, в ней была предусмотрена поддержка трех файловых систем. Это таблица размещения файлов (FAT), обеспечивавшая совместимость с MS-DOS, файловая система повышенной производительности (HPFS), обеспечивавшая совместимость с LAN Manager, и новая файловая система, носившая название Файловой системы новых технологий (NTFS).