Драйвер файловой системы это
Драйвер фильтра файловой системы — это дополнительный драйвер, который добавляет значение или изменяет поведение файловой системы. это компонент режима ядра, который запускается как часть руководства Windows.
Драйвер фильтра файловой системы может фильтровать операции ввода-вывода для одной или нескольких файловых систем или томов файловой системы. В зависимости от характера драйвера Фильтр может означать, что Журнал, наблюдать, изменитьили даже не допустить. К типичным приложениям для драйверов фильтров файловой системы относятся антивирусные программы, программы шифрования и иерархические системы управления хранилищами.
В Windows есть две модели фильтров файловой системы:
Модель минифильтра, в которой фильтр "минифильтра" использует предоставляемую системой Диспетчер фильтров (флтмгр), что упрощает разработку фильтров
Разработчики фильтров должны разрабатывать драйверы минифильтра файловой системы с помощью диспетчера фильтров вместо устаревших драйверов фильтров файловой системы. См. раздел рекомендации по переносу устаревших драйверов фильтров для переноса всех оставшихся устаревших фильтров в драйверы минифильтра.
Драйверы фильтра файловой системы не являются драйверами устройств
Драйвер устройства — это программный компонент, управляющий определенным устройством ввода-вывода оборудования. Например, драйвер хранилища DVD управляет DVD-дисководом.
Драйвер фильтра файловой системы , напротив, работает совместно с одной или несколькими файловыми системами для управления операциями файлового ввода-вывода. например:
Создание, открытие, закрытие и перечисление файлов и каталогов
Получение и установка сведений о файлах, каталогах и томах
Чтение и запись файловых данных
Кроме того, драйверы фильтров файловой системы должны поддерживать специальные функции файловой системы, такие как кэширование, блокировка, разреженные файлы, квоты на диск, сжатие, безопасность, восстанавливаемость, точки повторного анализа и точки подключения томов.
Дополнительные сведения о сходстве и различиях между драйверами фильтров файловой системы и драйверами устройств см. в следующих статьях:
Файл (англ. file – папка) – это именованная совокупность данных, размещенная на внешнем запоминающем устройстве и хранимая, пересылаемая и обрабатываемая как единое целое.
Файл может содержать программу, числовые данные, текст, закодированное изображение и др. Все программы и данные хранятся в долговременной (внешней) памяти ПК в виде файлов.
Виды файлов:
· собственно файл (файл текстового редактора Word, электронных таблиц Excel и др.),
· ярлык – ссылка на объект, чаще всего запускной файл; ярлыки принято создавать на рабочем столе Windows.
Файловая система – система организации хранения файлов на каком-либо электроном носителе.
На диске хранятся файлы и папки (каталоги). Каталог (папка или директория)– группа файлов и вложенных каталогов, имеющая имя.Каждый файл имеет имя, которое состоит из 2-ух частей: собственно имени и расширения, разделенных между собой точкой. Первую часть имени определяет пользователь, вторая часть имени (расширение или тип файла) определяется программой, в которой создается данный файл и указывает на тип хранящейся информации. Первая часть имени определяется по смыслу содержания файла и может быть написана на русском или английском языке, и содержит не более 255 символов. Вторая часть имени чаше всего содержит три символа на английском языке и создается автоматически. По значку, относящемуся к файлу, пользователь может легко определить тип файла.
Адрес, или путь доступа к файлу, состоит из имени диска и последовательности имен всех каталогов (папок) на пути к файлу.
G:\Задания\Lekzii\Т2_1Архитектура.doc – путь доступа к файлу, адрес.
Примеры расширений (типов) файлов основных офисных приложений:
.doc – файлы, созданные в текстовом редакторе Word (англ. «слово»);
.xls – файлы, созданные в электронных таблицах Excel;
.ppt – файлы-презентации, созданные в пакете презентационной графики Power Point;
.mdb – файлы, созданные в базах данных Access.
Основные типы файлов и расширений
Для групповых операций с файлами используются маски имен файлов. Маска файла – характеристика имени файла (или его часть) в общем виде. В записи маски могут использоваться буквы, цифры и прочие допустимые в именах символы, а так же могут встречаться символы:
Ø символ «?» (вопросительный знак), который заменяет один произвольный (неизвестный) символ;
Ø символ «*» (звездочка) – заменяет неизвестное количество неизвестных символов, т.е. любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.
Например:
*.doc – маска файлов, созданные в текстовом редакторе Word, т.е. все Word-файлы;
?k*.ppt – маска файлов-презентаций, в именах которых на 2-ом месте находится символ «k».
Файлы физически реализуются как участки памяти на внешних электронных носителях. Каждый файл занимает некоторое количество блоков дисковой памяти. Обслуживает файлы специальный модуль ОС, называемый драйвером файловой системы. Драйвер файловой системы:
Ø обеспечивает доступ к информации, записанной на диск, по имени файла и распределяет пространство на диске;
Ø хранит на диске информацию пользователях и служебную.
В служебных областях диска хранится список всех файлов и каталогов, а также дополнительные справочные таблицы, служащие для повышения скорости работы драйвера файловой системы.
Файл(англ. file —папка) — это именованная совокупность любых данных, размещенная на внешнем запоминающем устройстве и хранимая, пересылаемая и обрабатываемая как единое целое. Файл может содержать программу, числовые данные, текст, закодированное изображение и др.
Файловая система — это средство для организации хранения файлов на каком-либо носителе.
Файловая система определяет общую структуру именования, хранения и организации файлов в операционной системе.
Функции файловой системы:
- Сохранение информации на внешних носителях
- Чтение информации из файлов
- Удаление файлов, каталогов
- Переименование файлов
- Копирование файлов и др.
Файлы физически реализуются как участки памяти на внешних носителях — магнитных дисках или CD-ROM. Каждый файл занимает некоторое количество блоков дисковой памяти. Обычная длина блока — 512 байт.
Каталог (англ. directory — справочник, указатель) —объект в файловой системе, упрощающий организацию файлов. Каталог — поименованная совокупность байтов на носителе информации, содержащая название подкаталогов и файлов.
Типичная файловая система содержит большое количество файлов, и каталоги помогают упорядочить её путём их группировки.
Каталог может иметь собственное имя и храниться в другом каталоге наряду с обычными файлами: так образуются иерархические файловые структуры. Пример такой структуры — на рис.6.
Рис. 7. Дерево каталогов на диске
Что происходит, когда пользователь подает операционной системе команду "открыть файл . ", в которой указано имя файла и имя каталога, в котором размещён этот файл?
Для выполнения этой команды драйвер файловой системы обращется к своему справочнику, выясняет, какие блоки диска соответствуют указанному файлу, а затем передает запрос на считывание этих блоков драйверу диска.
При выполнении команды "сохранить файл" драйвер файловой системы ищет на диске незанятые блоки, отмечает их, как распределённые для вновь созданного файла, и передаёт драйверу диска запрос на запись в эти блоки данных пользователя.
Драйвер файловой системы обеспечивает доступ к информации, записанной на магнитный диск, по имени файла и распределяет пространство на магнитном диске между файлами.
Для выполнения этих функций драйвер файловой системы хранит на диске не только информацию пользователя, но и свою собственную служебную информацию. Вслужебных областях дискахранится список всех файлов и каталогов, а также различные дополнительные справочные таблицы, служащие для повышения скорости работы драйвера файловой системы.
К файловой системе имеет доступ также и любая прикладная программа, для чего во всех языках программирования имеются специальные процедуры.
Понятие файла может быть обращено на любой источник или потребитель информации в машине, например, в качестве файла для программы могут выступать принтер, дисплей, клавиатура и др.
Структура файловой системы и структура хранения данных на внешних магнитных носителях определяет удобство работы пользователя, скорость доступа к файлам и т.д.
Одной из компонент ОС является файловая система – основное хранилище системной и пользовательской информации. Все современные ОС работают с одной или несколькими файловыми системами, например, FAT (File Allocation Table), NTFS (NT File System), HPFS (High Performance File System), NFS (Network File System), AFS (Andrew File System), Internet File System.
Файловая система – это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися во внешней памяти, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие "файловая система" включает:
- совокупность всех файлов на диске;
- наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;
- комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Файловая система используется обычно как при загрузке ОС после включения компьютера, так и в процессе работы. Файловая система выполняет следующие основные функции:
- определяет возможные способы организации файлов и файловой структуры на носителе;
- реализует методы доступа к содержимому файлов и предоставляет средства работы с файлами и файловой структурой. При этом доступ к данным может быть организован файловой системой как по именам, так и по адресам (номер сектора, поверхности и дорожки носителя);
- отслеживает свободное пространство на носителе.
Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жестком диске или блоке флэш-памяти) он записан. Все, что знает программа – это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
С точки зрения операционной системы, весь диск представляет собой набор кластеров (участков памяти) размером от 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные. Чтобы ясно представлять, как же хранятся данные на дисках, и как ОС обеспечивает доступ к ним необходимо представлять, хотя бы в общем виде логическую структуру диска.
3.1.5 Логическая структура диска
Для того чтобы компьютер мог хранить, читать и записывать информацию жесткий диск предварительно должен быть размечен. На нем с помощью соответствующих программ создаются разделы – это и называется "разбить жесткий диск". Без этой разметки на жесткий диск не удастся установить операционную систему (хотя Windows XP и 2000 могут устанавливаться на неразбитый диск, но они такую разметку проводят сами в процессе установки).
Жесткий диск можно разбить на несколько разделов, каждый из которых будет использоваться автономно. Для чего это надо? Один диск может содержать несколько различных операционных систем, расположенных в разных разделах. Внутренняя структура раздела, выделенного какой-либо ОС, полностью определяется этой операционной системой.
Кроме того, существуют и другие причины разбиения диска на разделы, например:
- возможность использования под управлением MS DOS дисков с емкостью большей, чем
32 Мб;
- в случае повреждения диска, пропадает только та информация, которая находилась на этом диске;
- реорганизация и выгрузка диска маленького размера проще и быстрее, чем большого;
- каждому пользователю можно выделить свой логический диск.
Операция подготовки диска к работе называется форматированием, или инициализацией. Всё доступное дисковое пространства разбивается на стороны, дорожки и сектора, причем дорожки и стороны нумеруются с нуля, а сектора – с единицы. Совокупность дорожек, находящихся на одинаковом удалении от оси диска или пакета дисков, называется цилиндром. Таким образом физический адрес сектора определяется следующими координатами: номер дорожки (цилиндра – С), номер стороны диска (головки – H), номера сектора – R, т.е. CHR.
В самом первом секторе жесткого диска (C=0, H=0, R=1) содержится главная загрузочная запись –Master Boot Record. Эта запись занимает не весь сектор, а только его начальную часть. Главная загрузочная запись является программой – внесистемным загрузчиком.
В конце первого сектора жесткого диска располагается таблица разделов диска – Partition Table. Эта таблица содержит четыре строки, описывающих максимально четыре раздела. Каждая строка в таблице описывает один раздел:
1) активный раздел или нет;
2) номер сектора, соответствующего началу раздела;
3) номер сектора, соответствующего концу раздела;
4) размер раздела в секторах;
5) код операционной системы, т.е. какой ОС принадлежит данный раздел.
Раздел называется активным, если он содержит программу загрузки операционной системы. Первым байтом в элементе раздела идет флаг активности раздела (0 – не активен, 128 (80H) – активен). Он служит для определения, является ли раздел системным (загрузочным), и для необходимости производить загрузку операционной системы с него при старте компьютера. Активным может быть только один раздел. Небольшие программы, называемые менеджерами загрузки (Boot Manager), могут располагаться в первых секторах диска. Они интерактивно запрашивают пользователя, с какого раздела производить загрузку и соответственно корректируют флаги активности разделов. Поскольку в Partition Table четыре строки, то на диске может быть до четырех различных ОС, следовательно, диск может содержать несколько первичных разделов, принадлежащих разным операционным системам.
Пример логической структуры жесткого диска, состоящего из трех разделов, два из которых принадлежат DOS, а один принадлежит UNIX, приведен на рисунке 3.2а.
Каждый активный раздел имеет свою загрузочную запись – программу, которая осуществляет загрузку данной ОС.
На практике диск разбивается чаще всего на два раздела. Размеры разделов, объявление их активными или нет, устанавливаются пользователем в процессе подготовки жесткого диска к работе. Делается это с помощью специальных программ. В DOS эта программа называется FDISK, в версиях Windows-XX – Diskadministrator.
В DOS первичный раздел – Primary Partition, это тот раздел, который содержит загрузчик операционной системы и саму ОС. Таким образом, первичный раздел является активным разделом, используется как логический диск с именем C:.
Операционная система WINDOWS (а именно WINDOWS 2000) изменила терминологию: активный раздел называется системным, а загрузочным называется логический диск, который содержит системные файлы WINDOWS. Загрузочный логический диск может совпадать с системным разделом, но может находиться в другом разделе того же жесткого диска или на другом жестком диске.
Расширенный раздел Extended Partition может разбиваться на несколько логических дисков с именами от D: до Z:.
На рисунке 3.2б представлена логическая структура жесткого диска, в котором всего два раздела и четыре логических диска.
| |
а | б |
Рисунок 3.2 – Логическая структура диска: а – с тремя разделами; б – с двумя разделами и четырьмя логическими дисками |
3.1.6 Файловая структура диска
Рассмотрим подробнее файловую структуру логического диска, созданного в расширенном разделе на жестком диске. В начале логического диска располагается сектор, в котором находится загрузочная запись, а в конце сектора – таблица логических дисков. Фактически эта таблица является расширением Partition Table, имеет тот же формат, но содержит всего две строки, два элемента. Первый элемент указывает на первый сектор первого логического диска, второй указывает на следующую таблицу логических дисков. В таблице логических дисков последнего логического диска, устанавливается код, означающий окончание списка.
Диски одного компьютера могут хранить огромное количество файлов, и для обеспечения возможности обращения к ним пришлось бы вести и составлять громоздкие каталоги, в которых бы для каждого файла были указаны занимаемые им сектора. Однако операционная система освобождает пользователя от необходимости вести эти каталоги и делает это сама, автоматически.
С этой целью
(рис.1) |
1) стартовый сектор;
2) таблица размещения файлов FAT- File Allocation Table;
3) корневой каталог – Root Directory;
4) пространство данных.
Размер этих областей зависит от размера логического диска, но общая структура и порядок расположения не меняется.
Стартовый сектор (загрузочная записьBoot Record)
Это своего рода визитная карточка любого диска. Он содержит необходимые ОС сведения для работы с диском. Под него выделяется первый сектор диска на дорожке 00 поверхности 0. Этот сектор содержит короткую программу блока начальной загрузки ОС, независимо от того системный диск или нет. Кроме того в загрузочной записи находятся параметры, описывающие характеристики логического диска:
· размер секторов диска в байтах;
· количество копий FAT (обычно 2);
· количество элементов в корневом каталоге;
· количество секторов на диске;
· указатель типа магнитного носителя информации;
· количество секторов, занимаемых FAT;
· количество секторов на дорожку;
· размер кластера и т.д.
Конец загрузочной записи заканчивается двухбайтовой подписью 55АА.
Таблица размещения файлов FAT
Таблица размещения файлов является важнейшей файловой структурой диска. В процессе работы содержимое области данных постоянно меняется: добавляются новые файлы, изменяется их содержимое, файлы удаляются, перемещаются и т.п. Выполнение этих операций требует наличия специального механизма, позволяющего распределять дисковое пространство между файлами и обеспечивать доступ к ним. Таким механизмом распределения дискового пространства и доступа к файлам и является таблица размещения файлов.
По содержимому FAT можно определить физическое расположение на диске всех файлов и каталогов. ОС разбивает всю область диска на участки одинакового размера, называемые кластерами. Размер кластера зависит от емкости диска, но всегда кратен размеру сектора. Несмотря на то, что минимальной порцией информации, передаваемой контроллером диска в процессе записи или чтения файла, является сектор, ОС выделяет место на диске целыми кластерами, если кластер больше сектора, то он занимает последовательные сектора.
Файл на диске, как правило, не занимает последовательную цепочку кластеров. Если дисковое пространство позволяет, то файл записывается в смежные кластеры, если нет – то в разные. В первом случае файл называется непрерывным, в последнем случае – фрагментированным. Если размер файла не кратен размеру кластера, то последний кластер лишь частично заполняется данными. Минимальный размер файла, даже если данные его занимают один байт, составляет целый кластер.
Для того чтобы определить физическое расположение файлов на диске, следует указать все входящие в него кластеры, причем в том порядке, в котором записывалась в кластеры содержимое файла.
FAT представляет собой таблицу, в которой число элементов, совпадает с числом кластеров на диске. Если на диске какой-то кластер свободен, то в FAT соответствующий ему элемент содержит код 000. Если файл на диске занимает несколько кластеров, то с помощью FAT эти кластеры связываются в цепочку. Например, файлу выделены кластеры №7, №8, №10, №14, №17, №11, №12. Элемент FAT №7 хранит номер следующего кластера, выделенного файлу, т.е. №8. Элемент №8 хранит 10 и т.д., пока не будет достигнут последний кластер, выделенный файлу. В этом последнем кластере записан специальный код FFF – признак конца файла.
FFF | FF7 |
FF7 |
Рисунок 3.3 – Фрагмент таблицы размещения файлов
Запись в каталоге, соответствующая данному файлу, содержит номер первого кластера (точка входа), выделенного файлу, в нашем примере это №7.
Кластеры, приходящиеся на испорченные участки диска, помечаются в FAT специальным кодом FF7 и исключаются из свободной области. Когда файл удаляют, то все записи в FAT, соответствующие его цепочки кластеров маркируются как свободные, однако данные файла из кластеров не удаляются до тех пор, пока в эти кластеры не будут записаны новые данные.
Операционная система MS DOS поддерживает 16-битовый формат FAT, а ОС Windows – 32-битовый. Это означает, что для записи адреса элемента таблицы необходимо 16 или 32 бита, соответственно. Отсюда следует, что при 16-битовом формате можно пронумеровать 2 16 =65536 кластеров. В связи с этим ограничением операционные системы не позволяют работать с жесткими дисками размером более 2 Гбайт.
Таблица 3.1 иллюстрирует, какой максимальный размер дискового пространства может обслуживать FAT16 и FAT32.
Таблица 3.1 – Максимальный объём памяти диска при использовании FAT16 и FAT32
Размер диска | Размер кластера для 16-битовой FAT | Размер кластера для 32-битовой FAT |
256-511 Мб | 8 Кб | Не поддерживается |
512-1024 Мб | 16 Кб | 4 Кб |
1024 Мб-2Гб | 32 Кб | 4 Кб |
2 Гб-8 Гб | Не поддерживается | 4 Кб |
8 Гб-16 Гб | 8 Кб | |
16 Гб-32 Гб | 16 Кб | |
Более 32 Гб | 32 Кб |
К очень негативным явлениям относится фрагментация файлов. По мере удаления старой информации в пространстве данных будут появляться кластеры, помеченные в FAT, как свободные. Вновь образованные файлы заполняют эти кластеры, что приводит к их фрагментации. Чем сильнее фрагментирован файл, тем больше времени уходит на его чтение или запись. Поскольку каждый файл, независимо от своего размера занимает целое число кластеров на диске, и целое число записей в FAT, то последний кластер используется не полностью. Недоступная часть кластера, недоступна и для других кластеров. Чем больше размер кластера, тем больше напрасный расход места на диске.
Более совершенная файловая система – FAT32 с 32-разрядными полями в таблицах размещения файлов, например, в ОС Windows 98/2000, позволяет уменьшать размер кластеров, что сокращает потери дисковой памяти и позволяет работать с жесткими дисками любого объёма. Ряд файловых систем, например, HPFS, WinFAT, сетевая Novell Netware, имеют механизмы дописывания остатков блоков различных файлов в частично заполненные кластеры. Этим обеспечивается более рациональное использование пространства внешней памяти.
В организации FAT могут возникать определенные дефекты. Ряд утилит позволяет диагностировать как логические ошибки в файловой системе, так и физические дефекты на поверхности диска.
В этом разделе WDK приводятся рекомендации по проектированию, связанные с файловыми системами и драйверами фильтров. См. справочные материалы по программированию для справочных страниц.
Файловые системы
файловые системы в Windows реализуются как драйверы файловой системы, работающие над системой хранения данных.
каждая предоставляемая системой файловая система в Windows разработана для обеспечения надежного хранения данных с различными функциями в соответствии с требованиями пользователя. к стандартным файловым системам, доступным в Windows, относятся NTFS, ExFAT, UDF и FAT32. Сравнение функций для каждой из этих файловых систем показано в этой функции. кроме того, отказоустойчивая файловая система (ReFS), доступная в Windows Server 2012 и более поздних версиях, предлагает масштабируемую поддержку больших томов и возможность обнаруживать и исправлять повреждение данных на диске.
Разработка нового драйвера файловой системы практически всегда не требуется, а требования и спецификации новых драйверов файловой системы не являются прогнозируемыми. Для этого руководство по проектированию не охватывает разработку файловой системы. если вам нужно разработать новый драйвер файловой системы, помимо тех, которые доступны в Windows, пример кода доступен в виде модели (см. ниже).
Драйверы фильтра файловой системы
Драйвер фильтра файловой системы (минифильтра) перехватывает запросы, нацеленные на файловую систему или на другой драйвер фильтра файловой системы. Перехватывая запрос до достижения предполагаемой цели, минифильтр может расширить или заменить функциональные возможности, предоставляемые исходной целью запроса. Ниже приведены примеры драйверов фильтров.
- Антивирусные фильтры
- Агенты резервного копирования
- Продукты для шифрования
Фильтры для разработчиков драйверов используют Диспетчер фильтров, предоставляемый системой, который предоставляет платформу для разработки драйверов фильтров без необходимости управлять всеми сложностями файлового ввода-вывода. Диспетчер фильтров упрощает разработку драйверов фильтров сторонних производителей и решает многие проблемы с моделью устаревшего драйвера фильтрации, например возможность управлять порядком загрузки с помощью назначенной высоты.
Файловая система и фильтрация образца кода
доступно несколько примеров драйверов Windows, включая примеры разработки файловой системы и драйверов фильтров файловой системы. полный список см. в разделе примеры драйверов Windows .
Сертификация драйвера фильтра файловой системы
сведения о сертификации для файловых систем и драйверов фильтров файловой системы находятся в комплекте Windows Hardware Lab Kit (хлк). Тесты для файловых систем и драйверов фильтров файловой системы находятся в категории Filter. Driver ХКК.
Дополнительные ресурсы
Вместе с этой документацией и примером кода, упомянутого выше, OSR предлагает разнообразные ресурсы для разработки фильтров файловой системы, включая семинары и форумы сообщества, такие как форум нтфдс.
Читайте также: