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

Автор: Пользователь скрыл имя, 07 Ноября 2011 в 14:17, реферат

Описание работы

В данной работе представлен обзорный материал о файловых системах семейства операционных систем Windows NT. Но для начала нужно определиться, что же есть файловая система, и представить общую структуру операционных систем семейства Windows NT.
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.

Содержание

Введение…………………………………………………………………………..4
Файловая система NTFS…………………………………………………………7
MFT и его структура………………………………………………………8
Метафайлы…………………………………………………………………9
Файлы и потоки…………………………………………………………..10
Журналирование…………………………………………………………11
Сжатие…………………………………………………………………….11
Безопасность……………………………………………………………...12
Hard Links…………………………………………………………………13
Symbolic Links (NT5)…………………………………………………….13
Шифрование (NT5)………………………………………………………13
Каталоги…………………………………………………………………..13
Файловая система FAT-12/16/32/VFAT………………………………………..16
Структура…………………………………………………………………16
Загрузочные секторы главного и дополнительного разделов……16
Загрузочный сектор логического диска……………………………17
Корневой каталог…………………………………………………….18
Таблица размещения файлов………………………………………..18
Область данных………………………………………………………19
3.2. Ошибки файловой системы FAT………………………………………..19
3.2.1. Потерянные кластеры………………………………………………..19
3.2.2. Пересекающиеся файлы……………………………………………..20
3.2.3. Неверный файл или каталог………………………………………….20
3.3. VFAT……………………………………………………………………...20
Файловая система DFS………………………………………………………….21
4.1. Технический обзор распределенной файловой системы……………..21
4.1.1. Корень DFS…………………………………………………………...21
4.1.2. Хост тома DFS………………………………………………………..22
4.1.3. Таблица Partition Knowledge Table………………………………….24
4.1.4. Безопасность………………………………………………………….26
Заключение………………………………………………………………………27
Список литературы……………………………………………………………...30

Работа содержит 1 файл

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

— 646.00 Кб (Скачать)

     Рис 3. Таблица метафайлов

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

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

     2.3. Файлы и потоки

     Итак, у системы есть файлы - и ничего кроме файлов. Что включает в себя это понятие на NTFS?

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

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

     Довольно  интересно обстоит дело и с  данными файла. Каждый файл на NTFS, в  общем-то, имеет несколько абстрактное  строение - у него нет как таковых данных, а есть потоки (streams). Один из потоков и носит привычный нам смысл - данные файла. Но большинство атрибутов файла - тоже потоки. Таким образом, получается, что базовая сущность у файла только одна - номер в MFT, а всё остальное опционально. Данная абстракция может использоваться для создания довольно удобных вещей - например, файлу можно "прилепить" еще один поток, записав в него любые данные - например, информацию об авторе и содержании файла, как это сделано в Windows 2000 (самая правая закладка в свойствах файла, просматриваемых из проводника). Интересно, что эти дополнительные потоки не видны стандартными средствами: наблюдаемый размер файла - это лишь размер основного потока, который содержит традиционные данные. Можно, к примеру, иметь файл нулевой длинны, при стирании которого освободится 1 Гбайт свободного места - просто потому, что какая-нибудь хитрая программа или технология "прилепила" в нему дополнительный поток (альтернативные данные) гигабайтового размера. Но на самом деле в текущий момент потоки практически не используются, так что опасаться подобных ситуаций не следует, хотя гипотетически они возможны. Просто нужно иметь в виду, что файл на NTFS - это более глубокое и глобальное понятие, чем можно себе вообразить просто просматривая каталоги диска. Ну и напоследок: имя файла может содержать любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode - 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла - 255 символов.

     2.4. Журналирование

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

     2.5. Сжатие

     Файлы NTFS имеют один довольно полезный атрибут - "сжатый". Дело в том, что NTFS имеет встроенную поддержку сжатия. Любой файл или каталог в индивидуальном порядке может хранится на диске в сжатом виде - этот процесс совершенно прозрачен для приложений. Сжатие файлов имеет очень высокую скорость и только одно большое отрицательное свойство - огромная виртуальная фрагментация сжатых файлов, которая, правда, никому особо не мешает. Сжатие осуществляется блоками по 16 кластеров и использует так называемые "виртуальные кластеры" - опять же предельно гибкое решение, позволяющее добиться интересных эффектов - например, половина файла может быть сжата, а половина - нет. Это достигается благодаря тому, что хранение информации о компрессированности определенных фрагментов очень похоже на обычную фрагментацию файлов.

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

     2.6. Безопасность

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

     Права файловой системы NTFS неразрывно связаны с самой системой - то есть они, вообще говоря, необязательны к соблюдению другой системой, если ей дать физический доступ к диску. Для предотвращения физического доступа в Windows 2000 (NT5) всё же ввели стандартную возможность - об этом см. ниже. Система прав в своем текущем состоянии достаточно сложна и требует особого подробного рассмотрения.  
 

     2.7. Hard Links

     Это решение было в NTFS с незапамятных времен, но использовалось очень редко - и тем не менее: Hard Link - это когда один и тот же файл имеет два имени (несколько указателей файла-каталога или разных каталогов указывают на одну и ту же MFT запись). Допустим, один и тот же файл имеет имена 1.txt и 2.txt: если пользователь сотрет файл 1, останется файл 2. Если сотрет 2 - останется файл 1, то есть оба имени, с момента создания, совершенно равноправны. Файл физически стирается лишь тогда, когда будет удалено его последнее имя.

     2.8. Symbolic Links (NT5)

     Гораздо более практичная возможность, позволяющая  делать виртуальные каталоги - ровно  так же, как и виртуальные диски командой subst в DOSе. Применения достаточно разнообразны: во-первых, упрощение системы каталогов. Если вам не нравится каталог Documents and settings\\Administrator\\Documents, вы можете прилинковать его в корневой каталог - система будет по прежнему общаться с каталогом с дремучим путем, а вы - с гораздо более коротким именем, полностью ему эквивалентным. Для создания таких связей можно воспользоваться программой Junction, которую написал известный специалист Mark Russinovich (http://www.sysinternals.com/). Программа работает только в NT5, как и сама возможность.

     Для удаления связи можно воспользоваться  стандартной командой rd.

     2.9. Шифрование (NT5)

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

     2.10. Каталоги

     Каталог на NTFS представляет собой специфический  файл, хранящий ссылки на другие файлы  и каталоги, создавая иерархическое  строение данных на диске. Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который в свою очередь предоставляет полную информацию об элементе каталога. Внутренняя структура каталога представляет собой бинарное дерево. Вот что это означает: для поиска файла с данным именем в линейном каталоге, таком, например, как у FAT-а, операционной системе приходится просматривать все элементы каталога, до тех пор пока она не найдет необходимый. Бинарное же дерево располагает имена файлов таким образом, чтобы поиск файла осуществлялся наиболее быстрым способом - с помощью получения двухзначных ответов на запросы о расположении файла. Запрос, на который бинарное дерево способно дать ответ, таков: в какой группе, относительно данного элемента, находится искомое имя - выше или ниже? Начинается такой запрос с центрального элемента списка, и каждый ответ сокращает область поиска в среднем в два раза. Файлы, скажем, просто отсортированы по алфавиту, и ответ на запрос осуществляется элементарным способом - сравнением начальных букв. Область поиска, суженная в два раза, исследуется аналогичным образом, начиная опять же с центрального элемента. 

     

Рис 4. Поиск  файла

     Вывод - для поиска одного файла среди 1000, например, FAT придется осуществить в  среднем 500 сравнений (наиболее вероятно, что файл будет найден посередине выполнения поиска), а системе на основе дерева - всего около 12-ти (2^10 = 1024). Экономия времени поиска налицо. Не стоит, однако думать, что в традиционных системах (FAT) всё так запущено: во-первых, поддержание списка файлов в виде бинарного дерева довольно трудоёмкая операция, а во-вторых - даже FAT в исполнении современной системы (например, Windows 2000, Windows XP) использует сходную оптимизацию поиска. Хочется также развеять распространенное заблуждение о том, что добавлять файл в каталог в виде дерева сложнее, чем в линейный каталог: это примерно одинаковые по времени операции. Дело в том, что для добавления файла в каталог, необходимо сначала убедится, что файла с таким именем в этом каталоге еще нет - и вот тут-то в линейной системе возникают трудности с поиском файла, описанные выше, которые с лихвой компенсируют саму простоту добавления файла в каталог.

     Какую информацию можно получить, просто прочитав файл каталога? Ровно то же, что выдает команда dir. Для выполнения простейшей навигации по диску не нужно обращаться в MFT за каждым файлом, надо лишь считывать самую общую информацию о файлах из файлов каталогов. Главный каталог диска - корневой - ничем не отличается от обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT.

 

Файловая  система FAT-12/16/32/VFAT 

     Множество существующих на сегодняшний день файловых систем построены на основе таблицы размещения файлов (File Allocation Table - FAT), которая содержит дорожки данных в каждом кластере на диске. Существует несколько типов файловой системы FAT - FAT 12, FAT 16 и FAT 32. Они отличаются количеством цифр, используемых в таблице размещения файлов. 

     Другими словами, в FAT 32 используется 32-разрядное  число для хранения дорожки данных в каждом кластере, в FAT 16 - 16-разрядное  число и т.д.

     Файловые  системы FAT 12 и FAT 16 изначально применяются  в DOS и Windows и поддерживаются практически всеми известными на сегодняшний день операционными системами. Файловая система FAT 32 поддерживается операционной системой Windows 95 и более поздними версиями.

     3.1. Структура

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

  • загрузочные секторы главного и дополнительного разделов;
  • загрузочный сектор логического диска;
  • таблицы размещения файлов (FAT);
  • корневой каталог;
  • область данных;
  • цилиндр для выполнения диагностических операций чтения/записи.

     3.1.1. Загрузочные секторы главного и дополнительного разделов

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

     Загрузочный сектор главного раздела (или главная загрузочная запись (Master Boot Record - MBR)) является первым сектором на жестком диске и состоит из двух элементов.

  • Таблица главного раздела содержит список разделов на диске и расположение загрузочных секторов соответствующих логических дисков. Эта таблица очень маленькая и может содержать максимум четыре записи. Таким образом, для получения большего количества разделов в операционной системе можно создать один дополнительный раздел и поместить в него несколько логических дисков.
  • Главный загрузочный код. Небольшая программа, которая выполняется системой BIOS. Основная функция этого кода - передача управления в раздел, который обозначен как активный (или загрузочный).    

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

  Загрузочный сектор - это первый сектор на любом логическом диске. Например, на дискете или на диске Zip это самый первый физический сектор, так как дискету нельзя разбить на разделы и она имеет только один логический диск. На жестком диске загрузочный сектор (секторы) располагается в начале каждого раздела, не являющегося дополнительным, или в начале любой области диска, распознаваемой как логический диск. Эти секторы немного похожи на загрузочные секторы разделов, так как содержат таблицы со специальной информацией о логическом диске.

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

Информация о работе Файловые системы Windows NT