Внутренняя структура файловой системы Unix.

Раздел диска, в котором создана файловая система, разбит на три части.

СУПЕРБЛОК. Занимает 1 Kb. Содержит служебную информацию:

Тип файловой системы,

Размер

Начало списка свободных блоков.

Список свободных индексных дескрипторов (Инодов).

ОБЛАСТЬ INOD-ов. Занимает примерно 8% общего размера раздела. inode - Index-node - описатель файла. Он содержит всю информацию о файле, за исключением имени файла, и собственно данных файла. В inod'е хранится:

тип файла (файл, каталог, именованный канал, специальный файл)

идентификатор владельца файла

права (атрибуты) файла

время модификации/создания файла

адреса блоков, из которых состоит файл

ОБЛАСТЬ ДАННЫХ. В этой области расположены блоки с данными фай лов. Незанятые блоки провязаны в СПИСОК СВОБОДНЫХ БЛОКОВ

Файлы бывают двух основных типов. ФАЙЛ, КАТАЛОГ.

ФАЙЛ - он и есть файл.

КАТАЛОГ - файл фиксированного формата: состоит из строчек с именами файлов, входящих в каталог

имя_файла1 Номер_Инода1

имя_файла2 Номер_Инода2

. . .

Чтобы получить доступ к файлу по имени, операционная система

находит это имя в каталоге, содержащем файл,

берет Номер_Инода файла,

по номеру находит inod в области inod'ов,

из inod'а берет адреса блоков, в которых расположены данные файла,

по адресам блоков считывает блоки из области данных.

Любая ф/с - последовательность блоков с точки зрения unix нумерация от 0 и до ∞. Объём блока кратен степени 2 и равен приметно 512кб. Некоторые блоки зарезервированы под служебные цели.

Ф/с: s5

1-загрузочная область

2-суперблок

3-таблица индексных дескрипторов.(I-node table)

4-блоки данных (свободные блоки)

Загрузочная область – хранение загрузчика системы. Если есть несколько файловых систем, то используется загрузчик корневой ф/с.

Суперблок - содержит всю служебную информацию о ф/с - кол-во свободных и занятых блоков, кол-во индексных дескрипторов isize, размеры ф/с - fsize. Если инф. с этого блока утеряна то использование ф/с невозможно.

Таблица индексных дескрипторов - содержит в себе список индексных дескрипторов файлов. В индексном дескрипторе храниться вся полезная информация о файле, дата создания, владелец и какие блоки заняты под файл. Но не храниться имя файла.

Блоки данных храниться вся полезная инф. Занят или своб.

Индексные дескрипторы файлов.

Каждому файлу соответствует только 1 индексный дескриптор.

Инд деск состоит из 64 байт.

Хранит инф. о том, когда файл был создан, дата послед доступа и модификаций. Код защиты файла (права доступа), идентификатор владельца. Идентификатор группы владельца, счётчик числа ссылок на файл. Тип файла. И указатели местоположения блока файлов на диске. Под эту инф. зарезервировано 13 элементов.

Первые 10 из них сод в себе непосредственно адреса блоков в кот расположены файлы.11 элемент указывает на блок в кот содержится инф. о следующих 256 элементах (блоках) если нехватает, то используется 12-й блок он указ на 256 эл. каждый из кот указ на след. По 256 адресов.

Организация каталогов.

Инф. о файле можно хранить в каталоге.

1-имя файла

2-расширение

3-атрибуты

4-N 1-ого блока.

5-размер

6-дата создания.

Linux,Unix запись таблицы кот может состоять из простенькой структуры

    1. I-node – номер индексного дескриптора.
    2. имя файла.

Счётчик кол-ва ссылок на файл. Файл физически не удаляется пока счётчик ссылок на него >0

Суперблок объявлен самым важным поэтому некоторые ф/с могут создавать резервные копии суперблоков и если кол-во блоков исп. ф/с меньше кол-ва блоков на диске то оставшееся место можно быть использовано под область свопинга.

35. Файловые системы FAT, NTFS. поддержка длинных имен + HPFS

Кратко о файловой системе FAT.

Файловая система FAT появилась на заре развития персональных компьютеров и первоначально предназначалась для хранения файлов на дискетах.

Информация хранится на дисках и дискетах порциями, в секторах размером 512 байт. Все пространство дискеты разделялось на области фиксированной длины, называемые кластерами. Кластер может содержать один или больше секторов.

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

Что же касается расположения кластеров файла на диске, то эта информация хранится в начальной области дискеты, называемой таблицей размещения файлов (File Allocation Table, FAT) .Для каждого кластера в таблице FAT есть своя индивидуальная ячейка, в которой хранится информация о том, как этот кластер используется. Таким образом, таблица размещения файлов - это массив, содержащий информацию о кластерах. Размер этого массива определяется общим количеством кластеров на диске.

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

При разработке формата таблицы FAT стояла задача экономии места, т.к. дискета имеет весьма небольшой объем (от 180 Кбайт до 2,44 Мбайт). Поэтому для хранения номеров кластера было отведено всего 12 двоичных разрядов. В результате таблицу FAT удалось упаковать так плотно, что она занимала всего один сектор дискеты.

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

Ограничения файловой системы FAT

Эти ограничения касаются, прежде всего, максимального размера диска FAT, а также максимального размера файла, расположенного на этом диске. Максимальный размер логического диска FAT-16 составляет 4 Гбайт, что очень мало по современным понятиям. Теоретически максимальный размер диска FAT-32 может составлять 8 Тбайт, что должно хватить для развертывания любых современных приложений. Это значение получается путем перемножения максимального количества кластеров (268 435 445) на максимальный размер кластера, допустимый в FAT-32 (32 Кбайт). Однако на практике ситуация выглядит немного по-другому. Из-за внутренних ограничений утилита ScanDisk в ОС Microsoft 95/98 не способна работать с дисками, превышающими по своему объему значение 127.53 Гбайт. Что же касается новых операционных систем Microsoft Windows 2000/XP, то они не способны создавать разделы FAT-32 с объемом, превышающим 32 Гбайт. Если Вам нужны разделы такого или большего объема, компания Microsoft предложит Вам использовать файловую систему NTFS. Другое существенное ограничение FAT-32 накладывается на размер файлов - он не может превышать 4 Гбайт. Это ограничение будет сказываться, например, при записи на диск видеофрагментов или при создании объемных файлов баз данных. В каталоге FAT-32 может хранить не более 65534 файлов.

Недостатки FAT

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

Файловая система NTFS

Современная файловая система NTFS, разработанная компанией Microsoft для своей операционной системы Microsoft Windows NT, лишена ограничений и недостатков FAT. В файловой системе NTFS все атрибуты файлов (имя, размер, расположение экстентов файла на диске и т.д.) хранятся в скрытом системном файле $MFT. На хранение информации о каждом файле (и каталоге) в $MFT отводится от одного до нескольких Кбайт. При большом количестве файлов, хранящихся на диске, объем файла $MFT может достигать десятков или даже сотен Мбайт. Файлы небольшого размера (порядка сотен байт) хранятся непосредственно в $MFT, что существенно ускоряет доступ к ним. Заметим, однако, что накладные расходы NTFS на хранение системной информации, хотя и превышают накладные расходы FAT, все же не очень велики по сравнению с объемом современных дисков. Из-за того, что файл $MFT обычно располагается ближе к середине диска, разрушение первых дорожек диска NTFS не приводит к таким фатальным последствиям, как разрушение начальных областей диска FAT. Файловая система NTFS обладает многочисленными возможностями, отсутствующими в FAT. Они позволяют добиться намного большей гибкости, надежности и защищенности по сравнению с FAT.

Ограничения NTFS

Несмотря на обилие возможностей, файловой системе NTFS также присущи некоторые ограничения. Впрочем, в большинстве случаев они не играют существенной роли. Максимальный размер логического диска NTFS составляет примерно 18 446 744 Тбайт, что, очевидно, достаточно для всех современных приложений, а также приложений, которые появятся в ближайшем будущем. Максимальный размер файла еще больше, так что это ограничение также несущественно. Количество файлов, хранящихся в одном каталоге NTFS, ничем не ограничено, так что здесь тоже есть преимущество перед FAT.

FAT - плюсы

• Для эффективной работы требуется немного оперативной памяти.

• Быстрая работа с малыми и средними каталогами.

• Диск совершает в среднем меньшее количество движений головок (в сравнении с NTFS).

• Эффективная работа на медленных дисках.

FAT - минусы:

• Катастрофическая потеря быстродействия с увеличением фрагментации, особенно для больших дисков (только FAT32).

• Сложности с произвольным доступом к большим (скажем, 10% и более от размера диска) файлам.

• Очень медленная работа с каталогами, содержащими большое количество файлов.

NTFS - плюсы:

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

• Сложность структуры каталогов и число файлов в одном каталоге также не чинит особых препятствий быстродействию.

• Быстрый доступ к произвольному фрагменту файла (например, редактирование больших .wav файлов).

• Очень быстрый доступ к маленьким файлам (несколько сотен байт) - весь файл находится в том же месте, где и системные данные (запись MFT).

NTFS - минусы:

• Существенные требования к памяти системы (64 Мбайт - абсолютный минимум, лучше - больше).

• Медленные диски и контроллеры без Bus Mastering сильно снижают быстродействие NTFS.

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

• Диск, долго работающий в заполненном на 80% - 90% состоянии, будет показывать крайне низкое быстродействие.

Наши рекомендации