Интернет- версия проекта MegaPlus.ru

на главную | обратная связь  

Что день грядущий нам готовит: WinFS, новая файловая система Для Windows Longhorn

 

Вот так будет выглядеть окно открытия документа в новой операционной системе "Лонгхорн". Как видите, здесь представлены файлы и каталоги, отсортированные по какому-либо признаку. Похоже, древовидная структура папок скоро уйдет в прошлое, вместе с дискетами 5,25 дюйма и мониторами на ЭЛТ.

Немного истории

А знаете ли вы, что приблизительно 20 лет назад широко используемая операционная система MS DOS 2.0 могла обработать жесткие диски объемом только до 16 Мбайт? Не правда ли, на сегодняшний день такая цифра кажется смешной? Однако в те времена это было очень серьезно, и ограничение памяти не казалось проблемой, так как более емкие устройства стоили огромных денег. В 80-90-х годах ситуация складывалась гораздо хуже. Потому что винчестеры подешевели и стали вмещать большее количество информации, а DOS еще не была обучена работать с такими объемами. Даже первые версии Windows не были способны к полному использованию всей физической памяти на диске.
С тех пор утекло много воды и сменилось несколько поколений компьютеров. Нынешний резкий скачок увеличения емкости винчестеров привел к тому, что FAT уже не может полноценно справляться с подобными устройствами хранения информации. Это вынудило Microsoft придумывать нечто новое для своей следующей операционной системы, названной Лонгхорн (Longhorn). Новая файловая система называется Win FS, она будет управлять данными, используя серверные технологии и базы данных.

Ликбез: кластеры, сектора и таблицы

Все читаемые и записываемые диски нуждаются в файловой системе – чаще всего используется FAT (File Allocation Table), что по русски значит "Таблица размещения файлов". Обычно она "живет" на жестких дисках, но также применяется для компакт-дисков и дискет. Файловая система должна именовать, сохранять и производить поиск данных. Хотя в семействе Windows есть различия между используемыми файловыми системами, все они имеют одно ограничение: ограниченное количество кластеров.
Кластер - наименьшая возможная ячейка для хранения данных на жестком диске. Таблица размещения файлов (FAT) распределяет файлы по кластерам. Например, для того, что бы извлечь некий файл, таблица должна иметь информацию, в каком кластере лежит его начало, сколько кластеров занимает собственно файл, и где находится конец. Система создает двойную копию FAT на всякий случай. В FAT 16 и FAT 32 таблица размещения файлов находится на служебной дорожке в начале диска.
Если все сильно упростить и перевести на житейский язык, то ситуация получается следующая: представим жесткий диск как библиотеку, а файлы – как книги. Когда пользователь открывает некий документ, операционная система говорит винчестеру: парень, мне нужен документ с именем "список конспиративных квартир разведчика Васи Пупкина". Но представьте, библиотека-то большая, сотни полок, заваленные многими тысячами книг. Если искать просто так – прокопаешься не один день. Поэтому в библиотеках заведены каталоги. Это, знаете, такие маленькие ящички с карточками, где записаны названия книг и их местонахождение на полках. Библиотекарь просматривает каталог у входа в хранилище, находит нужную карточку, бежит и быстренько вытаскивает затребованный документ.
Размер кластера определяется файловой системой в зависимости от объема носителя. Размер кластера можно задать вручную инструментальными средствами типа Fsutil, но только на Windows XP. Общее правило – чем меньше кластер, тем лучше использование жесткого диска. Дело в том, что кластер может быть занят не полностью. Например, если файл размером 2 Кб записывается в кластер размером 16 Кб, то оставшиеся 14 Кб просто "повиснут в воздухе", потому что ничего в этот кластер записать уже будет нельзя. Можно провести аналогию с автоматическими камерами хранения на вокзалах, при условии, что в каждой ячейке должен быть только один предмет. Кладете вы туда здоровый чемодан или маленькую сумочку – все равно занята будет одна ячейка. При просмотре свойств файла в Windows XP честно пишется, сколько он занимает места на диске.
Считаем дальше: FAT 16, которая используется в Windows 95, при размере диска в 256 Мб устанавливает размер кластера равным 4 Кб. Если диск имеет объем 2 Гб, тогда размер кластера увеличивается до 32 Кб. Можно прикинуть другим способом: у нас имеется 1000 файлов размером по 40 Кб каждый. На диске размером 500 Мб и файловой системой FAT 16 все эти файлы займут 391 Мб. А вот на диске 1,2 Гб под управлением все той же FAT 16, эти файлики "съедят" аж 500 Мб. Весело, да?
Начиная с Windows 95, к FAT 16 присоединялась изменяемая система данных по имени V-FAT. Это была первая система, которая могла записать длинные имена файлов, а не мучить пользователя ограничением в 8 символов. С появлением Windows 95b в 1996 году Microsoft вводит новую файловую систему FAT 32, которая широко используется сегодня. Она поддерживает диски до 32 Гб, где минимально возможный размер кластера равен 16 Кб. Так же FAT 32 не ограничивает количество папок в корневом каталоге диска.
Вспомните приведенный выше пример с библиотекой. Относительно FAT 32 можно сказать, что каталог ее библиотеки ограничен несколькими шкафами. И больше, чем на 32 Гб туда не влезет.
На сегодняшний день, когда винчестер емкостью за сотню гигабайт – обычная вещь, использование систем FAT представляется нецелесообразным. Про FAT 16 в этом случае стоит забыть совсем, а использование FAT 32 возможно только в случае раздела такого винчестера на логические диски размером не более 32 Гб.
Однако компьютерный мир еще не полностью отказался от устаревшей FAT 16. Если вы хотите пользоваться одним диском под Windows ХР, Windows 95, Linux или DOS, то придется использовать именно FAT 16, потому что ее "понимают" все.

Файловая система NTFS: даешь терабайты!

Файловая система NTFS начала свое существование вместе с Windows NT 3.5 в 1993 году. В ту пору Microsоft вела раздельную политику для домашних пользователей и рабочих станций. Windows 95, 98 и Millenium, которые общались с дисками через FAT 16 или FAT 32 предназначались для домохозяек, а ряд Windows NT со своей NTFS должен был обеспечивать запросы серьезных рабочих станций. Начиная с Windows 2000 ситуация поменялась. Две линейки операционных систем слились в одну, и современная Windows ХР умеет обращаться как с FAT 32, так и с NTFS. Пользователь должен сам решать, какая файловая система для него предпочтительнее.
Файловая система NTFS имеет много преимуществ по сравнению с FAT. Она умеет управлять дисками размером до нескольких сотен терабайт (один терабайт равен миллиону мегабайт). Возможно, сейчас это кажется излишним, однако не так давно емкость лазерного компакт-диска в 640 Мб считалась чрезмерной. А сейчас мы с унынием бормочем, что на эти болванки ничего не влезает. Далее, NTFS гораздо лучше обращается с местом при работе с большими дисками и умеет исправлять ошибки после сбоев. Делается это через запись в реальном времени всех модификаций файловой системы по контрольным точкам, которые затем используются в случае принудительной перезагрузки. NTFS имеет защиту от неправомерного доступа, встроенные алгоритмы сжатия и кодирования данных. Администратор может разрешить некоторым пользователям разрешить доступ к неким файлам, а другим - нет. Все эти качества делают NTFS весьма достойной файловой системой, однако…

Усовершенствования в файловой системе NTFS

Версии NTFS до Windows 2000 все еще не могли полностью удовлетворить запросы пользователей. Так как дискам присваиваются буквы английского алфавита (от A до Z), то возникает ограничение их количества. Изменение размера логического диска всегда требует перезагрузки. К тому же служебная информация NTFS размещена в системном реестре, что усложняет использование диска другой операционной системой.
В Windows 2000 проблема решается с помощью Logical Disk Manager (LDM), который не требует имен дисков. И служебная информация о диске теперь хранится на нем самом. Усовершенствования NTFS, используемой в Windows XP, являются небольшими по сравнению с Windows 2000. Была увеличена пропускная способность, кластерам стало возможно назначать переменный размер. Так же были доработаны административные функции, типа индексации папок и доступа к данным.
Microsoft решила добавить специальную программу для управления через командную строку. Этот мощный инструмент может многое. Но официальная документация по нему весьма скудна. Наверное, таким образом Microsoft подстраховывается от непродуманных и неосторожных действий, потому что игры с MFT - Master File Table, могут оказаться весьма плачевными.

Организация данных под файловой системой NTFS

В отличие от FAT, которая имеет отдельную таблицу размещения файлов, находящуюся в начале диска, NTFS размещает информацию в невидимых пользователю системных файлах. Опять вспоминаем нашу библиотеку. Если в FAT каталожные шкафы с карточками находятся только у входа в хранилище с книгами, то в NTFS эти шкафы разбросаны по всему хранилищу. Когда все шкафы забиваются, библиотекарь может выписать со склада новые. И напихать туда еще кучу карточек с записями о ваших драгоценных данных.
Master File Table управляет файлами и так называемыми метаданными в относительной структуре базы данных. Ее легко представить в качестве таблицы. Информация относительно файлов размещена в строки, а атрибуты (скрытый, зашифрованный, сжатый, система, и т.д.) - в столбцы. Метаданные, содержащие информацию относительно самой MFT сохранены в первых 16 записях, занимающих 16 Кб. Следующие записи содержат информацию о позиции файлов в MFT, содержании и неиспользованном пространстве. Файлы размером до 900 байт могут "уложиться" в одну запись. Для больших файлов MFT содержит указатели о месте их нахождения. То же самое и с папками: достаточно маленькие полностью включены в файловую таблицу. NTFS управляет большими папками с помощью так называемой структуры B-tree, которая индексирует похожие файлы или их названия, что ускоряет последующую обработку.

Заключение:

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


Никаких "страшных" изменений для обычного пользователя не будет. Тетя Маша может продолжать спокойно набивать в блокноте свои рецепты засолки огурцов, нимало не заботясь, какая же файловая система управляет ее жестким диском. Только раньше, для того, что бы сохранить свой рецепт она должна была нажать кнопочку "сохранить", а потом долго щелкать по директориям, выбирая нужную: Мои документы – Кухня – Консервирование – Овощи – Огурцы. На WinFS все будет проще, после нажатия кнопочки "сохранить" нужно будет ввести в строке поиска "огурцы" и компьютер услужливо выкинет списочек найденных документов и папок с таким именем. Обещают, что все будет работать быстро.
Вытеснит ли WinFS полностью своих предшественников NTFS и FAT, пока сказать сложно. И насколько новая файловая система будет удобной – покажет жизнь. А пока Microsoft думает, использовать ли WinFS в следующем поколении Windows Server 2003.

Артём Войтенков
mega@megaplus.ru