Всем компьютерным приложениям нужно хранить и получать информацию. Наиболее удобной для доступа к долговременным устройствам хранения информации оказалась система, при которой пользователь назначает для той или иной совокупности данных некоторое имя. Определенный участок диска, занятый информацией, имеющей собственное имя, называется файлом. Часть ОС, работающая с файлами и обеспечивающая хранение данных на дисках и доступ к ним, называется файловой системой (ФС).
С точки зрения пользователя наиболее важным аспектом файловой системы является ее внешнее представление, т.е. именование и защита файлов, операции с файлами и т.д. Компьютеру безразлично, какое имя имеет любая программа или документ, так как он получает от ОС инструкцию подобно такой: «прочитай столько-то байт с такого-то места на диске». При этом пользователь не обязан знать, в каком физическом порядке и где именно находятся его данные. Ему достаточно потребовать от ОС прочитать документ или загрузить необходимую программу.
Одной из важнейших характеристик ОС, помимо управления памятью, ресурсами компьютера и задачами, является поддержка файловой системы – основного хранилища системной и пользовательской информации.
Файлы относятся к абстрактному механизму. Они предоставляют способ сохранить информацию на диске и считывать ее снова по мере необходимости. Пользователю не нужны такие подробности, как способ и место хранения информации, детали работы дисков. Важной характеристикой любого механизма абстракции являются принципы именования управляемых объектов, поэтому вкратце рассмотрим правила именования файлов.
Точные правила именования файлов варьируются от системы к системе, но все современные операционные системы поддерживают использование в качестве имен файлов 8-символьные текстовые строки. Так, книга, страница, карандаш являются допустимыми именами файлов. Часто в именах файлов также разрешается использование цифр и специальных символов, поэтому могут применяться и такие имена файлов, как 2 (лучше _2), срочный!. Многие файловые системы поддерживают имена файлов длиной до 255 символов.
В некоторых ФС различаются прописные и строчные символы, в других, таких как MS-DOS, нет. Операционные системы Windows 95 и Windows 98 используют файловую систему MS-DOS и наследуют многие ее свойства, включая именование файлов. Операционная система Windows XP также поддерживают файловую систему MS-DOS и наследуют ее свойства. Однако у нее имеется своя файловая система NTFS, обладающая отличными свойствами.
Во многих ОС имя файла может состоять из двух частей, разделенных точкой, например progr.exe. Часть имени файла после точки называется расширением файла и обычно означает тип файла. Так, в MS-DOS имя файла может содержать от 1 до 8 символов плюс через точку расширение от 0 до 3 символов. В некоторых ОС, например в UNIX, расширения файлов являются просто соглашениями, и ОС не заставляет пользователя их строго придерживаться. Так, файл file.txt может быть текстовым файлом, но это скорее памятка пользователю, а не руководство к действию для операционной системы. Система Windows, напротив, знает о расширениях файлов и назначает каждому расширению определенное значение. Пользователи или процессы могут регистрировать расширения в ОС, указывая программу, создающую данное расширение. При двойном щелчке мышью на имени файла запускается программа, назначенная этому расширению, с именем файла в качестве параметра. Например, двойной щелчок мышью на имени file.doc запускает MS Word, который открывает файл file.doc.
Обычно пользователям бывает необходимо логически группировать свои файлы, поэтому требуется некий гибкий способ, позволяющий объединять файлы в группы. Следовательно, нужна некая общая иерархия, т.е. дерево каталогов. При таком подходе каждый пользователь может сам создать себе столько каталогов и подкаталогов, сколько ему нужно, группируя свои файлы естественным образом. В корневом каталоге могут быть также созданы каталоги и подкаталоги, принадлежащие различным пользователям. Возможность создавать произвольное количество подкаталогов является мощным структурирующим инструментом, позволяющим пользователям организовать свою работу. По этой причине почти все современные файловые системы организованы подобным образом.
При организации ФС в виде дерева каталогов требуется некоторый способ указания файла. Для этого обычно используются два различных метода. В первом случае каждому файлу дается абсолютное имя пути, состоящее из имен всех каталогов от корневого до того, в котором содержится файл, и имени самого файла. Например, путь \user\abc\myfile.doc означает, что корневой каталог содержит каталог user, который, в свою очередь, содержит подкаталог abc, где находится файл myfile.doc. Абсолютные имена путей всегда начинаются от корневого каталога и являются уникальными. Если первым символом имени пути является разделитель, это означает, что путь абсолютный. Применяется и относительное имя пути. Оно используется вместе с понятием текущего каталога. Пользователь может назначить один из каталогов текущим рабочим каталогом. В этом случае все имена путей, не начинающиеся с символа разделителя, считаются относительными и отсчитываются относительно текущего каталога. Например, если текущим каталогом является \user\abc, тогда к файлу с абсолютным путем \user\abc\myfile.doc можно обратиться просто как к myfile.doc.
Любая файловая система предназначена для хранения информации о физическом размещении частей файла. В ФС существует минимальная единица информации – кластер, размер которого является нижним пределом размера записываемой на носитель информации в рамках ФС. Не следует путать понятие кластера с понятием сектора, который является минимальной единицей информации со стороны аппаратного обеспечения. От ФС требуется четкое выполнение следующих действий:
• определение физического расположения частей файла;
• определение наличия свободного места и выделение его для вновь создаваемых файлов.
Скорость выполнения этих операций напрямую зависит от самой ФС. Разные файловые системы используют различные механизмы для реализации указанных задач и имеют свои преимущества и недостатки. ФС типа FAT (File Allocation Table) представляют собой образ носителя в миниатюре, где детализация ведется до кластерного уровня. Поэтому операция поиска физических координат файла при его большой фрагментации будет затруднительна. ФС FAT16 занимает объем 128 Кб. И это позволяет легко кэшировать ее информацию. Для FAT32 эта величина для больших дисков составит около 1 Мб, что еще более затрудняет поиск физических координат фрагментированного файла. Еще хуже обстоит дело с поиском свободного места для больших файлов. Приходится просматривать практически всю таблицу, быстродействие падает. NTFS (New Technology File System) использует более компактную форму записи, что ускоряет поиск файла. Операции с выделением места проходят быстрее. Ключевое преимущество NTFS – возможность ограничения доступа к файлам и папкам.
Важный параметр – размер кластера. Больший размер кластера гарантирует более высокую производительность за счет уменьшения самой ФС.
Windows XP поддерживает следующие файловые системы: FAT12, FAT16, FAT32 и NTFS. Кроме того, две файловые системы поддерживаются на устройствах CD-ROM и DVD: Compact Disc File System (CDFS) и Universal Disk Format (UDF). В данном разделе содержатся краткие обзорные сведения об этих файловых системах. На выбор файловой системы оказывают влияние следующие факторы:
· цель, для которой предполагается использовать компьютер;
· аппаратная платформа;
· количество жестких дисков и их объем;
· требования к безопасности;
· используемые в системе приложения.
Файл – это именованная область внешней памяти, выделенная для хранения массива данных.
Windows XP поддерживает распределенную файловую систему (Distributed File System, DFS) и шифрующую файловую систему (Encrypting File System, EFS). Хотя DFS и EFS и названы "файловыми системами", они не являются таковыми в строгом понимании этого термина. Так, DFS представляет собой расширение сетевого сервиса, позволяющее объединить в единый логический том сетевые ресурсы, расположенные на разных компьютерах в разделах, которые могут иметь различные файловые системы. (DFS относится к серверным технологиям и в этой книге не рассматривается.) Что касается EFS, то это – надстройка над NTFS, которая дополняет NTFS возможностями шифрования данных.
Файловые системы FAT
FAT (чаще всего в главе подразумевается FAT 16) представляет собой простую файловую систему, разработанную для небольших дисков и простых структур каталогов. Ее название происходит от названия метода, применяемого для организации файлов – таблица размещения файлов (File Allocation Table, FAT). Эта таблица размещается в начале тома. В целях защиты тома на нем хранятся две копии FAT. В случае повреждения первой копии FA дисковые утилиты (например, Scandisk) могут воспользоваться второй копией для восстановления тома. Таблица размещения файлов и корневой ката лог должны располагаться по строго фиксированным адресам, чтобы файлы, необходимые для запуска системы, были размещены корректно.
По принципу построения FAT похожа на оглавление книги, т.к. операционная система использует ее для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Изначально компания Microsoft разработала FAT для управления файлами на дискетах, и только затем приняла ее в качестве стандарта для управления дисками в MS-DOS. Сначала, для дискет и небольших жестких дисков (менее 16 Мбайт) использовалась 12-разрядная версия FAT (так называемая FAT12). В MS-DOS v. 3.1 была введена 16-разрядная версия FAT для более крупных дисков. В Windows ХР система FAT 12 применяется только на гибких дисках и томах размером менее 16 Мбайт. Например, все 3,5-дюймовые дискеты емкостью 1,44 Мбайт форматируются для FAT16, а все 5,25-дюймовые - для FAT12.
В Windows NT/2000 FAT 16 может применяться точно так же, как и в MS-DOS, Windows 3.1 и Windows 9x/ME. Поддержка этой файловой системы включена в Windows XP, поскольку она совместима с большинством операционных систем других фирм-поставщиков программного обеспечения. Помимо этого, применение FAT16 обеспечивает возможность обновления более ранних версий операционных систем семейства Windows.
Нельзя использовать Windows NT/2000/XP совместно с программными средствами, осуществляющими разбиение диска на тома и сжатие дисков при помощи драйверов устройств, которые загружаются из MS-DOS. Например, ели требуется иметь доступ к разделу или логическому диску FAT, работая под управлением Windows NT/2000/XP, не следует применять для них такие средства сжатия, как DoubleSpace (MS-DOS 6.0) или DriveSpace (MS-DOS 6.22). Для сканирования и восстановления томов FAT, используемых Windows NT/2000/XP рекомендуется ввести в командной строке команду Chkdsk. Эта программ; объединяет функциональные возможности, присущие программам MS-DOS Chkdsk и Scandisk, включая сканирование поверхности жесткого диска.
Файловая система FAT32
32-разрядная файловая система FAT32 появилась в Windows 95 OSR2 и поддерживается в Windows 98/ME и Windows 2000/XP. Она обеспечивает оптимальный доступ к жестким дискам, повышая скорость и производительность всех операций ввода/вывода. FAT32 представляет собой усовершенствованную версию FAT, предназначенную для использования на томах, объем которых превышает 2 Гбайт.
Для обеспечения максимальной совместимости с существующими прикладными программами, сетями и драйверами устройств, FAT32 была реализована с минимумом возможных изменений в архитектуре и внутренних структурах данных. Все утилиты Microsoft, предназначенные для работы с дисками (Format, Fdisk, Defrag и ScanDisk), были переработаны для обеспечения поддержки FAT32. Кроме того, Microsoft проводит большую работу по поддержке ведущих фирм-производителей драйверов устройств и утилит для работы с диском, чтобы помочь и в обеспечении поддержки FAT32 в их продуктах. В табл. 3 представлены сравнительные характеристики FAT16 и FAT32.
Таблица 3 – Сравнение характеристик FAT16 и FAT32 в системах Windows XP
FAT16 | FAT32 |
Поддерживается большинством операционных систем, в числе которых MS-DOS, Windows 9л/МЕ, Windows NT, OS/2 и UNIX | На текущий момент поддерживается только операционными системами Windows 98 (и Windows 98 Second Edition), Windows 95 OSR2, Windows ME и Windows 2000/XP |
Эффективна только на логических дисках, размер которых не превышает 256 Мбайт | Не поддерживаются диски, размер которых менее 32 Мбайт |
Поддерживает сжатие диска с помощью таких утилит, как Drvspace | Не поддерживает сжатие диска |
Ограничена по размеру до 65 524 кластеров. Каждый кластер имеет фиксированный размер в зависимости от размера логического диска. Ограничения по количеству кластеров и их размеру (32 Кбайт) приводят к общему ограничению по размеру диска (не более 2 Гбайт). Помимо этого, FAT12/16 обычно имеет ограничения по количеству файлов и папок, которые могут содержаться в корневом каталоге (в зависимости от диска максимальное значение колеблется от 200 до 400) | Максимальный размер кластера - 32 Кбайт. Минимальное число в зависимости от размера логического диска, кластеров в томе - 65 527. Максимальный размер форматируемого диска - 32 Гбайт |
Поскольку с увеличением размера диска размер кластера FAT16 увеличивается, хранение файлов на таких дисках становится неэффективным. Например, если файл размером 10 Кбайт хранится в кластере размером 32 Кбайт, то 22 Кбайт дискового пространства не используются | Для дисков размером менее 8 Гбайт размер кластера - 4 Кбайт |
FAT32 обеспечивает следующие преимущества по сравнению с прежними реализациями FAT:
· Поддержка дисков размером до 8 Тбайт. Следует, правда, отметить, что команда format, включенная в Windows XP, не позволяет форматировать для использования FAT32 тома, размер которых превышает 32 Гбайт. Поэтому при форматировании томов объемом более 32 Гбайт следует использовать файловую систему NTFS.
· Более эффективное расходование дискового пространства. FAT32 использует более мелкие кластеры, что позволяет повысить эффективность использования дискового пространства на 10-15% по сравнению с FAT.
· Повышенная надежность и более быстрая загрузка программ. В отличие от FAT12 и FAT16, FAT32 обладает возможностью перемещать корневой каталог и использовать резервную копию FAT, если первая копия получила повреждения. Кроме того, загрузочный сектор FAT32 был расширен по сравнению с FAT16 и содержит резервные копии жизненно важных структур данных. Повышенная устойчивость FAT32 обусловлена именно этими факторами.
Файловая система NTFS
Файловая система Windows NT (NTFS) обеспечивает такое сочетание производительности, надежности и эффективности, которого невозможно добиться с помощью любой из реализаций FAT (как FAT16, так и FAT32). Основными целями разработки NTFS являлись обеспечение скоростного выполнения стандартных операций над файлами (включая чтение, запись, поиск) и предоставление дополнительных возможностей (включая сжатие и восстановление поврежденной файловой системы на больших дисках).
NTFS обладает характеристиками защищенности, поддерживая контроль доступа к данным и привилегии владельца, играющие исключительно важную роль в обеспечении целостности жизненно важных конфиденциальных данных. Папки и файлы NTFS могут иметь назначенные им права доступа (permissions) вне зависимости от того, являются они общими или нет. NTFS – единственная файловая система в Windows 2000/XP, которая позволяет назначать права доступа к отдельным файлам. Однако, если файл будет скопирован из раздела или тома NTFS в раздел или на том FAT, все права доступа и другие уникальные атрибуты, присущие NTFS, будут утрачены.
Форматирование тома для NTFS приводит к созданию нескольких системных файлов и главной таблицы файлов (Master File Table, MFT). MFT содержит информацию обо всех файлах и папках, имеющихся на томе NTFS.
NTFS – это объектно-ориентированная файловая система, которая обрабатывает все файлы как объекты с атрибутами. Практически все объекты, существующие на томе, представляют собой файлы, а все что имеется в файле, представляет собой атрибуты - включая атрибуты данных, атрибуты системы безопасности, атрибуты имени файла. Каждый занятый сектор на томе NTFS принадлежит какому-нибудь файлу. Частью файла являются даже метаданные файловой системы (информация, которая представляет собой описание самой файловой системы).
В Windows 2000 была введена новая версия NTFS – NTFS 5.0. Новые структуры данных, появившиеся в составе этой реализации, позволяют использовать оригинальные возможности Windows 2000, например, квоты на использование диска для каждого пользователя, шифрование файлов, отслеживание ссылок. Кроме того, добавлять дополнительное дисковое пространство к томам NTFS 5.0 можно без перезагрузки. Windows ХР не предлагает принципиальных новшеств для этой файловой системы, однако некоторые улучшения все же появились.
NTFS – наилучший выбор для работы с томами большого объема. При этом следует учесть, что если к системе предъявляются повышенные требования (к числу которых относятся обеспечение безопасности и применение эффективного алгоритма сжатия), то часть из них можно реализовать только с помощью NTFS. Поэтому в ряде случаев нужно использовать NTFS даже на небольших томах.