Файловые системы Windows. Основные виды файловых систем

Доброго времени суток уважаемый пользователь, в этой статье речь пойдет о такой теме, как файлы. А именно мы рассмотрим: Управление файлами , типы файлов , файловая структура , атрибуты файла .

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

Одной из основных задач ОС является предоставление удобств пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью, которая реализуется в виде дерева каталогов, выводимого на экран такими утилитами, как Norton Commander, Far Manager или Windows Explorer. Базовым элементом этой модели является файл , который так же, как и файловая система в целом, может характеризоваться как логической, так и физической структурой.

Управление файлами

Файл – именованная область внешней памяти, предназначенная для считывания и записи данных.

Файлы хранятся в памяти, не зависящей от энергопитания. Исключением является электронный диск, когда в ОП создается структура, имитирующая файловую систему.

Файловая система (ФС) - это компонент ОС, обеспечивающий организацию создания, хранения и доступа к именованным наборам данных — файлам.

Файловая система включает:Файловая система включает:

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

Задачи, решаемые ФС, зависят от способа организации вычислительного процесса в целом. Самый простой тип – это ФС в однопользовательских и однопрограммных ОС. Основные функции в такой ФС нацелены на решение следующих задач:

  • Именование файлов.
  • Программный интерфейс для приложений.
  • Отображения логической модели ФС на физическую организацию хранилища данных.
  • Устойчивость ФС к сбоям питания, ошибкам аппаратных и программных средств.

Задачи ФС усложняются в однопользовательских многозадачных ОС, которые предназначены для работы одного пользователя, но дают возможность запускать одновременно несколько процессов. К перечисленным выше задачам добавляется новая задача — совместный доступ к файлу из нескольких процессов.

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

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

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

Термины «файловая система» и «система управления файлами» необходимо различать: файловая система определяет, прежде всего, принципы доступа к данным, организованным как файлы. А термин «система управления файлами» следует употреблять по отношению к конкретной реализации файловой системы, т.е. это комплекс программных модулей, обеспечивающих работу с файлами в конкретной ОС.

Пример

Файловая система FAT (file allocation table) имеет множество реализаций как система управления файлами

  • Система, разработанная для первых ПК называлась просто FAT (сейчас ее называют просто FAT-12) . Ее разрабатывали для работы с дискетами, и некоторое время она использовалась для работы с жесткими дисками.
  • Потом ее усовершенствовали для работы с жесткими дисками большего объема, и эта новая реализация получила название FAT–16. это название используется и по отношению к СУФ самой MS-DOS.
  • Реализация СУФ для OS/2 называется super-FAT (основное отличие – возможность поддерживать для каждого файла расширенные атрибуты).
  • Есть версия СУФ и для Windows 9x/NT и т.д. (FAT-32).

Типы файлов

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

Обычные файлы могут быть двух типов:

  1. Программные (исполняемые) – представляют собой программы, написанные на командном языке ОС, и выполняют некоторые системные функции (имеют расширения.exe, .com, .bat).
  2. Файлы данных – все прочие типы файлов: текстовые и графические документы, электронные таблицы, базы данных и др.

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

Специальные файлы – это фиктивные файлы, ассоциированные с устройствами ввода/вывода, которые используются для унификации механизма доступа к файлам и внешним устройствам. Специальные файлы позволяют пользователю осуществлять операции ввода/вывода посредством обычных команд записи с файлов или чтения из файлов. Эти команды обрабатываются сначала программами ФС, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством (PRN, LPT1 – для порта принтера (символьные имена, для ОС – это файлы), CON – для клавиатуры).

Пример . Copy con text1 (работа с клавиатурой).

Файловая структура

Файловая структура – вся совокупность файлов на диске и взаимосвязей между ними (порядок хранения файлов на диске).

Виды файловых структур:

  • простая , или одноуровневая : каталог представляет собой линейную последовательность файлов.
  • иерархическая или многоуровневая : каталог сам может входить в состав другого каталога и содержать внутри себя множество файлов и подкаталогов. Иерархическая структура может быть двух видов: «Дерево» и «Сеть». Каталоги образуют «Дерево», если файлу разрешено входить только в один каталог (ОС MS-DOS, Windows) и «Сеть» – если файл может входить сразу в несколько каталогов (UNIX).
  • Файловая структура может быть представлена в виде графа, описывающего иерархию каталогов и файлов:



Типы имен файлов

Файлы идентифицируются именами. Пользователи дают файлам символьные имена , при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. В ранних файловых системах эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов — собственно имя, 3 символа — расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов.

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

Например, Windows NT в своей файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

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

Символьные имена могут быть трех типов: простые, составные и относительные:

  1. Простое имя идентифицирует файл в пределах одного каталога, присваивается файлам с учетом номенклатуры символа и длины имени.
  2. Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла, имени диска, имени файла. Таким образом, полное имя является составным , в котором простые имена отделены друг от друга принятым в ОС разделителем.
  3. Файл может быть идентифицирован также относительным именем . Относительное имя файла определяется через понятие «текущий каталог». В каждый момент времени один из каталогов является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла.

В древовидной файловой структуре между файлом и его полным именем имеется взаимно однозначное соответствие – «один файл — одно полное имя». В сетевой файловой структуре файл может входить в несколько каталогов, а значит может иметь несколько полных имен; здесь справедливо соответствие – «один файл — много полных имен».

Для файла 2.doc определить все три типа имени, при условии, что текущим каталогом является каталог 2008_год.

  • Простое имя: 2.doc
  • Полное имя: C:\2008_год\Документы\2.doc
  • Относительное имя: Документы\2.doc

Атрибуты файлов

Важной характеристикой файла являются атрибуты. Атрибуты – это информация, описывающая свойства файлов. Примеры возможных атрибутов файлов:

  • Признак «только для чтения» (Read-Only);
  • Признак «скрытый файл» (Hidden);
  • Признак «системный файл» (System);
  • Признак «архивный файл» (Archive);
  • Тип файла (обычный файл, каталог, специальный файл);
  • Владелец файла;
  • Создатель файла;
  • Пароль для доступа к файлу;
  • Информация о разрешенных операциях доступа к файлу;
  • Время создания, последнего доступа и последнего изменения;
  • Текущий размер файла;
  • Максимальный размер файла;
  • Признак «временный (удалить после завершения процесса)»;
  • Признак блокировки.

В файловых системах разного типа для характеристики файлов могут использоваться разные наборы атрибутов (например, в однопользовательской ОС в наборе атрибутов будут отсутствовать характеристики, имеющие отношение к пользователю и защите (создатель файла, пароль для доступа к файлу и т.д.).

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

Права доступа к файлу

Определить права доступа к файлу — значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции:

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

В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки — всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции:

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

Должно быть, вы уже неоднократно слышали о таких файловых системах, как FAT32, NTFS и exFAT . Но в чем же между ними разница? Каждый тип обладает своим собственным набором плюсов и минусов. Именно поэтому нет единого варианта. В этой статье мы разберем основные отличия трех файловых систем.

Говоря об операционной системе Windows, мы точно знаем, что она устанавливается только на логический раздел формата NTFS. Съемные накопители и другие устройства хранения, основанные на USB-интерфейсе, используют тип FAT32.

Одним из форматов, которые можно использовать для форматирования Flash-накопителей, является exFAT — преемник старой файловой системы FAT32.

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

Что такое файловая система

Файловая система представляет из себя набор правил, определяющих то, как хранятся и извлекаются документы, хранящиеся на устройстве. Это может быть жесткий диск, Flash-накопитель или SD-карта.

Для большего понимания, приведем как пример офис обычной компании. Фрагменты установленных документов хранятся в определенном месте, допустим, в ящике стола. И при необходимости открыть их, файловая система обращается к файлам в попытке считать информацию.

Полезные статьи


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

На самом деле существует большое количество файловых систем, например Flash File System, Tape File System и Disk File System, однако мы остановимся только на основных — FAT32 , NTFS и exFAT .

Что такое FAT32

Файловая система FAT32 является самой старой и опытной в истории компьютерных технологий. Ее путь начался с оригинальной 8-битной системы FAT в 1977 году, которая функционировала внутри автономного диска Microsoft Standalone Disk Basic-80 . Он был запущен специально для Intel 8080 NCR 7200 в 1977/1978 году, работая терминалом ввода данных с 8-дюймовыми гибкими дисками.

После обсуждений о введении системы с учредителем Microsoft Биллом Гейтсом, код был написан первым наемным сотрудником компании Марком Макдональдом.

Основной задачей файловой системы FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS, написанной Марком Макдональдом.

В дальнейшем FAT претерпела некоторые изменения, постепенно переходя от своего первоначального вида к FAT12, FAT16 и, наконец, FAT32, название которой теперь тесно ассоциируется с внешними накопителями.

Основным отличием FAT32 от ее предшественников является преодоление ограниченного объема доступной для хранения информации. 32-разрядная система была выпущена в августе 1995 года вместе с релизом Windows 95 и в своем обновленном варианте позволила увеличить верхние пределы размера файлов и хранилища данных до 4 Гб и 16 Тб.

Таким образом, FAT32 не предназначена для хранения больших объемов данных и установки тяжелых приложений. Именно по этой причине на жестких дисках используется файловая система NTFS , которая позволяет пользователям перестать думать о загружаемых объемах информации.

Резюмируя, система FAT32 идеально подойдет для хранения данных, объем которых не превышает 4 Гб, на любых съемных носителях. Ее популярность не ограничивается только компьютерной сферой. Она используется в игровых консолях, телевизорах с высокой четкостью изображения, DVD-проигрывателях, Blu-Ray плеерах и любых других устройствах с USB-портом. FAT32 поддерживают все версии Windows, Linux и MacOS.

Что такое NTFS

В 1993 году компания Microsoft представила новую файловую систему NTFS (New Technology File System) параллельно с появление операционной системы Windows NT 3.1.

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

Разработка началась в середине 1980-х годов в период сотрудничества Microsoft и IBM, целью которого было создание новой операционной системы, превосходящей предыдущие по графической производительности.

Тем не менее, союз двух компаний не был долог и, не завершив общий проект, они приняли решение прекратить сотрудничество. Впоследствии Microsoft и IBM сконцентрировались на производстве собственных файловых систем.

Для компьютерных технологий 1989 год ознаменовался созданием HPFS от IBM, которая использовалась для операционной системы OS/2. Несколькими годами позже, в 1993, компания Microsoft запустила NTFS v1.0 , которая стала официальной файловой системой для Windows NT 3.1.

Теоретический размер файла NTFS — 16 Эб — 1 Кб, что составляет 18 446 744 073 709 550 502 байта. В команду разработчиков входили Том Миллер, Гарри Кимуру, Брайан Эндрю, Девид Гебель.

Следующей версией файловой системы стала NTFS v3.1 , запущенная специально для Microsoft Windows XP. В дальнейшем она не претерпевала особых изменений, хотя в нее и было внесено множество различных дополнений. Например, появилась возможность сжатия логических разделов, восстановление и символические ссылки NTFS. Кроме того начальная емкость файловой системы составляла всего 256 Мб из колоссальных 16 Эб — 1 Кб в новых версиях, запущенных с выходом Windows 8.

Говоря о полезных функциях, внедренных в NTFS v3.1, можно отметить расширение поддерживаемых форматов файлов, квоты использования диска, шифрование файлов и создание точек повторной обработки. Примечательным является тот факт, что новые версии NTFS полностью совместимы с предыдущими.

Файловая система NTFS имеет важную особенность, когда дело доходит до ее восстановления, вследствие каких-либо повреждений. Она содержит в себе определенную структуру данных, которая отслеживает любые изменения в системе и с помощью которой всегда можно вернуть работоспособность NTFS.

Данная файловая система поддерживается всеми версиями Windows, начиная с Windows XP. К сожалению, MacOS не разделяет стремление к совместимости, продвигаемое Microsoft. Apple оставили для пользователей возможность чтения данных с дисков NTFS, однако записывать на них не получится. Поддержка данной файловой системы от Linux ограничивается лишь несколькими ее версиями.

Что такое exFAT

ExFAT (Extended FAT) — новая, расширенная файловая система от Microsoft, которая с успехом заменяет своего предшественника на поле, когда дело доходит до больших объемов информации.

Как вы наверняка знаете, большинство современных цифровых фотокамер используют систему exFAT, поскольку она существенно легче NTFS, но, в то же время, позволяет сохранять файлы размером более 4 Гб, в отличие от FAT32.

Таким образом, копируя на Flash-накопитель с файловой системой exFAT документ размером 6 Гб, вы не столкнетесь с негативными последствиями, которые можно наблюдать, используя предшествующую версию системы.

Формат exFAT набирает все большую популярность и используется преимущественно с высокоемкими картами памяти SDXC. Основной причиной тому является небольшой размер файловой системы и, как ранее описывалось, возможность сохранять документы объемом более 4 Гб.

Интересным будет факт, что Microsoft хранит патент США 8321439, позволяющий быстро найти файл при помощи хэша имени. Благодаря данной функции, любой документ можно найти в разы быстрее.

Стоит отметить, что для файловой системы exFAT не было выпущено всех доступных дополнений в общий доступ. Для их приобретения поставщики обязаны приобрести ограниченную лицензию от Microsoft.

Данное действие было предпринято для того, чтобы поставщики не пытались монетизировать продукт Microsoft, отмечая себя частью компании, поскольку они имели бы в наличии исходный код файловой системы.

Поскольку Microsoft неизменны в своем упрямстве, многие пользователи занялись созданием собственными модификациями exFAT, одной из которых стала exfat-fuse . Она обеспечивает операции чтения и записи для дистрибутивов Linux, включая FreeBSD.

Созданная в 2006 году файловая система exFAT, имеющая общий предел объема информации, что и NTFS, является более легкой, поскольку не содержит в себе всевозможных дополнений, как вторая.

ExFAT поддерживает функции чтения, записи и совместима с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.

Сравнение файловых систем

FAT32:

  • Совместимость: Windows, MacOS, Linux, игровые консоли и устройства с USB-портом.
  • Плюсы: кросс-платформенная совместимость, легкая файловая система.
  • Минусы: ограничения в размерах файлов (доступны документы до 4 Гб) и размеры разделов до 16 Тб.
  • Назначение: съемные накопители. Используется для форматирования Flash-накопителей, однако exFAT предпочтительнее.

NTFS:

  • Совместимость: Windows, MacOS (доступно только чтение), Linux (только чтение для некоторых дистрибутивов), Xbox One.
  • Плюсы: отсутствие ограничений по размеру файлов и разделов.
  • Минусы: ограниченная межплатформенная совместимость.
  • Назначение: хорошо подходит для внутренних жестких дисков, поскольку позволяет хранить информацию большого объема, справиться с которым другие файловые системы не смогут.

exFAT:

  • Совместимость: Windows XP и более поздние версии, MacOS 10.6.5 и выше, Linux (с использованием FUSE), Android.
  • Плюсы: имеет общие положительные эффекты от FAT32 и NTFS, которые включают в себя возможность хранения файлов, размером свыше 4 Гб.
  • Минусы: Microsoft ограничивают использование лицензии.
  • Назначение: позволяет исключить ограничения по размеру файлов для съемных накопителей. Гораздо предпочтительнее своего предшественника FAT32.

В случае необходимости восстановить логический раздел с неизвестной, поврежденной или удаленной файловой системой — вам помогут инструменты Starus Recovery.

Инструмент Starus Partition Recovery , или его аналоги, Starus FAT Recovery, Starus NTFS Recovery, предназначены для работы с определенными файловыми системами - FAT и NTFS. Основной софт способен взаимодействовать с обоими. Cкачать и опробовать программы для восстановления файловых систем FAT32 и NTFS можно совершенно бесплатно!

Операционная система Windows может быть установлена только на файловую систему NTFS, поэтому обычно у пользователей не возникает вопросов какую ФС лучше использовать. Но Linux очень сильно отличается, здесь в ядро системы встроены и могут использоваться несколько файловых систем, каждая из которых оптимизирована для решения определенных задач и лучше подходит именно для них.

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

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

Что такое файловая система?

Дальше больше. Чтобы на каждом разделе можно было работать с файлами и каталогами, необходима файловая система. Мы могли бы писать просто содержимое файлов на диск, но нужно еще где-то хранить данные о папках, имена файлов, их размер, адрес на жестком диске, атрибуты доступа. Всем этим занимается файловая система.

От файловой системы зависит очень многое, скорость работы с файлами, скорость записи и даже размер файлов. Также от стабильности файловой системы будет зависеть сохранность ваших файлов.

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

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

Основные файловые системы

Каждый дистрибутив Linux позволяет использовать одну из этих файловых систем, каждая из них имеет свои преимущества и недостатки:

  • Ext2;
  • Ext3;
  • Ext4;
  • ReiserFS;
  • Btrfs;

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

Ext2, Ext3, Ext4 или Extended Filesystem - это стандартная файловая система для Linux. Она была разработана еще для Minix. Она самая стабильная из всех существующих, кодовая база изменяется очень редко и эта файловая система содержит больше всего функций. Версия ext2 была разработана уже именно для Linux и получила много улучшений.

В 2001 году вышла ext3, которая добавила еще больше стабильности благодаря использованию журналирования. В 2006 была выпущена версия ext4, которая используется во всех дистрибутивах Linux до сегодняшнего дня. В ней было внесено много улучшений, в том числе увеличен максимальный размер раздела до одного экзабайта.

JFS или Journaled File System была разработана в IBM для AIX UNIX и использовалась в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов. При разработке файловой системы ставилась цель создать максимально эффективную файловую систему для многопроцессорных компьютеров. Также как и ext, это журналируемая файловая система, но в журнале хранятся только метаданные, что может привести к использованию старых версий файлов после сбоев.

ReiserFS - была разработана намного позже, в качестве альтернативы ext3 с улучшенной производительностью и расширенными возможностями. Она была разработана под руководством Ганса Райзера и поддерживает только Linux. Из особенностей можно отметить динамический размер блока, что позволяет упаковывать несколько небольших файлов в один блок, что предотвращает фрагментацию и улучшает работу с небольшими файлами.

Еще одно преимущество - в возможности изменять размеры разделов на лету. Но минус в некоторой нестабильности и риске потери данных при отключении энергии. Раньше ReiserFS применялась по умолчанию в SUSE Linux, но сейчас разработчики перешли на Btrfs.

XFS - это высокопроизводительная файловая система, разработанная в Silicon Graphics для собственной операционной системы еще в 2001 году. Она изначально была рассчитана на файлы большого размера, и поддерживала диски до 2 Терабайт. Из преимуществ файловой системы можно отметить высокую скорость работы с большими файлами, отложенное выделение места, увеличение разделов на лету и незначительный размер служебной информации.

XFS - журналируемая файловая система, однако в отличие от ext, в журнал записываются только изменения метаданных. Она используется по умолчанию в дистрибутивах на основе Red Hat. Из недостатков - это невозможность уменьшения размера, сложность восстановления данных и риск потери файлов при записи, если будет неожиданное отключение питания, поскольку большинство данных находится в памяти.

Btrfs или B-Tree File System - это совершенно новая файловая система, которая сосредоточена на отказоустойчивости, легкости администрирования и восстановления данных. Файловая система объединяет в себе очень много новых интересных возможностей, таких как размещение на нескольких разделах, поддержка подтомов, изменение размера не лету, создание мгновенных снимков, а также высокая производительность. Но многими пользователями считается нестабильной. Тем не менее, она уже используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.

Другие файловые системы, такие как NTFS, FAT, HFS могут использоваться в Linux, но корневая файловая система linux на них не устанавливается, поскольку они для этого не предназначены.

Специальные файловые системы

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

  • tmpfs;
  • procfs;
  • sysfs;

Файловая система tmpfs позволяет размещать любые пользовательские файлы в оперативной памяти компьютера. Достаточно создать блочное устройство нужного размера, затем подключить его к папке, и вы можете писать файлы в оперативную память.

procfs - по умолчанию смонтирована в папку proc и содержит всю информацию о запущенных в системе процессах, а также самом ядре.

sysfs - с помощью этой файловой системы вы можете задавать различные настройки ядра во время выполнения.

Виртуальные файловые системы

Не все файловые системы нужны в ядре. Существуют некоторые решения, которые можно реализовать и в пространстве пользователя. Разработчики ядра создали модуль FUSE (filesystem in userspace), который позволяет создавать файловые системы в пространстве пользователя. К виртуальным файловым системам можно отнести ФС для шифрования и сетевые файловые системы.

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

Aufs (AnotherUnionFS) - позволяет объединять несколько файловых систем (папок) в одну общую.

NFS (Network Filesystem) - позволяет примонтировать файловую систему удаленного компьютера по сети.

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

Выводы

В этой статье мы рассмотрели типы файловых систем Linux. Как видите, здесь все намного запутаннее чем в Windows. Но на самом деле все просто. Если вам нужна максимально стабильная файловая система linux - то лучшим решением будет ext4, хотите новых технологий - btrfs, для маленьких файлов - raiser4, для больших - XFS. А какие файловые системы linux предпочитаете вы? Напишите в комментариях!

На завершение видео о том, что такое файловая система и ее структура в linux:

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САНКТ - ПЕТЕРБУРГСКИЙ ГОСУДАСТВЕННЫЙ УНИВЕРСИТЕТ

ЭКОНОМИКИ И ФИНАНСОВ»

КАФЕДРА ИНФОРМАТИКИ

Реферат по информатике

на тему:

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

Выполнил: студент 110 группы О110

Э.В.Андреева

Руководитель: проф. Е.А.Осипова

Санкт-Петербург

2009 г.

Введение…………………………………………………………3

1. Файловая система FAT…………………………………..4

2. Файловая система FAT32………………………………..5

3. Файловая система HPFS…………………………………6

4. Файловая система NTFS…………………………………8

Заключение………………………………………………………9

Список используемой литературы……………………………..10

Введение

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

Файловая система определяет:

Как хранятся файлы и каталоги на диске;

Какие сведения хранятся о файлах и каталогах;

Как можно узнать, какие участки диска свободны, а какие – нет;

Формат каталогов и другой служебной информации на диске.

Мы рассмотрим четыре файловые системы – FAT, FAT 32, HPFS, NTFS.

1. Файловая система FAT

FAT является наиболее простой из поддерживаемых Windows NT файловых систем. Основой файловой системы FAT является таблица размещения файлов, которая помещена в самом начале тома.

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

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

Каталог FAT не имеет определенной структуры, и файлы записываются в первом обнаруженном свободном месте на диске. Кроме того, файловая система FAT поддерживает только четыре файловых атрибута: «Системный», «Скрытый», «Только чтение» и «Архивный».

Преимущества файловой системы FAT

На компьютере под управлением Windows NT в любой из поддерживаемых файловых систем нельзя отменить удаление. Файловая система FAT лучше всего подходит для использования на дисках и разделах размером до 200 МБ, потому что она запускается с минимальными накладными расходами.

Недостатки файловой системы FAT

Не стоит использовать файловую систему FAT для дисков и разделов, чей размер больше 200 МБ. Это объясняется тем, что по мере увеличения размера тома производительность файловой системы FAT быстро падает. Для файлов, расположенных в разделах FAT, невозможно установить разрешения.
Разделы FAT имеют ограничение по размеру: 4 ГБ под Windows NT и 2 ГБ под MS-DOS.

2. Файловая система FAT32

FAT 32 представляет собой цепь данных, которые связывают между собой кластеры дискового пространства и файлы. В базе данных кластеров существует только один элемент. Из них, первые два элемента представляют собой информацию о системе FAT – 32, а третий и последующий элементы ставятся в соответствии с кластерами дискового пространства.
Самое большое число кластеров в данной файловой системе равно 268 435 445 кластеров. Данная система позволяет использовать жесткие диски размером до 32 Гб. Однако FAT может поддерживать дисковые пространства размером до 2 терабайт! Первоначально данная файловая система применялась в составе Windows 95 OSR 2. Именно в данной файловой системе были расширены атрибуты файлов, которые позволили хранить время и дату создания, и модификацию последнего доступа к файлу или каталогу.

Операционная система FAT – 32 также позволяет работать с любой из копий FAT 32.

FAT 32:

1. Высокая скорость работы;

2. Низкое требование к объему оперативной памяти;

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

4. Более низкий износ дисков, вследствие меньшего количества передвижений головок чтения/записи.

Недостатки файловой системы FAT 32:

1. Низкая защита от сбоев системы;

2. Не эффективная работа с файлами больших размеров;

3. Ограничение по максимальному объему раздела и файла;

4. Снижение быстродействия при фрагментации;

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

3. Файловая система HPFS

Файловая система HPFS впервые была использована для операционной системы OS/2 1.2, чтобы обеспечить доступ к появлявшимся в то время на рынке дискам большого размера

В файловой системе HPFS поддерживается структура каталогов FAT и добавлена сортировка файлов по именам. Имя файла может содержать до 254 двухбайтовых символов. Кроме того, наименьший блок для хранения данных теперь равен размеру физического сектора (512 байт), что позволяет снизить потери дискового пространства.

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

HPFS старается по возможности располагать данные файла в смежных секторах. Это приводит к повышению скорости последовательной обработки файла.

HPFS делит диск на блоки по 8 МБ каждый и всегда пытается записать файл в пределах одного блока. Разбиение на блоки приводит к повышению производительности.
Кроме того, файловая система HPFS содержит два уникальных объекта данных:

· Суперблок

Суперблок располагается в логическом секторе 16 и содержит указатель на FNODE корневого каталога. В этом кроется главная опасность использования HPFS: если сектор суперблока помечен как поврежденный, это приводит к потере всех данных раздела даже на неповрежденных участках диска. Для восстановления данных их необходимо скопировать на другой диск с неповрежденным сектором 16 и воссоздать суперблок.

· Запасной блок

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

Преимущества файловой системы HPFS

HPFS – оптимальный вариант файловой системы для использования с дисками размером 200–400 МБ.

Недостатки файловой системы HPFS

Дополнительные накладные расходы, связанные с использованием HPFS, снижают эффективность ее применения на дисках размером меньше 200 МБ. Кроме того, производительность также снижается при использовании дисков размером больше 400 МБ. При использовании HPFS под Windows NT нельзя установить параметры безопасности.

Файловая система HPFS поддерживается только операционной системой Windows NT версий 3.1, 3.5 и 3.51. Нельзя получить доступ к разделу HPFS с помощью Windows NT 4.0.

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

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

Преимущества файловой системы NTFS :

1. Быстрая скорость доступа к файлам малого размера;

2. Размер дискового пространства на сегодняшний день практически не ограничен;

3. Фрагментация файлов не влияет на саму файловую систему;

4. Высокая надежность сохранения данных и собственно самой файловой структуры;

5. Высокая производительность при работе с файлами большого размера;

Недостатки файловой системы NTFS :

ОБЩЕЕ ОПИСАНИЕ ФАЙЛОВЫХ СИСТЕМ

В широком смысле понятие "файловая система" включает:

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

Файловая система представляет многоуровневую структуру, на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS). Он обеспечивает интерфейс между приложением и конкретной файловой системой, к которой обращается приложение. Переключатель файловых систем преобразует запросы к файлам в формат, воспринимаемый следующим уровнем - уровнем драйверов файловых систем. Для выполнения своих функций драйверы файловых систем обращаются к драйверам конкретных устройств хранения информации.

Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт.

В FAT применяются следующие соглашения по именам файлов:

    • имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов "/\:;|=,^*?
    • Длина имени не превышает 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов.
    • регистр символов в именах файлов не различается и не сохраняется.

Структура раздела FAT изображена на рисунке 2. В блоке параметров BIOS содержится необходимая BIOS информация о физических характеристиках жесткого диска. Файловая система FAT не может контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры (clusters ). Таким образом, уменьшается общее количество единиц хранения, за которыми должна следить файловая система.

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

Каждому файлу и подкаталогу в FAT соответствует 32-байтный элемент каталога (directory entry), содержащий имя файла, его атрибуты (архивный, скрытый, системный и “только для чтения”), дату и время создания (или внесения в него последних изменений), а также прочую информацию

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

Высокопроизводительная файловая система HPFS (High Performance File System) была представлена фирмой IBM в 1989 году вместе с операционной системой OS/2 1.20. Файловая система HPFS также поддерживалась ОС Windows NT до версии 3.51 включительно. По производительности эта ФС существенно опережает FAT. HPFS позволяет использовать жесткие диски объемом до 2 Терабайт (первоначально до 4 Гбайт). Кроме того, она поддерживает разделы диска размером до 512 Гб и позволяет использовать имена файлов длиной до 255 символов (на каждый символ при этом отводится 2 байта). В HPFS по сравнению с FAT уменьшено время доступа к файлам в больших каталогах.

HPFS распределяет пространство на диске не кластерами как в FAT, а физическими секторами по 512 байт, что не позволяет ее использовать на жестких дисках, имеющих другой размер сектора. Эти секторы принято называть блоками. Чтобы уменьшить фрагментацию диска, при распределении пространства под файл HPFS стремится, по возможности, размещать файлы в последовательных смежных секторах. Фрагмент файла, располагающийся в смежных секторах, называется экстентом .

Для нумерации единиц распределения пространства диска HPFS использует 32 разряда, что дает 2 32 , или более 4 миллиардов номеров. Однако HPFS использует числа со знаком, что сокращает число возможных номеров блоков до 2 миллиардов. Помимо стандартных атрибутов файла, HPFS поддерживает расширенные атрибуты файла (Extended Attributes, EA), которые могут содержать до 64 Кб различных дополнительных сведений о файле.

В отличие от линейной структуры FAT, структура каталога в HPFS представляет собой сбалансированное дерево (так называемое B-дерево) с записями, расположенными в алфавитном порядке. Сбалансированное дерево состоит из корневого (root block) и оконечных блоков (leaf block). Блоки занимают 4 последовательных сектора и в среднем могут содержать 40 записей.

Файловая система VFAT (Virtual FAT), реализованная в Windows NT 3.5, Windows 95 (DOS 7.0), - это файловая система FAT, включающая поддержку длинных имен файлов (Long File Name, LFN) в кодировке UNICODE (каждый символ имени кодируется 2 байтами). VFAT использует ту же самую схему распределения дискового пространства, что и файловая система FAT, поэтому размер кластера определяется величиной раздела.

В VFAT ослаблены ограничения, устанавливаемые соглашениями по именам файлов FAT:

    • имя может быть длиной до 255 символов.
    • в имя можно включать несколько пробелов и точек, однако, текст после последней точки рассматривается как расширение.
    • регистр символов в именах не различается, но сохраняется.

Основной задачей при разработке VFAT была необходимость корректной работы старых программ, не поддерживающих длинные имена файлов. Как правило, прикладные программы для доступа к файлам используют функции ОС. Если у элемента каталога установить “нереальную” комбинацию битов атрибутов: “только для чтения”, “скрытый”, “системный”, “метка тома” – то любые файловые функции старых версий DOS и Windows не заметят такого элемента каталога. В итоге для каждого файла и подкаталога в VFAT хранится два имени: длинное и короткое в формате 8.3 для совместимости со старыми программами. Длинные имена (LFN) хранятся в специальных записях каталога, байт атрибутов, у которых равен 0Fh. Для любого файла или подкаталога непосредственно перед единственной записью каталога с его именем в формате 8.3 находится группа из одной или нескольких записей, представляющих длинное имя. Каждая такая запись содержит часть длинного имени файла не более 13 символов, из всех таких записей ОС составляет полное имя файла. Поскольку одно длинное имя файла может занимать до 21 записи, а корневой каталог FAT ограничен 512 записями, желательно ограничить использование длинных имен в корневом каталоге.

Короткое имя генерируется файловой системой автоматически в формате 8.3. Для создания коротких имен (псевдонимов) файлов используется следующий алгоритм:

  1. Из длинного имени удалить все символы не допустимые в именах FAT. Удалить точки в конце и начале имени. После этого удалить все точки, находящиеся внутри имени кроме последней.
  2. Обрезать строку, расположенную перед точкой, до 6 символов и добавить в ее конец "~1". Обрезать строку за точкой до 3 символов.
  3. Полученные буквы преобразовать в прописные. Если сгенерированное имя совпадает с уже существующим, то увеличить число в строке "~1".

Данный алгоритм зависит от версии операционной системы и в будущих версиях может меняться

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

В настоящее время появляются новые поколения жестких дисков, имеющие все бoльшие объемы дискового пространства, в то время как возможности FAT уже достигли своего предела (FAT может поддерживать разделы размером до 2 Гб).

FAT32 - усовершенствованная версия файловой системы VFAT, поддерживающая жесткие диски объемом до 2 терабайт. Впервые файловая система FAT32 была включена в состав ОС Windows 95 OSR 2. В FAT32 были расширены атрибуты файлов, позволяющие теперь хранить время и дату создания, модификации и последнего доступа к файлу или каталогу.

Из-за требования совместимости с ранее созданными программами структура FAT32 содержит минимальные изменения. Главные отличия от предыдущих версий FAT состоят в следующем. Блок начальной загрузки на разделах с FAT32 был увеличен до 2 секторов и включает в себя резервную копию загрузочного сектора, что позволяет системе быть более устойчивой к возможным сбоям на диске. Объем, занимаемый таблицей размещения файлов, увеличился, поскольку теперь каждая запись в ней занимает 32 байта, и общее число кластеров на разделе FAT32 больше, чем на разделах FAT. Соответственно, выросло и количество зарезервированных секторов.

Необходимо отметить, что официально Microsoft не поддерживает разделы FAT32 объемом менее 512 Мб. Однако в версии утилиты FDISK, поставляемой вместе с OSR2, имеется недокументированный флаг /FPRMT, позволяющий отформатировать под FAT32 разделы объемом менее 512 Мб. Microsoft также не поддерживает FAT32-разделы с размером кластера меньшим, чем 4 Кб. Размеры кластера, предлагаемые по умолчанию при форматировании FAT32 дисков, приведены в таблице 5. Параметр /Z утилиты FORMAT позволяет самостоятельно установить размер кластера на разделе FAT32: FORMAT <диск> /Z:n, где n – число секторов в кластере.

Корневой каталог в FAT32 больше не располагается в определенном месте, вместо этого в блоке BPB хранится указатель на начальный кластер корневого каталога. В результате снимается ранее существовавшее ограничение на число записей в корневом каталоге.

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

В данный момент FAT32 поддерживается в следующих ОС: Windows 95 OSR2, Windows 98 и Windows NT 5.0.

NTFS (New Technology File System) - наиболее предпочтительная файловая система при работе с ОС Windows NT, поскольку она была специально разработана для данной системы. В состав Windows NT входит утилита convert, осуществляющая конвертирование томов с FAT и HPFS в тома NTFS. В NTFS значительно расширены возможности по управлению доступом к отдельным файлам и каталогам, введено большое число атрибутов, реализована отказоустойчивость, средства динамического сжатия файлов, поддержка требований стандарта POSIX. NTFS позволяет использовать имена файлов длиной до 255 символов, при этом она использует тот же алгоритм для генерации короткого имени, что и VFAT. NTFS обладает возможностью самостоятельного восстановления в случае сбоя ОС или оборудования, так что дисковый том остается доступным, а структура каталогов не нарушается.

Каждый файл на томе NTFS представлен записью в специальном файле – главной файловой таблице MFT (Master File Table ). NTFS резервирует первые 16 записей таблицы размером около 1 Мб для специальной информации. Первая запись таблицы описывает непосредственно саму главную файловую таблицу. За ней следует зеркальная запись MFT. Если первая запись MFT разрушена, NTFS считывает вторую запись, чтобы отыскать зеркальный файл MFT, первая запись которого идентична первой записи MFT. Местоположение сегментов данных MFT и зеркального файла MFT хранится в секторе начальной загрузки. Копия сектора начальной загрузки находится в логическом центре диска. Третья запись MFT содержит файл регистрации, применяемый для восстановления файлов. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами на томе.

В журнале транзакций (log file) регистрируются все операции, влияющие на структуру тома, включая создание файла и любые команды, изменяющие структуру каталогов. Журнал транзакций применяется для восстановления тома NTFS после сбоя системы. Запись для корневого каталога содержит список файлов и каталогов, хранящихся в корневом каталоге.

Схема распределения пространства на томе хранится в файле битовой карты (bitmap file). Атрибут данных этого файла содержит битовую карту, каждый бит которой представляет один кластер тома и указывает, свободен ли данный кластер или занят некоторым файлом.

В загрузочном файле (boot file) хранится код начального загрузчика Windows NT.

NTFS также поддерживает файл плохих кластеров (bad cluster file) для регистрации поврежденных участков на томе и файл тома (volume file), содержащий имя тома, версию NTFS и бит, который устанавливается при повреждении тома. Наконец, имеется файл, содержащий таблицу определения атрибутов (attribute definition table), которая задает типы атрибутов, поддерживаемые на томе, и указывает можно ли их индексировать, восстанавливать операцией восстановления системы и т.д.

NTFS распределяет пространство кластерами и использует для их нумерации 64 разряда, что дает возможность иметь 2 64 кластеров, каждый размером до 64 Кбайт. Как и в FAT размер кластера может меняться, но необязательно возрастает пропорционально размеру диска. Размеры кластеров, устанавливаемые по умолчанию при форматировании раздела, приведены в табл. 6.

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

Для уменьшения фрагментации NTFS всегда пытается сохранить файлы в непрерывных блоках. Эта система использует структуру каталогов в виде B-дерева, аналогичную высокопроизводительной файловой системе HPFS, а не структуре со связанным списком применяемой в FAT. Благодаря этому поиск файлов в каталоге осуществляется быстрее, поскольку имена файлов хранятся сортированными в лексикографическом порядке.

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

Несмотря на наличие защиты от несанкционированного доступа к данным NTFS не обеспечивает необходимую конфиденциальность хранимой информации. Для получения доступа к файлам достаточно загрузить компьютер в DOS с дискеты и воспользоваться каким-нибудь сторонним драйвером NTFS для этой системы.

Начиная с версии Windows NT 5.0 (новое название Windows 2000) Microsoft поддерживает новую файловую систему NTFS 5.0 . В новой версии NTFS были введены дополнительные атрибуты файлов; наряду с правом доступа введено понятие запрета доступа, позволяющее, например, при наследовании пользователем прав группы на какой-нибудь файл, запретить ему возможность изменять его содержимое. Новая система также позволяет:

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

Интересной возможностью новой версии Windows NT является динамическое шифрование файлов и каталогов, повышающее надежность хранения информации. В состав Windows NT 5.0 входит файловая система с шифрованием (Encrypting File System, EFS ), использующая алгоритмы шифрования с общим ключом. Если для файла установлен атрибут шифрования, то при обращении пользовательской программы к файлу для записи или чтения происходит прозрачное для программы кодирование и декодирование файла.

UFS (Unix File System)

Так же, как Unix представляет не одну систему, а ряд совместимых, так же UFS - не одна система, а целый ряд. Информации о поддержке разными Unix"ами чужих UFS у меня пока нет; информацию по поводу поддержки чужих файловых систем для каждого конкретного Unix"а скорее всего можно найти в документации к программе " mount ".

Основным отличием UFS от других известных мне систем является выделение атрибутов файла в отдельном объекте файловой системе - inode; это позволяет иметь доступ к файлу (к набору данных, хранящихся в файле) более чем по одному имени (так называемый жесткий линк; см.ниже), а заодно повысить эффективность функционирования системы.

Классическая UFS Отводит на файл 16 байт - 14-буквенное имя файла и двухбайтный номер inode; современые UFS позволяют создавать длинные имена (до 255 символов), а имена файлов хранят не подряд, а более разумно - в двоичном дереве или hash-таблице, а номер inode может быть любым - четырехбайтным или восьмибайтным.

Сам блок inode содержит:

  • количество ссылок на файл - каждое имя, ссылающееся на файл, а также открытие файла увеличивают этот счетчик на единицу; файл стирается с высвобождением занятого места как только счетчик становится равным нулю (т.е. можно стереть открытый файл, а реально он сотрется когда его закроют);
  • размер файла;
  • дату и время создания, последнего изменения и последего чтения файла;
  • тип файла - в Unix это бывает:
    • обычный файл;
    • директория;
    • файл блочного устройства;
    • файл символьного (последовательного) устройства;
    • поименованный пайп (название происходит от символа " | ", называемого "pipe" - см.его значение в shell);
    • символьный линк (алиас);

обычный файл и директория встречаются во всех файловых системах; файлы устройств являются интерфейсами к драйверам этих устройств;

  • UID (идентификатор хозяина файла) и GID (идентификатор группы);
  • атрибуты доступа:
    • Unix использует атрибуты "Read", "Write" и "eXecute" для хозяина файла (owner), для одногрупника (group) и для остальных (other) - итого 9 бит; для директории эти атрибуты означают соответственно права на чтение списка файлов, на создание/удаление файлов и на обращение к файлам внутри директории;

важной особенностью является то, что права доступа для хозяина определяются атрибутами для него, права для одногрупника и остальных для хозяина игнорируются; аналогично для одногркпника не играют никакой роли права для остальных;

    • кроме них есть атрибуты SetUID и SetGID - для запускаемого файла (не интерпретируемого) эти атрибуты определяют запуск процесса под правами не запустившего их пользователя, а хозяина и/или группы файла соотвнтственно;
    • и еще есть один атрибут - для директории он запрещает стирание файлов, не принадлежащих стирающему;
  • расширенный ACL (Access Control List, Список Управления Доступом) или ссылку на ACL, если файловая система поддерживает ACL;
  • несколько (в классической UFS - 13) ссылок на кластеры файловой системы (раскладка приведена для классической UFS):
    • первые 10 указывают на первые 10 кластеров файла;
    • 11-й указывает на кластер, содержащий адреса следующих 128-ми кластеров файла (в классической UFS размер кластера - полкилобайта, а адрес кластера - четыре байта);
    • 12-й указывает на кластер, содержащий адреса 128-ми кластеров, в свою очередь содержащих адреса следующих 16`384-рех кластеров файла;
    • последний указывает на кластер, ... вобщем, здесь используется еще на один уровень больше, что позволяет адресовать еще 2`097`152 кластера файла;

итого получается 2`113`674 кластера по полкилобайта - чуть более гигабайта в файловой системе, способной работать с томами до двух терабайт (2 ^32 кластеров по полкилобайта).

В современных UFS многое изменено: можно задавать произвольный размер кластера и использовать 64-битные указатели, так что ограничени классической UFS давно преодолены. Основное преимущество такой адресации в том, что маленькие файлы, к которым часто обращаются, достижимы прямо из inode, и так же быстро происходит обращение к началу большого файла; обращение в середину и конец большого файла происходят медленнее, чем в начало, но я не представляю, как можно обеспечить бОльшую скорость, не налагая жесткого требования заведомой дефрагментированности файла или хотя бы таблицы размещения его кластеров.

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

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

Сведений об устройстве файловой системы NetWare у мня нет - знаю лишь, что она какая-то своя, естественно, более эффективная, чем FAT, и имеет более сложные ACL, чем классический Unix с его "rwx" для owner, group и other.