Гостевая
Форум
Разделы
Главная страница
Js скрипты
Php скрипты
Html шаблоны
Книги по Web дизайну
Статьи


Главная страница статей --> Программирование, заработок, оболочки

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

Источник: linuxcenter.ru

Теория и терминология

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

ФС позволяет оперировать не нулями и единицами, а более удобными и понятными объектами — файлами. Ради удобства пользователей (программе удобнее работать с числовыми индексами, но программы, как известно, пишутся людьми) в работе с файлами используются их символьные идентификаторы — имена. Содержимое же файлов (0 и 1) записано в кластеры — мельчайшие единицы данных, которыми оперирует файловая система, размер их кратен 512 байтам. Для организации информации кроме имени файла используются также каталоги, как некая абстракция, позволяющая группировать файлы по определенному критерию. По сути, каталог — это файл, содержащий информацию о «вложенных» в него каталогах и файлах.

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

Раздел — это определенная область диска, созданная во время операции разметки диска. Каждый раздел содержит один (редко — несколько) отформатированный том. Том — область раздела со своей файловой системой, своей таблицей файлов и областью данных. Один или несколько разделов составляют диск.

В начале диска находится особая область — MBR (Master Boot Record), содержащая программную логику, необходимую BIOS для загрузки системы с жесткого диска. Таблица разделов (partition table) также расположена в начале диска, ее задача — хранить информацию о разделах: начало раздела, его длина, какой раздел является загрузочным. На загрузочном разделе расположен загрузочный сектор (boot sector), хранящий программу загрузки операционной системы.

Процесс

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

История развития файловых систем

Файловые системы прошли очень долгий по компьютерным меркам путь, усложняясь параллельно с развитием операционных систем и аппаратного обеспечения компьютеров. Так, используемая в MS DOS 1.0 (1981 г.) FAT (или FAT12) изначально предназначалась для работы с гибкими дисками. Свое название она получила от наименования таблицы размещения файлов — File Allocation Table. Благодаря 12-битной адресации и кластеру в 4 Кбайта она, однако, поддерживала разделы до 16 Мбайт. В целом же это была простая файловая система, обеспечивавшая основные функции — имя файла в формате 8.3, каталоги, атрибут файла, время создания (изменения).

Чуть позже с добавлением 16-битной адресации и максимального размера кластера в 32 Кбайта появилась FAT16, поддерживавшая разделы до 2 Гбайт. В первой версии Windows 95 была реализована поддержка длинных имен файлов (до 255 символов) и сохранение регистра символов в названии. Эта модификация получила название VFAT.

В Windows 95 OSR2 появилась файловая система, которую и сейчас можно встретить на многих домашних компьютерах (в офисах все-таки больше думают о сохранности данных) — FAT32. В целях обратной совместимости в FAT32 были введены незначительные изменения по сравнению с VFAT. 32-битная адресация теоретически позволяла работать с разделами до 2 терабайт. Корневой каталог (напомним, что каталог — это по сути своей файл с идентификаторами вложенных файлов и каталогов) теперь не располагался в определенном месте, а представлял собой обычную цепочку кластеров, таким образом, было снято старое ограничение на количество элементов в корне. Загрузочный сектор раздела дублировался для отказоустойчивости. В FAT32 были внесены еще некоторые «заплатки», кое-как подтянувшие характеристики файловой системы до нужд своего времени. Но по сути своей это была все та же FAT для MS DOS 1.0.

Файловая система NTFS (New Technology File System) была разработана еще для Windows NT 3.1, однако долго находилась в тени мейнстрима того времени — FAT, которому Microsoft в каждой новой версии «подкрашивала фасад» для соответствия запросам времени. Основным недостатком NTFS была большая требовательность к системным ресурсам, компьютеры просто не могли извлечь преимуществ из NTFS, зато замедление работы было очень заметно.

Проблема недостатка вычислительной мощности процессора и объема оперативной памяти решалась «сам собой», и c Windows NT 4.0 начался поход NTFS на пользовательские компьютеры. Windows 2000 принес NTFS3 в качестве основной и рекомендуемой файловой системы как на рабочие, так и на домашние системы. На данный момент NTFS3.1 (не путайте версию файловой системы с версией ОС, далее просто NTFS) является самой распространенной файловой системой, и популярность ее нельзя «оправдать» лишь маркетингом Microsoft, NTFS на самом деле одна из самых функциональных и технологичных файловых систем на рынке.

Консольные

NTFS — дни сегодняшний и завтрашний

NTFS поддерживает длинные имена (255 символов, регистр в названии сохраняется, но не различается), теоретически размер файла ограничен 16 экзабайтами, на практике самая современная ОС Windows 2003 ограничивает размер файла 16 терабайтами, а размер раздела — 256. Размер кластера варьируется от 512 байт и до 64 Кбайт, позволяя пользователю самостоятельно выбирать между экономией места на диске и скоростью работы, стандартным значением является 4 Кбайта.

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

Таким образом, в NTFS, как и в любой другой файловой системе, MFT хранит каталог файлов (идентификатор, занимаемые кластеры), содержимое же файлов записано в кластеры диска. Одна из интересных особенностей — хранение содержимого маленьких файлов (несколько сотен байт) прямо в MFT — позволяет значительно оптимизировать работу с мелкими файлами и не сказывается на размерах самой таблицы, так как данные пишутся лишь в том случае, если в записи MFT для них есть необходимое пространство (1 запись MFT занимает 1 Кбайт). «Нормальные» же файлы расположены в кластерах области данных тома NTFS. При этом каждый файл состоит из потоков, где первый поток — содержимое файла, а в остальных может содержаться дополнительная информация.

Файл

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

Некоторые нововведения NTFS направлены на увеличение совместимости со стандартом POSIX (на нем основаны файловые системы Unix): атрибуты времени последнего доступа и изменения файла, жесткие ссылки (фактически, два имени одного файла), символические ссылки (настоящее имя остается неизменным, а символическая ссылка позволяет давать «псевдонимы»).

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

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

Одно из важнейших преимуществ NTFS — журналируемость. NTFS, как журналируемая файловая система, обладает высокой отказоустойчивостью и способна самостоятельно исправлять большинство возникающих ошибок. Защита основана на принципе транзакций — любая операция, изменяющая данные на диске, рассматривается как транзакция, то есть такая последовательность действий, которая может или пройти успешно, или не пройти вообще. Данные о предстоящих действиях заносятся в журнал транзакций, и в случае ошибок система отменяет все изменения. Поэтому любые промежуточные результаты, чреватые нарушением файловой системы, невозможны. Журналируемость, к сожалению, не защитит от некачественного «железа» и не убережет пользовательские данные в экстренных ситуациях (впрочем, такой цели и не ставится), но без проблем справится с повседневными ошибками и сохранит целостность файловой системы.

WinFS — будущее файловых систем?

Концепция транзакций, используемая в NTFS для защиты целостности файловой системы, заимствована из систем управления базами данных (СУБД). И, судя по всему, это лишь «первая ласточка» сращивания файловых систем и СУБД в единое целое.

Рост объема цифровой информации рано или поздно вынудит перейти от папок и файлов к более гибкой и совершенной схеме организации. Уже сейчас в корпоративном секторе эту роль исполняют базы данных, на пользовательских компьютерах заметно распространение систем локального поиска (Google Desktop Search, Copernic DS…) по файлам, электронной почте пользователя, посещенным веб-страницам.

Решить задачу более гибкой организации информации взялась и Microsoft в своей новой файловой системе (если вообще в данном случае уместен этот термин) WinFS. Перед WinFS ставятся три основные задачи:

  1. Поиск информации с учетом ее типа. Текст, мультимедиа — особенности всех типов информации должны быть известны WinFS, и учитываться ею.
  2. Построение связей (отношений, relations) между отдельными «порциями» информации (файлами). То есть для каждого текущего файла система будет подбирать связанные с ним файлы, документы, электронные письма и т. д.
  3. Обработка доступной информации — WinFS позволит фильтровать, разбивать по категориям, ранжировать (определять важность информации в контексте текущей задачи пользователя) файлы, чтобы отсечь лишнее. Предоставляя лишь необходимые данные, Microsoft надеется снизить «информационное переутомление» пользователей.

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

Немного практики

Acronis Disk Director Suite 9.0
Сайт: www.acronis.ru
Язык интерфейса: русский
ОС: Windows 9x/Me/NT/2k/XP/2003 (в т. ч. серверные версии)
Цена: 499 руб.

Norton PartitionMagic 8.0
Сайт: www.symantec.com
Язык интерфейса: английский
ОС: Windows 9x/Me/NT/2k/XP
Цена: $69.95

Norton SystemWorks 2005
Сайт: www.symantec.com
Язык интерфейса: английский
ОС: Windows 9x/Me/NT/2k/XP
Цена: $69.95

O&O Defrag Professional Edition 8
Сайт: www.oo-software.com
Язык интерфейса: английский
ОС: Windows NT/2k/XP
Цена: $44.95

Ontrack Fix-It Utilities 2000
Сайт: www.ontrack.com
Язык интерфейса: английский
ОС: Windows 9x/Me/NT/2k

Проверка диска и дефрагментация

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

FAT32 в отличие от NTFS — менее защищенная от сбоев файловая система, которую необходимо периодически проверять на наличие ошибок. За проверку ФС и устранение несоответствий в ее структуре в Windows 98, ME отвечает Scandisk, в Windows 2000, XP (эти системы могут работать и с FAT32, и c NTFS) — CHKDSK. Среди сторонних утилит можно назвать DiskFixer из пакета Ontrack Fix-It Utilities 2000 и знаменитый Disk Doctor, входящий в Norton SystemWorks 2005.

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

Ontrack,

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

О Norton Disk Doctor сложно сказать что-то новое, пакет знаком практически каждому пользователю, и версия 2005, кажется, не принесла ничего нового — это по-прежнему хорошее средство проверки диска со всеми необходимым функциями. В общем же, Norton Utilities сдает свои позиции из-за конкуренции со встроенными утилитами Windows 2000 и XP. NU 2005 уже нельзя приобрести отдельно, только в составе Norton SystemWorks.

Cтарый

Перейдем к выводам. Если вы пользуетесь Windows 98, то можете подумать о замене штатного Scandisk решениями, обеспечивающими более высокий уровень удобства и скорости работы. Большинству же из нас нет смысла что-либо выбирать — CHKDSK из Windows 2000 и XP качественно и «без лишнего шума» справляется со своей задачей при работе как с FAT32, так и с NTFS.

В сфере дефрагментаторов наблюдается схожая ситуация. Так производительность FAT32 сильно страдает при большой фрагментации тома (фрагментация — состояние файловой системы, когда кластеры одного файла записаны на диске не последовательно, а «раскиданы» по всей поверхности тома; дефрагментация же есть процесс упорядочивания кластеров), в то время как NTFS нечувствительна к фрагментации. Более того, есть мнение, что дефрагментация (точнее — алгоритмы программ-дефрагментаторов) NTFS — процесс ненужный и даже вредный.

Второе совпадение — вопрос о необходимости применения сторонних утилит. В комплекте с Windows 98 идет действительно не самый удачный дефрагментатор — медленный и неэффективный. Пользователям этой системы стоит подумать об использовании, например, Norton Speed Disk. Счастливые обладатели Windows 2000 и XP могут использовать штатный Disk Defragmenter. Необходимый набор функций присутствует: карта диска, статистика фрагментации файлов и папок и собственно возможность их дефрагментировать.

Штатный

Сторонние утилиты в свою очередь дают пользователям «пространство для маневра». Norton Speed Disk позволяет перемещать отдельные файлы к началу диска, чтобы ускорить к ним доступ, DefragPlus умеет дефрагментировать своп-файл и файлы реестра. Отдельного упоминания заслуживает программа O&O Defrag: различные стратегии дефрагментации ФС (для рабочих станций, для серверов, с целью прекращения последующей фрагментации тома и т. д.), подробнейшая информация о томах и их состоянии, очень удобная карта диска, генерация отчетов.

Что выбрать, штатную утилиту или средство «покруче»? Надо ли дефрагментировать NTFS и «биться с ветряными мельницами» или оставить все, как есть? На все эти вопросы каждый должен ответить сам для себя.

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

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

Чтобы сменить файловую систему раздела и сохранить записанную на нем информацию, необходима программа-конвертор файловой системы. Как правило, конвертирование файловых систем является неотъемлемой функцией программ менеджеров разделов диска. Однако замечательный во всех остальных отношениях Acronis Disk Director Suite умеет делать преобразование FAT16 -> FAT32 и только.

В контексте нашей проблемы выгоднее смотрится менеджер разделов Norton PartitionMagic, в составе которого есть средства конвертирования между FAT16, FAT32 и NTFS. Выбираем раздел, нажимаем «Convert Partition», следуем инструкциям.

Конвертируем

Любопытно, что для конвертирования FAT32 в NTFS Norton PM использует стандартные средства Windows 2000/XP, поэтому для этой операции нет смысла приобретать сторонние программы, достаточно ввести в командной строке:

convert D: /FS:NTFS /V (где D — буква раздела)

Все остальное система сделает сама. К сожалению, при переводе FAT32 -> NTFS невозможно задать размер кластера тома, он всегда устанавливается в 512 байт, что не самым лучшим образом влияет на производительность.

Программы-конверторы способны изменить файловую систему раздела без потери данных. Однако, с существенными оговорками: допустим, невозможно конвертировать в FAT16 раздел, размер которого больше 2 Гбайт, т. к. FAT16 не работает с такими «большими» разделами; при смене NTFS на FAT32 все ранее доступные функции NTFS и Windows, дополнительные атрибуты файлов пропадут. Чудес не бывает.

Оптимальный размер кластера

К операциям по оптимизации можно отнести не только дефрагментацию но и изменение размера кластера. Жесткие диски хранят данные секторами по 512 байт, файловая система хранит данные «кусочками» — кластерами размером от 512 байт и до 64 Кбайт (размер всегда кратен 512 байтам). Чем больше размер кластера — тем больше производительность файловой системы, но возрастают и потери места на диске.

Потеря происходит из-за того, что маленькие файлы в любом случае занимают не менее 1 кластера. Например, файл в 2 Кбайта при размере кластера в 32 Кбайта приведет к потере 30 Кбайт места на диске.

С другой стороны при увеличении размера кластера возрастает производительность операций чтения и записи (они осуществляются кластерами). Рассмотрим на примере некоего файла размером 8 Мбайт (8192 Кбайт); при размере кластера 4 Кбайта он займет 2048 кластеров на диске, а для кластеров в 512 байт — 16384 кластеров. В идеальных условиях кластеры одного файла располагаются последовательно, а в реальности — они могут быть «раскиданы» по всему диску (фрагментация) и работа с таким файлом происходит медленнее.

Использованные в примере числа не случайны: 4 Кбайта — стандартный размер кластера для томов NTFS, 512 байт — размер при конвертировании тома FAT32 в NTFS. Узнать используемое на ваших разделах значение можно, например, из штатного дефрагментатора Windows 2000/XP, нажмите «анализировать» для нужного тома и просмотрите отчет.

Что важнее: сохранение места на диске или скорость работы, решать, конечно же, только вам, однако, для современных жестких дисков в 160 и более Гбайт потери от большого размера кластера незначительны. Поэтому стоит подумать об увеличении кластера. Делать это умеет, например, Acronis Disk Director.

Выбирая оптимальный размер кластера, учтите, что встроенное сжатие NTFS не работает на томах с кластерами больше 4 Кбайт. Поэтому оптимальным значением для NTFS можно назвать как раз используемое по умолчанию. Если же вы переходили на Windows 2000 или XP с 98 или ME и пользовались при этом штатными средствами конвертирования раздела в NTFS, стоит всерьез подумать об увеличении размера кластера.

Менеджеры загрузки

Абсолютно на каждом компьютере уже установлен определенный «boot менеджер» (только не все они склонны во весь голос заявлять о своем присутствии) — ntldr для Windows 2000/XP, GRUB для FreeBSD и другие. Встроенные менеджеры загрузки, как правило, ограничены в функциональности. NT Loader не знает и не хочет знать операционных систем не от Microsoft и при установке без лишних вопросов переписывает загрузочную область.

Менеджеры загрузки Linux и BSD-систем ведут себя интеллигентнее. Загрузчики LILO или GRUB большинства современных дистрибутивов определяют в процессе инсталляции наличие других систем (в том числе и Windows) и при загрузке компьютера позволяют выбирать между ними.

Таким образом, если на одной компьютере необходимо использовать несколько Windows-систем, можно обойтись встроенным загрузчиком NT. Если вам нужна мультизагрузка Windows и Unix-подобной системы, то все еще проще. В ходе установки любого более-менее популярного дистрибутива есть процедура настройки загрузчика. Более того, все популярные дистрибутивы определяют, установлена ли Windows, так как совместимость с продуктами Microsoft — «суровая» (для юниксоидов) реальность современного компьютерного мира.

Однако полиглотам, работающим с десятком-другим различных версий DOS, Windows, Linux, BSD, Solaris (список можно продолжать) придется искать более мощный менеджер загрузок. Хорошим выбором будет Acronis OS Selector из пакета утилит Acronis Disk Director Suite.

Не

Внешний вид OS Selector оригинален, не надо быть «семи пядей», чтобы понять, у кого программисты Acronis учились дизайну интерфейсов. В общем, программа организована удобно и покажется вам не менее удобной, чем рабочий стол Windows XP. Все настраивается. И это в условиях, когда еще ни одна операционная система не загружена.

Программа поддерживает загрузку до 100 операционных систем, причем не только с первичного раздела диска. Также вы можете устанавливать пароли на загрузку. Для каждой операционной системы можно скрывать определенные разделы диска. Несколько систем на одном разделе могут иметь папки с одинаковыми именами. Такие папки называются системными. Системная папка переносится на свое место только, когда производится загрузка операционной системы, а все остальное время она находится в папке OS Selector.

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

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

Ссылки

При подготовке статьи использовались следующие материалы:

  1. iXBT: Файловая система NTFS, Надежность дисковой системы NT, Быстродействие FAT и NTFS.
  2. Microsoft Windows 2000 Professional Resource Kit: File Systems.
  3. Microsoft Windows Server 2003 Technical Reference: What Is NTFS?, How NTFS Works.
  4. Remont-PC.ru: Файловые системы.
  5. WinFS 101: Introducing the New Windows File System.
  6. Алексей Федорчук. Введение в POSIXивизм: Глава 8. Файл как он есть.



Похожие статьи:
- “Безопасные” сайты
- Версия сайта для печати средствами CSS
- Береги честь смолоду: прячем e-mail адреса от спама
- Выпадающее меню на CSS и JavaScript
- Валидность HTML
- Игры в ассоциации
- Обзор программ для записи и копирования компакт-дисков
- TrafficCompressor — чудеса бывают?
- Google учит русский язык
- Конверсия: маркетинг плюс контент
- Создание всплеска посещаемости сайта с помощью программы Add2Board
- Психологические тесты в сети
- Как приобретать б/у ноутбук


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |
[0.001]