Студопедия
rus | ua | other

Home Random lecture






File sytem redirector.


Date: 2015-10-07; view: 410.


File systems

 

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

 

Данные могут храниться на носителях информации разной природы, таких как HDD, FDD, Flash. (расшифровать). Способ организации, хранения, именования данных на носителях информации называется файловой системой. Данные эти хранятся в именнованных блоках, называемыми файлами. Файловая система позволяет прикладным программам и пользователям обращаться к файлам, не задумываясь о том, как и где эти файлы расположены физически, на каком типе носителя. Достаточно знать имя файла и его логическое расположение, связь между именем файла и его физическим расположением выполняет ОС и драйвер файловой системы.

 

Далее речь пойдет о фаловых системах FAT(FAT12, FAT16 и FAT32) и NTFS. Для своей работы они разбивают носитель информации на логические единицы, называемые кластерами. Размер кластера выбирается при форматировании диска – процесса подготовки диска к работе с файловой системой. В каждом кластере не может храниться более одного файла. Если размер файла меньше размера кластера, то оставшаяся его(кластера) часть не используется. Если же файл не вмещается в кластер, то он разбивается на части. Понятно, что если взять размер кластера слишком большим (например 64КБ), то это приведет к нерациональному использованию места на диске. Если же взять размер слишком маленьким, то это может привести к медленной работе носителя. Дело в том, что кластеры для одного файла на жестком диске могут физически быть разбросаны по всей поверхности, и процесс собирания файла по кластерам займет время. Поэтому приходится идти на компромисс. Для файловой системы NTFS стандартом считается размера кластера в 4 КБ.

 

Для того, чтобы сопоставить имена файлов кластерам, в которых он хранится, на диске создаются специальные служебные структуры данных. В FAT они называются File Allocation Table, в NTFS – MFT (Main File Table). Было бы очень нерационально для каждого файла хранить еще и все кластеры, на которых он размещен. Поэтому в FAT кластеры организуются в цепочку: кластер помимо «полезных» данных содержит служебную информацию о следующем кластере, а в таблице файлов достаточно хранить адрес первого кластера. Последний кластер содержит специальную метку.

 

 

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

 

 

(Прим. SI- Standard Information. Некоторая служебная информация.

FN – File Name

SD – Security Descriptor

Рисунки взяты отсюда: http://education.aspu.ru/view.php?olif=gl7)

 

Физический носитель может разделяться на логические разделы, называемыми томами (volume). В ОС Windows том обозначается буквой латинского алфавита с двоеточием (напр. C: ).

 

NTFS (New Technology File System) – файловая система, разработанная Microsoft для линейки ОС Windows NT. Впервые NTFS v1.0 была представлена еще в 1993 для Windows NT 3.1 и с тех пор претерпела много изменений. Здесь будут рассмотрены возможности NTFS v3.1 для ОС Windows XP и выше.

NTFS хранит специальные служебные файлы, скрытые от пользователей, которые называютя метафайлами. Среди них, например, метафайл с именем $MFT, в котором хранится файловая таблица, упомянутая выше. $MFTMirr – файл, содержащий копию $MFT, $Volume – содержит информацию о томе, и др.

 

При появлении 64-битных ОС встала проблема сосуществования на одной машине 32 и 64 битных приложений. Проблема в том, что исполняемые файлы, скомпилированные для 32 битной платформы, могут использовать только 32-битные версии DLL файлов. То же верно и для 64-битных исполняемых файлов – они работают с 64-битными библиотеками. Часть библиотек разделяется между всеми приложениями, и хранятся они в папке %windir%\System32. Имена большинства библиотек не изменились при переходе к 64-битной ОС, и в одной папке не могут быть созданы два DLL файла с одинаковым именем. Поэтому для 32-битных приложений была создана отдельная папка System32, которая расположена по пути %WINDIR%\SysWOW64. Когда 32-битное приложение обращается к папке %windir%\System32, ОС перенаправляет вызов в папку %WINDIR%\SysWOW64. Перенаправление это прозрачно для приложения, то есть оно не «знает», что его перенаправили.

 

System32 не единственная папка, которая перенаправляется.

· Папка %ProgramFiles% (C:\Program Files) перенаправляется в папку %ProgramFiles(x86)% (C:\Program Files (x86)).

· Папка %CommonProgramFiles% (C:\Program Files\Common Files) перенаправляется в папку %CommonProgramFiles(x86)% (C:\Program Files (x86)\Common Files)

 

(Прим. http://msdn.microsoft.com/en-us/library/aa384187%28v=vs.85%29.aspx)

Материал для выполнения самостоятельной работы:

 

Основные возможности:

 

1) Журналирование. (Ntfs Log)

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

 

2) ACL

NTFS позволяет задать для каждого файла (включая папки) списки контроля доступа. (Discretionary Access Control List). Этот список определяет, каким пользователям/группам можно выполнять определенные операции с файлом (чтение, запись и т.п.), а каким нет. Иными словами, для каждого объекта (файла) задаются разрешения (permissions).

Разрешения разделяются на explicit (заданные явно) и inherited (унаследованные).

Explicit – это те разрешения, которые устанавливаются в результате действий пользователя и при создании объекта (файла) по умолчанию

Inhereted – это те разрешения, которые наследуются от родительского объекта (т.е. родительской папки)

В случае конфликта приоритет имеют explicit разрешения.

(Прим. http://technet.microsoft.com/en-us/library/cc783530%28WS.10%29.aspx)

 

3) Жесткие ссылки, символьные ссылки, junctions

Жесткие ссылки (Hard link) позволяют задать для файла еще одно имя. То есть у файла может быть несколько имен по разным логическим путям, но все эти имена будут указыать на одно и то же содержимое.

 

Особенности:

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

- Все жесткие ссылки равнозначны.

- Файл не будет удален, пока не будут удалены все жесткие ссылки на него.

(Прим. http://msdn.microsoft.com/en-us/windows/desktop/aa365006(v=vs.85).aspx)

 

Символьные ссылки (Symbolic link, Soft link)

В отличие от жестких ссылок, символьные ссылки ссылаются на имя (полный или отностиельный путь ) файла. В этом плане они сходны с ярлыками. Но ярлык – это просто файл с расширением lnk, а символьная ссылка, в отличии от ярлыка, работает прозрачно для пользователя и прикладных программ, то есть с ней можно работать как с обычным файлом.

 

Особенности:

- Символьные ссылки могут быть как на файлы так и на папки

- Могут ссылаться на сетевую папку или папку на другом локальном диске

http://msdn.microsoft.com/en-us/windows/desktop/aa363878(v=vs.85)

 

Точки соединения (Junctions) похожи на символьные ссылки на папки. Они ссылаются на другие папки и работают прозрачно для пользователей и приложений.

Особенности:

- Могут ссылать только на папки

- Могут ссылаться на папку на том же логическом диске, на другом логическом диске и на корень локальных дисков. Не могут ссылаться на сетевые папки.

 

Альтернативные потоки данных (ADS)

4) Сжатие файлов

5) Теневое копирование

6) Квоты

7) Шифрование EFS

 


<== previous lecture | next lecture ==>
OS overview | Registry
lektsiopedia.org - 2013 год. | Page generation: 0.044 s.