Файловые системы: общие сведения
Хранение данных на дисках современных компьютеров осуществляется в соответствии с так называемой кластерной архитектурой. Давайте попытаемся разобраться, что это такое.
Прежде всего, существует общепринятая логическая структура диска, предназначенная для физической адресации дисковых устройств, которая включает в себя понятие цилиндра (дорожки) и стороны (головки) диска. Например, используемая в настоящее время спецификация P-CHS позволяет адресовать на аппаратном уровне 65 535 цилиндров и 16 головок, что составляет 136 Гбайт информации. Каждый цилиндр (дорожка) дробится на определенное количество секторов — небольших участков дискового пространства, непосредственно предназначенных для хранения данных. Размер одного сектора составляет 512 байт. Обратиться к какому-либо конкретному сектору можно либо по его индивидуальному номеру, либо по комбинированному номеру, состоящему из номера головки (стороны), номера цилиндра (дорожки) и номера сектора на этой дорожке.
Однако адресация дискового пространства по принципу «головка–дорожка–сектор» с объективной точки зрения неудобна: объемы жестких дисков постоянно растут, в связи с чем операционным системам требовалось бы все больше времени для выполнения процедур поиска и считывания/записи информации по отдельным секторам диска. Именно тогда появилось понятие кластера — состоящего из нескольких секторов дискового пространства, воспринимаемого операционной системой как единое целое. Иными словами, кластер — это минимальный объем дискового пространства, в котором операционной системой могут быть записаны какие-либо данные. Физический размер кластера и количество составляющих его секторов зависят от совокупного объема раздела диска, исключение здесь составляет разве что файловая таблица NTFS, о которой мы побеседуем несколько позже. Зависимость размера кластера от размера дискового раздела показана в табл. 2.1.
Записываемый на диск файл большого объема также разделяется на некоторое количество составляющих, каждая из которых помещается в собственный кластер вместе со сведениями о том, где система должна искать «продолжение» файла. При загрузке программ или считывании какого-либо документа головка винчестера последовательно проходит требуемые кластеры диска, «собирая» считываемую информацию в оперативной памяти воедино.
Таблица 2.1. Зависимость размера кластера от объема дискового раздела
Объем дискового раздела, Мбайт | Секторов в кластере | Совокупный размер кластера, Кбайт |
1–512 513–1024 1025–2048 2049–4096 4097–8192 8193–16 384 16 385–32 768 Более 32 768 | 512 байт |
Согласно характеристикам алгоритма записи данных на диск, внутренней архитектуре, а также механизму их размещения, различается несколько видов файловых систем. Microsoft Windows XP поддерживает несколько типов файловых систем, среди которых можно перечислить следующие:
- FAT (FAT16) — файловая система, наиболее подходящая для большинства дисков, работающих не только с Windows XP или Windows 2000, но и с операционными системами семейства Windows более ранних версий, а также с платформами MS-DOS и OS/2. При форматировании дисков большого объема, например винчестеров, этот режим становится недоступен, если объем диска превышает 2 Гбайт;
- FAT32 — усовершенствованная версия файловой таблицы FAT, позволяющая работать с жесткими дисками объемом до 32 Гбайт, а также хранить информацию на диске более компактно за счет меньшего размера кластера. FAT32 распознается операционными системами Windows 95 OSR2, Windows 98, Windows ME, Windows 2000 и Windows XP. ОС Windows 3.1, 3.11, Windows NT 4.0 и ранние версии Windows 95 не смогут работать с диском, содержащим разделы FAT32, или загрузиться с дискеты, использующей эту таблицу размещения данных;
- NTFS — файловая система, специально разработанная для ОС семейства Windows NT. Позволяет использовать возможности ограничения доступа, шифрования, компрессии и восстановления утраченной информации. Форматировать разделы жесткого диска или дискеты в формате NTFS можно только тогда, когда на вашем компьютере не используется никакой другой операционной системы, кроме Windows XP или Windows 2000. Все остальные ОС не смогут обратиться к созданному Windows XP разделу NTFS или загрузиться с дискеты, использующей эту таблицу размещения данных.
Файловая система NTFS по умолчанию устанавливает размер кластера равным 512 байт, что позволяет располагать данные на диске более оптимально, в то же время пользователь может настроить размер кластера. Максимальный размер кластера, который можно установить, составляет 64 Кбайт. Теоретически NTFS открывает возможность адресовать дисковые разделы объемом до 16 777 216 Тбайт, однако эта возможность все еще остается абстрактной, поскольку на сегодняшний день не существует физических носителей, способных хранить такие объемы информации. В разделе, отформатированном под NTFS, содержится две копии таблицы размещения файлов, которая в данной файловой системе носит название MFT (Master File Table), причем поврежденные данные в основной таблице восстанавливаются из резервной копии автоматически. Более того: запись информации в раздел NTFS производится путем передачи управления записью/ чтением не драйверу диска, а драйверу ввода-вывода NTFS, который с использованием системного кэша, управляемого собственным менеджером (Cache Manager), копирует массив данных в виртуальную память, а оттуда уже передает информацию драйверу диска, который перенаправляет ее контроллеру. Вся эта процедура фиксируется в специальном системном журнале, который используется системой в случае возникновения ошибок чтения/записи. Таким образом, NTFS обеспечивает надежность хранения данных на диске: в случае возникновения сбоев при сохранении, копировании, удалении или перемещении папок или файлов уничтожаются только данные, хранящиеся в виртуальной памяти или системном кэше, вся записанная на диске информация остается в полной сохранности. Безусловно, столь усложненный алгоритм работы с данными имеет и несколько серьезных недостатков: во-первых, обмен информацией с разделами NTFS происходит в несколько раз медленнее, чем с разделами FAT, во-вторых, использование NTFS требует, чтобы при запуске системы было загружено несколько дополнительных драйверов и сервисов, которые занимают оперативную память и при недостаточном ее количестве могут замедлить работу компьютера. Помимо прочих полезных свойств, NTFS позволяет шифровать хранящиеся на диске данные и сжимать отдельные файловые объекты, причем компрессия производится таким образом, что пользователь может продолжать работать со сжатыми файлами, как с обычными. Этот подход позволяет заметно сэкономить дисковое пространство. И наконец, NTFS «умеет» напрямую работать с кодовыми страницами Unicode (UTF-8), что позволяет назначать файловым объектам имена в любой национальной кодировке, не изменяя всякий раз кодовую страницу вручную.
В Microsoft Windows XP используется файловая система NTFS 5.0, которая претерпела ряд функциональных изменений по сравнению с NTFS 4. Во-первых, в NTFS 5 наконец появилась давно ожидаемая пользователями функция квотирования, хорошо знакомая пользователям UNIX-подобных операционных систем. Квотирование означает, что каждому пользователю компьютера, имеющему в Windows XP собственную учетную запись, администратор может назначить максимальный объем дискового пространства, которое тот может использовать. Таким образом, перед администратором компьютера открывается возможность гибко управлять дисковыми ресурсами своей системы, не допуская «засорения» диска большими массивами неактуальной информации. Квотирование доступно не только применительно к пользователям не подсоединенного к сети компьютера, но и к пользователям локальной сети, причем создаваемые ими файлы могут располагаться не в одной папке, а на всех доступных дисках в произвольном порядке: в данном случае квота будет определяться исходя из их совокупного объема.
Еще одно важное свойство Windows XP, появившееся в данной ОС благодаря обеспечиваемой ею поддержке файловой системы NTFS 5, — это поиск файлов по названию учетной записи, с помощью которой они были созданы. Данная функция может быть очень полезна в случае, если на вашем компьютере работает более одного пользователя, а на дисках хранятся большие объемы информации.
При использовании на одном компьютере нескольких различных ОС необходимо очень осторожно выбирать размещаемые в дисковых разделах файловые системы. Разобраться в том, какие системные платформы умеют работать с поддерживаемыми Windows XP файловыми системами, вам поможет табл. 2.2.
Таблица 2.2. Список файловых систем, поддерживаемых различными системными платформами
Операционная система | FAT16 | FAT32 | NTFS | EXT2FS |
MS-DOS/Windows 3х Windows 95 OSR1 Windows 95 OSR2–2.5 Windows 98 Windows 98 SE/Windows ME Windows2000 Windows XP Linux | R,W,B R,W,B** R,W,B** R,W,B** R,W,B R,W,B R,W,B R,W | - - R,W,B R,W,B R,W,B R,W,B R,W,B R* | R*, W* R*, W* R*, W* R*, W* R*, W* R,W,B R,W,B R* | - R* R* R* R* - R* R,W,B |
R — эта ОС может производить чтение данных из раздела, использующего указанную файловую систему;W — эта ОС может производить запись данных в раздел, использующий указанную файловую систему;B — эта ОС может загружаться из раздела, использующего указанную файловую систему;* — функция выполняется с использованием специального программного обеспечения от независимых производителей;** — в данной операционной системе могут возникнуть проблемы при обращении к разделам FAT16 размером более 2 Гбайт.