Файловая система для операционной системы Windows
ФЕДЕРАЛЬНОЕ
АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО
ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ЭКОНОМИКИ И
ФИНАНСОВ»
КАФЕДРА ИНФОРМАТИКИ
Доклад
на тему:
«Файловая
система для операционной системы Windows
»
Выполнила
Аристархова Светлана
Студентка группы № 246
Санкт-Петербург
2010
Фа́йловая
систе́ма (англ.
file system) — регламент, определяющий способ организации, хранения и
именования данных на носителях
информации. Она определяет формат
физического хранения информации, которую принято группировать в виде файлов. Конкретная
файловая система определяет размер имени файла (папки), максимальный возможный
размер файла и раздела, набор атрибутов файла. Некоторые файловые системы
предоставляют сервисные возможности, например, разграничение доступа или шифрование
файлов.
Файловая
система связывает носитель
информации с одной стороны и API для доступа к файлам — с другой. Когда
прикладная программа обращается к файлу, она не имеет никакого представления о
том, каким образом расположена информация в конкретном файле, так же, как и на
каком физическом типе носителя (CD,
жёстком
диске, магнитной ленте или блоке флеш-памяти)
он записан. Всё, что знает программа — это имя файла, его размер и атрибуты.
Эти данные она получает от драйвера
файловой системы. Именно файловая система устанавливает, где и как будет
записан файл на физическом носителе (например, жёстком диске).
С точки
зрения операционной системы, весь диск представляет из себя набор кластеров размером от 512 байт и выше. Драйверы
файловой системы организуют кластеры в файлы и каталоги (реально являющиеся
файлами, содержащими список файлов в этом каталоге). Эти же драйверы
отслеживают, какие из кластеров в настоящее время используются, какие свободны,
какие помечены как неисправные.
Однако
файловая система не обязательно напрямую связана с физическим носителем
информации. Существуют виртуальные файловые системы,
а также сетевые
файловые системы, которые являются лишь способом доступа к файлам, находящимся
на удалённом компьютере.
Классификация файловых систем
По предназначению
файловые системы можно классифицировать на следующие категории:
·
Для
носителей с произвольным
доступом (например, жёсткий
диск): FAT32, HPFS, ext2 и др. Поскольку доступ
к дискам в разы медленнее, чем доступ к оперативной памяти, для прироста
производительности во многих файловых системах применяется асинхронная запись
изменений на диск. Для этого применяется либо журналирование, например в ext3, ReiserFS,
JFS, NTFS, XFS, либо механизм soft updates и др.
Журналирование широко распространено в Linux, применяется в NTFS. Soft updates — в BSD
системах. Reiser4
не применяет журналирование, все операции в ней атомарны.
·
Для
носителей с последовательным доступом (например, магнитные
ленты): QIC и др.
·
Для
оптических носителей — CD
и DVD: ISO9660,
ISO9690, HFS, UDF и др.
·
Виртуальные
файловые системы: AEFS и др.
·
Сетевые
файловые системы: NFS,
CIFS, SSHFS, GmailFS
и др.
·
Для
флэш-памяти:
YAFFS,
ExtremeFFS.
·
Немного
выпадают из общей классификации специализированные файловые системы: ZFS (собственно файловой
системой является только часть ZFS), VMFS (т.н. кластерная файловая система,
которая предназначена для хранения других файловых систем) и др.
Задачи файловой системы
Основные функции любой
файловой системы нацелены на решение следующих задач:
·
именование
файлов;
·
программный
интерфейс работы с файлами для приложений;
·
отображения
логической модели файловой системы на физическую организацию хранилища данных;
·
организация
устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных
средств;
·
содержание
параметров файла, необходимых для правильного его взаимодействия с другими
объектами системы (ядро, приложения и пр.)
В многопользовательских
системах появляется еще одна задача: защита файлов одного пользователя от
несанкционированного доступа другого пользователя, а также обеспечение
совместной работы с файлами, к примеру, при открытии файла одним из
пользователей, для других этот же файл временно будет доступен в режиме «только
чтение».
Твердотельные носители,
такие, как флеш-диски,
своим интерфейсом данных похожи на обычные жёсткие диски, но имеют свои
проблемы и недостатки. Когда проходит время поиска они нуждаются в особой
обработке такими алгоритмами как, Wear leveling и Error detection and correction.
·
exFAT — Расширенная версия
FAT, используемая для флеш-дисков. Запатентована Microsoft,
часто называется как FAT64 — ограничение 264 байт (16 эксабайт).
·
FFS2 — Продолжение файловой системы FFS1,
Одна из ранних файловых систем для флеш-карт. Разработана и запатентована Microsoft
в начале 1990х годов. U.S. Patent 5392427 (англ.)
·
TFAT
— Транзакционная версия FAT файловой системы.
·
JFFS — Оригинальная лог-структурированная
Linux файловая система для NOR-флеш-носителей.
·
JFFS2 — Продолжение JFFS для NAND- и
NOR-флеш-носителей.
·
LogFS — Предназначена для
замены JFFS2, лучшая расширяемость. Находится на ранней стадии разработки.
·
Non-Volatile File System
— файловая система для флеш-дисков, разработанная Palm, Inc..
·
YAFFS — Лог
структурированная файловая система, предназначенная для NAND-флеш, но может
использоваться в NOR-флеш-дисках.
exFAT
exFAT (от англ.
Extended FAT — «расширенная
FAT») — проприетарная файловая
система, предназначенная главным образом для флэш-накопителей.
Впервые представленная Microsoft для встроенных устройств в Windows Embedded CE 6.0.
Используется
в операционных системах от Microsoft в тех случаях, когда использование других
поддерживаемых ими файловых систем (FAT и NTFS) нецелесообразно.
Основными
преимуществами перед всеми текущими версиями FAT является:
·
Теоретический
лимит на размер файла 264 байт (16 эксбибайт).
·
Максимальный
размер кластера увеличен до 225 байт (32 мебибайта).
·
Улучшено
распределение свободного места за счёт введения бит-карты свободного места, что
уменьшает фрагментацию диска.
·
Устранён
лимит на количество файлов в одной директории.
·
Введена
поддержка списка прав доступа.
·
Введена
поддержка транзакций
(опциональная возможность, должна поддерживаться устройством).
Поддержка
exFAT имеется в Windows
XP с Service Pack 2 и 3 с обновлением KB955704, Windows Vista с
Service Pack 1, Windows
Server 2008, Windows 7.
Технология ReadyBoost в Windows Vista не
совместима с устройствами с файловой системой exFAT.
Существует свободный драйвер exFAT в виде патча для ядра Linux,
поддерживающий только чтение этой файловой системы.
Существует
также сторонняя реализация exFAT для Windows XP/ Windows
Server 2003, однако она предназначена для непосредственной
интеграции в дистрибутив продукта без возможности ручной установки драйвера.
Данный порт выполнен на базе драйвера Windows Vista.
В декабре
2009 года Microsoft начала лицензировать файловую систему exFAT для сторонних
производителей.
File Allocation Table
FAT (от англ. File
Allocation Table —
«таблица размещения файлов») — архитектура файловой
системы, сейчас широко используемая в картах памяти фотоаппаратов и
других устройств.
Разработана
Биллом Гейтсом и Марком МакДональдом в 1977 году. Использовалась в качестве
основной файловой системы в операционных системах DOS и Microsoft Windows (до
версии Windows ME).
Структура FAT
определена стандартом ECMA-107.
Структура системы FAT
·
загрузочный
сектор;
·
таблица
размещения файлов
— собственно FAT (традиционно в двух экземплярах, но вообще-то количество копий
указано в загрузочном секторе);
·
корневой
каталог;
·
файлы.
Для хранения
файлов всё доступное для них пространство разбивается на кластеры. Таблица размещения файлов содержит
ячейки, каждая из которых соответствует определённому кластеру диска. Если
кластер принадлежит файлу, то соответствующая ему ячейка содержит номер
следующего кластера этого же файла. Если ячейка соответствует последнему
кластеру файла, то она содержит значение «FFFF». Таким образом выстраивается
цепочка кластеров файла. Неиспользуемые кластеры помечены «0000». «Плохие»
кластеры помечены специальным кодом «FFF7».
При удалении
файла фактически только делается запись в каталоге, а цепочка кластеров не
разрушается и данные не затираются. Это позволяет восстанавливать удалённые
файлы, если на их место ещё не было ничего записано.
Максимальный
размер кластера, который поддерживается в FAT, составляет 64 Кб.
Зная, что максимальное количество кластеров, которое можно адресовать
шестнадцатиразрядным указателем равно 65536, можно вычислить какой величины
раздел можно отформатировать, применяя тот или иной размер кластера. Если взять
размер кластера равным размеру физического кластера (сектора), то получим:
65536 * 512 = 32 Мб.
Если взять кластер в 2 раза больше, то можно отформатировать раздел уже до 64
Мб. Ввиду того, что разрядность ФС
— величина постоянная, для форматирования дисков различных размеров будут
применяться разные размеры кластеров. Например, чтобы отформатировать диск
более 1 Гб,
нужно применять кластер 16 КБ. Поскольку размер кластера, являющийся
максимально допустимым в этой ФС, равен 64 Кб,
то можно определить, что максимальный размер раздела, форматируемый под FAT,
равен 4 Гб.
FAT16
Файловая система FAT
работает с единицами дискового пространства, называемыми кластер. Каждый
кластер может включать один или несколько секторов жесткого диска (твой хард
обычно разбит на сектора по 512 байт). Из чего следует, что минимальный размер
кластера - 512 байт. Для хранения одного файла можно использовать один или
несколько кластеров. Каждому кластеру диска в таблице FAT соответствует
отдельная запись, которая либо указывает на следующий кластер файла, либо
содержит метку конца файла. В составе каждого каталога хранятся имена входящих
в него файлов. Вместе с именем файла хранится указатель на первый кластер этого
файла. Помимо этого в каталоге хранится дата создания файла, его размер и
атрибуты. Атрибуты могут указывать на то, что файл является скрытым,
зарезервированным для использования операционной системой, требует
архивирования (резервного копирования) или предназначен только для чтения.
Это теория, а теперь
недостатки: ты никогда не задумывался, что значит "16" в названии
файловой системы? А значат они то, что таблица размещения файлов FAT (File
Allocation Table) идентифицирует записи, соответствующие дисковым кластерам,
при помощи 16-разрядных чисел. Таким образом, в таблице можно разместить не
более 65 536 записей (2 в 16-ой степени). А если учитывать то, что максимальный
размер кластера - 32 Кбайта, то выходит, что максимальный раздел дискового тома
- 2 Гбайта. У тебя логические диски на винте наверное ГОРАЗДО большего размера?
Это недостаток номер "раз"(хотя надо отметить, что FAT32 этот недостаток
почти что преодолела). Недостаток номер два - это то, что для хранения ВСЕХ
файловых атрибутов система FAT использует всего 1 байт. Нельзя хранить ни
сведения о праве доступа к файлу, ни о его владельце… Недостаток номер
"три" кроется в том, что при использовании FAT больший размер
дискового тома означает больший размер кластера, а одна из главных
"невкусностей FAT" - это то, что один файл = как минимум один
кластер. Пример: имеем размер кластера 32 Кбайта и файл размером в 2 Кбайта - в
результате файл занимает весь кластер, т.е. мы теряем 30 Кбайт…Примерно тоже
самое получится, если файл будет размером 34 Кбайта - тогда он займет два
кластера и во втором мы опять потеряем 30 Кбайт… Недостатки номер "четыре
и пять" - сведения о физическом расположении файлов хранятся в одном месте
- таблице размещения файлов FAT, что: а) увеличивает вероятность повреждения и
потери всей информации; б) снижает скорость поиска, т.к. для поиска
определенного файла нужно обработать всю таблицу. Нужно признать, что FAT16 создавалась
давно, во времена MS-DOS и требованиям того времени вполне удовлетворяла…
FAT32
Эта файловая система
пришла на смену FAT16. Её отличие в том, что таблица размещения файлов FAT
(File Allocation Table) идентифицирует записи, соответствующие дисковым
кластерам, при помощи 32-разрядных чисел. В соответствии с этим максимальное
количество записей становится равным 4 294 967 296 (2 в 32-ой степени). В связи
с чем максимальный размер дискового тома существенно увеличивается (до 2
Тбайт). Однако это позволяет преодолеть лишь недостаток номер "раз",
однако все остальные - увы остаются, что особенно обидно для владельцев
небольших винтов - нерациональное расходование дискового пространства… а также
частые повреждения разнообразной природы и т.д.
Отказоустойчивость системы
Поскольку
система FAT хранит данные о файлах и данные о свободном месте на диске в одной
таблице, то операция записи файла, традиционно состоящая из двух этапов
(добавление занимаемого блока в перечень занятых и исключение этого же блока из
списка свободных) происходит в FAT в одно действие. Благодаря этому система FAT
обладает врождённой устойчивостью к сбоям, то есть сбой (например, питания) в
момент выполнения операции чтения или записи в большинстве случаев не приведёт
к разрушению файловой системы. Однако следует помнить, что в данном случае речь
идёт именно о целостности файловой системы, а не самих файлов.
Версии системы FAT
Существует
четыре версии FAT — FAT12, FAT16, FAT32 и exFAT. Они
отличаются количеством бит,
отведённых для хранения номера кластера. FAT12 применяется в основном для дискет,
FAT16 — для дисков малого объёма, а новая exFAT преимущественно для флэш-накопителей.
Изначально
FAT не поддерживала иерархическую систему каталогов. Все файлы располагались в
корневом каталоге. Это оказалось неудобно. И к тому же малый размер корневого
каталога ограничивал количество файлов на диске. Каталоги были введены с
выходом MS-DOS 2.0.
В различных
операционных системах также были внедрены различные расширения FAT. Например, в
DR-DOS имеются
дополнительные атрибуты доступа к файлам; в Windows 95, Linux
и Proolix — поддержка длинных имён файлов (LFN)
в формате Unicode (Virtual FAT — VFAT); в OS/2 — расширенные атрибуты всех файлов.
YAFFS
YAFFS (Yet Another Flash File System)
— YAFFS — это первая файловая
система, разработанная специально для использования на NAND
накопителях. Автором является Charles Manning из Новой
Зеландии.
YAFFS2
YAFFS2 —
разработана на базе YAFFS1, формат данных остался таким же для обратной
совместимости. Главное отличие — YAFFS2 позволяет в современных моделях
флеш-памяти пропускать страницы, помеченные для однократной записи.
YAFFS2
использует еще более абстрактные определения флеш-памяти, которые позволяют
использовать эту файловую систему с большим количеством разных типов памяти со
своей геометрией, правилами определения сбойных секторов и др.
NTFS
Расшифровывается как
New Technology File System .По сравнению с FAT файловая система NTFS обладает
куда более сложной структурой и куда более широкими возможностями. В отличии от
FAT, файловая система NTFS не хранит всю информацию о расположении файлов в
одном месте. Вместо этого сведения о распределении дискового пространства между
файлами сохраняются в составе специальных пакетов, которые могут располагаться
в любом месте раздела . Структура каталогов NTFS также отличается от структуры
каталогов FAT. Дисковые каталоги NTFS лучше приспособлены для осуществления
поиска файлов, так как записи о файлах сохраняются с использованием бинарного
дерева, а не простого линейного списка (как это было в FAT). Это означает, что
для того, чтобы обнаружить файл, требуется проанализировать меньшее количество
записей. А если к этому еще прибавить возможность индексирования, то система
будет просто летать!
Файловая система NTFS
обладает встроенной поддержкой длинных имен и расширяемых файловых атрибутов.
Благодаря этому разделы NTFS могут хранить информацию, связанную с защитой
файлов (например, списки ACL), аудитом доступа к файлам, а также сведения,
связанные с правами на владение файлами. Задание дисковой квоты - еще одна
возможность NTFS, связанная с возможностью сохранения расширенного количества
атрибутов файла. Заключается она в том, что определенному пользователю можно
назначить определенный размер дискового пространства, который он может
использовать для хранения своих файлов (ты наверно уже сталкивался с этим, если
имел дело с каким либо хостингом). Если же ты подобного опыта не имел, то
объясняю: при попытке сохранения файла, система анализирует размер всех файлов,
которые уже принадлежат тебе (ага, по тому самому атрибуту "владелец"
о котором говорилось только что) и сравнивает с назначенной тебе дисковой
квотой. Если остаток квоты достаточен для размещения этого файла, то будет
выполнено сохранение, в противном случае тебя пошлет подальше сообщением
"превышена дисковая квота". Если при использовании FAT самое лучшее
на что ты мог рассчитывать - это то, что файл будет занимать на диске не более,
чем собственный размер, то при использовании NTFS можешь об этом забыть! В NTFS
минимальная единица равна сектору жесткого диска и один файл не означает один
кластер! Помимо этого файловая система поддерживает атрибут, позволяющий
осуществлять индивидуальную компрессию файлов и каталогов. Новые возможности
NTFS5 и Windows 2000 позволяют задействовать архитектуру открытых ключей для
шифрования файлов, каталогов или томов с помощью EFS. Кроме того наверняка всех
порадует возможность монтирования. Ну и в довершение всего NTFS поддерживает
очень большие диски - до 16 экзабайт. (экзабайт - это 1 073 741 824 Гигабайт).
Простой пример: Если жесткий диск способен записать 1 мегабайт данных в
секунду, то для того, чтобы записать один экзабайт (заметь один, а не
шестнадцать), ему потребуется 1000 миллиардов секунд. В одном году 3 миллиона секунд.
Следовательно, чтобы сохранить один экзабайт данных потребуется 300 000 лет.
Список литературы
1.
«Самоучитель
работы на компьютере» А.Ю Гаевский изд. «Технолоджи-3000» 2009г.
2.
Интернет-
энциклопедия «Википедия» www.wikipedia.ru